کار با ایمیج

در این قسمت از مجموعه آموزشهای خط فرمان به چگونگی کار با ایمیج خواهیم پرداخت.
ایجاد ایمیجهای CD-ROM
ایجاد یک CD-ROM قابل ضبط (CD-R و یا CD-RW) شامل دو گام است: اول ایجاد یک ایمیج ISO فایل که همان فایلسیستم ایمیج CD-ROM بوده و دوم نوشتن فایل ایمیج درون رسانه CD-ROM.
ایجاد یک کپی ایمیج از یک CD-ROM
اگر که میخواهیم که یک ایمیج ISO از یک CD-ROM موجود، ایجاد کنیم میتوانیم از فرمان dd به منظور خواندن همه بلوکهای داده CD-ROM و کپی کردن آنها به یک فایل محلی استفاده کنیم. فرض کنید که ما یک CD اوبونتو داریم و میخواهیم که یک فایل ISO به منظور کپیهای بیشتر ایجاد کنیم. پس از وارد کردن CD و تشخیص نام دیوایس (نام /dev/cdrom) میتوانیم فایل ISO را به صورت زیر ایجاد کنیم:
1 |
dd if=/dev/cdrom of=ubuntu.iso |
ایجاد یک ایمیج از مجموعه فایلها
به منظور ایجاد یک فایل ایمیج ISO که حاوی محتویات یک پوشه است، از فرمان genisoimage استفاده میکنیم. برای انجام این کار ما بایستی ابتدا یک پوشه که حاوی همه فایلهای ماست را ایجاد کنیم و سپس فرمان genisoimage را به صورت زیر وارد کنیم. برای مثال اگر ما یک پوشه با نام ~/cd-rom-files ساخته باشیم، میتوانیم یک فایل ایمیج با نام cd-rom.iso را با فرمان زیر ایجاد کنیم:
1 |
genisoimage -o cd-rom.iso -R -J ~/cd-rom-files |
گزینه –R در این فرمان ابردادهها را برای افزونههای Rock Ridge اضافه میکند که اجازه استفاده از اسامی فایل طولانی و مجوزهای POSIX-style را میدهد. همچنین گزینه –J افزونههای Joliet را فعال میکند که اسامی فایل طولانی را در ویندوز مقدر میسازد.
رایت کردن ایمیج CD-ROM
پس از آنکه یک فایل ایمیج ایجاد کردیم زمان آن میرسد که آن را بر روی یک دیسک نوری رایت بزنیم. بیشتر فرمانهایی که به آنها میپردازیم را میتوان برای هر دو نوع دیسک نوری CD و DVD به کار برد.
پیادهسازی یک ایمیج ISO به صورت مستقیم
ترفند خاص وجود دارد که میتوان با استفاده از آن یک ایمیج ISO را سوار کرد. در حالی که فایل ایمیج هنوز در هارد ماست ولی این ترفند آن را به گونهای نشان میدهد که انگار در درایو نوری قرار دارد. با اضافه کردن گزینه –o به فرمان mount (در کنار سوییچ –t که برای تعیین نوع سیستمفایل لازم است)، میتوانیم یک فایل ایمیج را سوار کنیم.
1 2 |
mkdir /mnt/iso_image mount -t iso9660 -o loop image.iso /mnt/iso_image |
در مثال فوق، یک نقطه سوار کردن با نام /mnt/iso_image ایجاد کردیم و سپس فایل image.iso را بر روی نقطه سوار کردن بارگذاری کردیم.
خالی کردن یک CD-ROM با قابلیت دسترسی
CD-ROM با قابلیت بازنویسی برای رایت مجدد نیاز دارد که خالی و پاک شود تا بتوان مجدد از آن استفاده کرد. برای انجام این کار میتوانیم از فرمان wodim استفاده کنیم و به دنبال آن نام دیوایس سیدیرایتر را وارد میکنیم و سپس نوع پاکسازی را وارد میکنیم. برنامه wodim چندین نوع را ارائه میکند که رایجترین آن نوع fast میباشد.
1 |
wodim dev=/dev/cdrw blank=fast |
رایت زدن یک ایمیج
به منظور رایت زدن یک ایمیج، میتوانیم مجدد از wodim استفاده کنیم و به دنبال آن نام دیوایس نوری را و سپس نام فایل تصویری را وارد میکنیم.
1 |
wodim dev=/dev/cdrw image.iso |
علاوه بر نام دیوایس و نام فایل ایمیج، wodim از گزینههای زیاد دیگری نیز پشتیبانی میکند. دو نوع از رایجترین آنها گزینه –v (سرنام Verbose به معنی طولانینویسی) و –dao که دیسک را در حالت disc-at-once رایت میکند. این حالت زمانی به کار میرود که میخواهید یک دیسک را برای نولید و فروش رایت کنید. حالت پیشفرض رایت برای wodim حالت track-at-once میباشد که مخصوص رایت کردن ترکهای موسیقی است.
اعتبار مضاعف و فوقالعاده
گاهی اوقات مفید است که یکپارچگی یک فایل ایمیج ISO را که دانلود کردهایم تایید نماییم. در بیشتر موارد توزیعکننده فایل ISO یک فایل Checksum را به این منظور تامین میکند. فایل Checksum یک نتیجه محاسبه ریاضی خارجی است که شماره را به وجود آورده که محتویات فایل هدف را رائه میکند. اگر محتویات فایل حتی به میزان یک bit هم تغییر کند، نتیجه Checksum نیز متفاوت خواهد بود. رایجترین شیوه ایجاد Checksum استفاده از فرمان md5sum میباشد. وقتی که از md5sum استفاده میکنیم، یک شماره هگزادسیمال منحصر به فرد ایجاد میشود.
1 2 |
md5sum image.iso 34e354760f9bb7fbf85c96f6a3f94ece image.iso |
پس از آنکه ایمیجی را دانلود کردید، بایستی فرمان md5sum را بر روی آن اجرا کنید و نتیجه حاصله را با مقدار ارایه کننده توسط منتشرکننده مقایسه کنید.
به علاوه به منظور بررسی یکپارچگی یک فایل دانلود شده، میتوانیم از فرمان md5sum به منظور تایید دیسک نوری رایت شده استفاده کنیم. به منظور انجام این کار بایستی ابتدا فایل Checksum ایمیج را محاسبه کرده و سپس یک Checksum برای درایو رسانه محاسبه کنیم.
ترفند تایید رسانه این است که محاسبه را فقط برای بخشی از رسانه نوری محدود کنیم که حاوی ایمیج است. این کار را با تشخیص شماره بلوکهای ۲۰۴۸ بایتی که ایمیج دارد (درایوهای نوری همیشه در بلوکها ۲۰۴۸ بایتی نوشته میشوند) و سپس خواندن آن بلوکها را از رسانه انجام میدهیم. بر روی برخی از انواه رسانهای کار لازم نیست. یک دیسک CD-R که در حالت disc-at-once رایت شده را میتوان به این شیوه بررسی کرد:
1 2 |
md5sum /dev/cdrom 34e354760f9bb7fbf85c96f6a3f94ece /dev/cdrom |
بسیاری از انواع رسانه مثل DVDها نیازمند یک محاسبه دقیق از شماره بلوکها هستند. در مثال زیر ما پیوستگی فایل ایمیج dvd-image.iso و دیسک موجود در DVD-ROM را در /dev/dvd را بررسی میکنیم:
1 2 |
md5sum dvd-image.iso; dd if=/dev/dvd bs=2048 count=$(( $(stat -c "%s" dvd-image .iso) / 2048 )) | md5sum |