تست و تعمیر سیستم های فایل (آموزش لینوکس LPIC1-101)
تست و تعمیر سیستم های فایل (آموزش لینوکس LPIC1-101)
هر زمان که سیستم بوت می شود به صورت روتین یکپارچگی سیستم هاي فایل، قبل از سوار شدن چک خواهد شد.
این کار با استفاده از دستور fsck (که مخفف filesystem check به معنی بررسی سیستم فایل هست) انجام می شود.
آخرین شماره در هر ورودی fstab ترتیب دیوایس های که بررسی شده اند را نشان می دهد.
براي مثال دیدید که سیستم فایل root اول بررسی می شود
و در ادامه آن سیستم فایل home و نهایتا سیستم فایل boot بررسی می شود.
دیوایس هایی که رقم آخر آنها صفر هست به صورت روتین بررسی نمی شوند.
به منظور بررسی یکپارچگی سیستم فایل دستور fsck می تواند سیستم هاي فایل خراب را نیز بسته به میزان آسیب وارد شده با درصد متفاوتی از موفقیت تعمیر کند.
در سیستم های فایل یونیکس بخش هاي بازیابی شده فایل در پوشه lost+found در روت سیستم قرار می گیرند.
به منظور بررسی درایو فلش (ابتدا بایستی آن را unmount کنید) دستور زیر را وارد می کنیم:
به تجربه من تخریب سیستم فایل بسیار نادر است مگر اینکه یک مشکل سخت افزاری در آن بوجود آمده باشد که باعث از بین رفتن دیسک خواهد شد.
در بیشتر سیستم ها، تخریب سیستم فایل در زمان بوت شناسایی می شود و از بارگذاری آن جلوگیری می شود.
جابجایی داده به صورت مستقیم از یک دیوایس به یک دیوایس دیگر
در حالی که ما معمولا داده را در کامپیوترهاي خود به عنوان فایل هاي سازماندهی شده در نظر می گیریم، ممکن است که داده را به شکل خام در نظر بگیریم.
براي مثال:
اگر به یک دیسک نگاه کنیم، می بینیم که شامل شمار زیادي از بلوك هاي داده هست که سیستم عامل آنها را به شکل پوشه ها و فایل ها می بیند.
اگر یک دیسک را به عنوان کلکسیونی از بلوك هاي عظیم داده در نظر بگیریم، می توانیم وظایف مفیدي مثل کلون کردن دیوایس ها را انجام دهیم.
دستور dd این وظیفه را انجام می دهد.
این دستور بلوك هایی از داده را از یک مکان به مکانی دیگر کپی می کند.
دستور dd از یک ترکیب یگانه استفاده می کند:
[[dd if=input_file of=output_file [bs=block_size [count=blocks
فرض کنید که دو درایو usb به یک اندازه داریم و می خواهیم که دقیقا درایو اول را به درایو دوم کپی کنیم.
اگر هر دو درایو را به کامپیوتر متصل کنیم، آنها به دیوایس هاي dev/sdb/ و dev/sdc/ متصل شده اند،
به راحتی می توانیم با دستور زیر درایو اول را به درایو دوم کنیم:
dd if=/dev/sdb of=/dev/sdc
به شیوه دیگر اگر فقط دیوایس اول به کامپیوتر متصل شده باشد،
می توانیم محتویات آن را به یک فایل عادي کپی کرده تا براي بازیابی هاي بعدي از آن استفاده کنیم:
dd if=/dev/sdb of=flash_drive.img
هشدار! دستور dd بسیار قدرتمند است.
گرچه نام آن از کلمه انگلیسی (data definition) گرفته شده است ولی بیشتر اوقات destroy disk (مخرب دیسک) نامیده می شود.
چرا؟
به این دلیل که گاها کاربران ترکیب آن را اشتباه وارد می کنند.
پس همیشه قبل از اجرای دستور دوبار خط دستور را بخوانید و از ترکیب آن مطمئن گردید.
ایجاد ایمیج هاي 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 را به صورت زیر ایجاد کنیم:
dd if=/dev/cdrom of=ubuntu.iso
این تکنیک براي داده هاي DVD نیز کار می کند ولی براي CDهاي صوتی کار نخواهد کرد.
براي CDهاي صوتی یا همان Audio به دستور cdrdao نگاهی بیندازید.
ایجاد یک تصویر از مجموعه از فایل ها
به منظور ایجاد یک فایل تصویر ISO که حاوي محتویات یک پوشه هست، از دستور genisoimage استفاده می کنیم.
براي انجام این کار ما بایستی ابتدا یک پوشه که حاوي همه فایل هاي ماست را ایجاد کنیم و سپس دستور genisoimage را به صورت زیر وارد کنیم.
براي مثال اگر ما یک پوشه با نام ساخته باشیم، می توانیم یک فایل تصویر با نام cd-rom.iso را با دستور زیر ایجاد کنیم.
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- که براي تعیین نوع سیستم فایل لازم است، می توانیم یک فایل ایمیج را سوار کنیم.
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 می باشد.
wodim dev=/dev/cdrw blank=fast
رایت زدن یک ایمیج
به منظور رایت زدن یک ایمیج، می توانیم مجدد از wodim استفاده کنیم
و به دنبال آن نام دیوایس نوري را وارد می کنیم
و سپس نام فایل تصویري را وارد می کنیم به صورت زیر:
wodim dev=/dev/cdrw image.iso
علاوه بر نام دیوایس و نام فایل ایمیج، wodim از گزینه هاي زیاد دیگري نیز پشتیبانی می کند.
دو نوع از رایج ترین آن ها گزینه v- و dao- که دیسک را در حالت (disc-at-once) رایت می زند.
این حالت زمانی به کار می رود که می خواهید یک دیسک را براي تولید و فروش رایت بزنید.
حالت پیش فرض رایت براي wodim حالت (track-at-once) می باشد که براي رایت زدن ترك هاي موسیقی مفید است.
اعتبار مضاعف و فوق العاده
گاهی اوقات مفید است که یکپارچگی یک فایل ایمیج ISO را که دانلود کرده ایم تایید نماییم.
در بیشتر موارد توزیع کننده فایل ISO یک فایل Checksum را به این منظور تامین می کند.
فایل چک سام یک نتیجه محاسبه ریاضی خارجی است که شماره را بوجود آورده که محتویات فایل هدف را ارایه می کند.
اگر محتویات فایل حتی یک بیت هم تغییر کنند، نتیجه چک سام نیز متفاوت خواهد بود.
رایج ترین شیوه ایجاد چک سام استفاده از دستور md5sum می باشد.
وقتی که از md5sum استفاده می کنیم، یک شماره هگزادسیمال یگانه ایجاد می شود.
md5sum image.iso
34e354760f9bb7fbf85c96f6a3f94ece image.iso
پس از آنکه یک ایمیج را دانلود کردید، بایستی دستور md5sum را بر روي آن اجرا کنید و نتیجه حاصله را با مقدار ارایه کننده توسط منتشر کننده مقایسه کنید.
به علاوه به منظور بررسی یکپارچگی یک فایل دانلود شده، می توانیم از دستور md5sum به منظور تایید دیسک نوري رایت شده استفاده کنیم.
به منظور انجام این کار بایستی ابتدا فایل چک سام ایمیج را محاسبه کنیم و سپس یک چکسام براي درایو رسانه محاسبه کنیم.
ترفند تایید رسانه این است که محاسبه را فقط براي بخشی از رسانه نوري محدود کنیم که حاوي ایمیج است.
این کار را با تشخیص شماره بلوك هاي 2048 بایتی که ایمیج دارد (درایوهاي نوري همیشه در بلوك ها 2048 بایتی نوشته می شوند)
و سپس خواندن آن بلوك ها از رسانه انجام می دهیم.
یک دیسک CD-R که در حالت disc-at-once رایت شده را می توان به این شیوه بررسی کرد.
md5sum /dev/cdrom
34e354760f9bb7fbf85c96f6a3f94ece /dev/cdrom
بسیاري از انواع رسانه مثل DVDها نیازمند یک محاسبه دقیق از شماره بلوك ها هستند.
در مثال زیر ما پیوستگی فایل ایمیج dvd-image.iso و دیسک موجود در DVD خوان dev/dvd/ را بررسی می کنیم:
md5sum dvd-image.iso; dd if=/dev/dvd bs=2048 count=$(( $(stat -c “%s” dvd-image.iso) / 2048 )) | md5sum
جهت مشاهده دوره های آموزشی بر روی این لینک کلیک نمایید.
جدیدترین اخبار مجموعه فراز نتورک را در این صفحه اجتماعی دنبال کنید.
نویسنده: موسی رشوند
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.