• نحوه بازیابی فایل سیستم در fsck. بررسی FS و بازیابی فایل های پاک شده در لینوکس

    به دلیل مشکلات مختلف یا خاموش شدن غیرمنتظره رایانه، سیستم فایل ممکن است خراب شود. در طول یک خاموشی معمولی، همه سیستم‌های فایل فقط خواندنی نصب می‌شوند و تمام داده‌های ذخیره نشده روی دیسک نوشته می‌شوند.

    اما اگر برق به طور غیرمنتظره قطع شود، برخی از داده ها از بین رفته و داده های مهم ممکن است از بین بروند و در نتیجه به دستگاه آسیب وارد شود. سیستم فایل. در این مقاله نحوه بازیابی یک فایل سیستم fsck برای چندین فایل سیستم محبوب و همچنین نحوه عملکرد بازیابی ext4 را بررسی خواهیم کرد.

    همانطور که می دانید سیستم فایل شامل تمامی اطلاعات مربوط به تمامی فایل های ذخیره شده در کامپیوتر می باشد. این خود داده فایل و ابرداده است که بر مکان و ویژگی های فایل ها در سیستم فایل نظارت می کند. همانطور که گفتم، داده ها بلافاصله روی آن نوشته نمی شوند HDD، و مدتی است در حافظه دسترسی تصادفیو در صورت خاموش شدن غیرمنتظره، برای مجموعه ای از شرایط، سیستم فایل ممکن است آسیب ببیند.

    سیستم های فایل مدرن به دو نوع ژورنال و غیر ژورنال تقسیم می شوند. فایل سیستم های ژورنال شده تمام اقداماتی را که می خواهند انجام دهند در گزارش می نویسند و پس از اجرا این رکوردها را پاک می کنند. این به شما امکان می دهد خیلی سریع متوجه شوید که آیا سیستم فایل آسیب دیده است یا خیر. اما در بهبودی کمک چندانی نمی کند. برای بازیابی فایل سیستم لینوکس، باید هر بلوک از سیستم فایل را بررسی کنید و بخش های بد را پیدا کنید.

    برای این منظور از ابزار fsck استفاده می شود. در واقع، این یک بسته بندی برای ابزارهای دیگر است که فقط بر روی کار با یک سیستم فایل خاص متمرکز شده است، به عنوان مثال، یک ابزار برای fat و یک ابزار کاملاً متفاوت برای ext4 وجود دارد.

    در اکثر سیستم‌ها، چک fsck به‌طور خودکار برای پارتیشن ریشه اجرا می‌شود، اما در مورد سایر پارتیشن‌ها صدق نمی‌کند و اگر چک را غیرفعال کنید، کار نخواهد کرد.

    مبانی fsck

    در این مقاله به کار دستی با fsck می پردازیم. اگر پارتیشن ریشه آسیب دیده باشد، ممکن است به یک رسانه LiveCD برای اجرای برنامه نیاز داشته باشید. در غیر این صورت، سیستم می‌تواند به حالت ریکاوری راه‌اندازی شود و از آنجا از برنامه استفاده خواهید کرد. همچنین می توانید fsck را بر روی سیستمی که از قبل راه اندازی شده است اجرا کنید. برای اجرا فقط به حقوق superuser نیاز دارد، پس این کار را با sudo انجام دهید.

    و حالا بیایید به نحو خود این ابزار نگاه کنیم:

    $ fsck [گزینه‌ها] [گزینه های سیستم فایل][پارتیشن_دیسک]

    گزینه های اصلی نحوه رفتار ابزار، پوسته fsck را مشخص می کنند. پارتیشن دیسک یک فایل دستگاه پارتیشن در پوشه /dev است، مانند /dev/sda1 یا /dev/sda2. گزینه های سیستم فایل برای هر یک از ابزارهای چک خاص هستند.

    حالا بیایید نگاهی به بیشترین موارد بیندازیم گزینه های مفید fsck:

    • -l- نمونه دیگری از fsck را برای این کار اجرا نکنید هارد دیسکتا زمانی که فعلی کامل شود. برای SSD، پارامتر نادیده گرفته می شود.
    • -t- انواع فایل سیستم های مورد بررسی را تنظیم کنید. نیازی به تعیین دستگاه نیست، می توانید با یک دستور چند پارتیشن را به سادگی با مشخص کردن بررسی کنید نوع مورد نظرسیستم فایل این می تواند خود فایل سیستم مانند ext4 یا گزینه های آن در قالب opts=ro باشد. این ابزار تمام سیستم های فایل نصب شده در fstab را اسکن می کند. اگر یک بخش را نیز مشخص کنید، بررسی دقیقاً از نوع مشخص شده، بدون تشخیص خودکار، روی آن اعمال می شود.
    • - تمام فایل سیستم ها را از /etc/fstab بررسی کنید. اینجا جایی است که گزینه های بررسی سیستم فایل مشخص شده در /etc/fstab شامل اولویت اعمال می شود. ابتدا ریشه بررسی می شود. معمولا در راه اندازی سیستم استفاده می شود.
    • -سی- نشان دادن پیشرفت بررسی سیستم فایل؛
    • - بررسی نکنید که آیا سیستم فایل نصب شده است یا خیر.
    • - هیچ کاری انجام ندهید، نشان دهید که بررسی با موفقیت انجام شده است.
    • - سیستم فایل ریشه را بررسی نکنید.
    • -تی- اطلاعات مربوط به ابزار را نشان ندهید.
    • -V- دقیق ترین خروجی

    اینها گزینه های جهانی این ابزار بودند. و اکنون بیایید به گزینه های کار با فایل سیستم نگاه کنیم، تعداد کمتری از آنها وجود دارد، اما جالب تر خواهند بود:

    • - در طول بررسی، تمام خطاهای شناسایی شده را بدون هیچ سوالی تصحیح کنید. این گزینه منسوخ شده است و توصیه نمی شود.
    • -n- فقط فایل سیستم را بررسی کنید، چیزی را تعمیر نکنید.
    • -r- قبل از رفع هر خطا بپرسید که به طور پیش فرض برای فایل سیستم های ext استفاده می شود.
    • -y- به تمام سوالات مربوط به تصحیح خطا پاسخ مثبت می دهد، می توان گفت که این معادل a است.
    • - همه چیز را پیدا کنید و در لیست سیاه قرار دهید بلوک های شکستهروی هارد دیسک فقط برای ext3 و ext4 موجود است.
    • - بررسی اجباری سیستم فایل، حتی اگر طبق گزارش تمیز باشد.
    • - اگر بلوک اصلی آسیب دیده باشد، آدرس سوپر بلوک را تنظیم کنید.
    • - آنالوگ مدرن دیگری از گزینه -a، تأیید و تصحیح را به صورت خودکار انجام می دهد. در واقع برای این منظور می توان از یکی از سه گزینه p, a, y استفاده کرد.

    اکنون همه چیز مرتب شده است و شما آماده انجام بازیابی فایل هستید سیستم های لینوکس. بریم به کسب و کار برسیم.

    نحوه بازیابی فایل سیستم در fsck

    فرض کنید قبلاً در یک سیستم LiveCD یا حالت بازیابی بوت شده اید. خوب، در یک کلام، ما آماده ایم ext4 یا هر فایل سیستم آسیب دیده دیگری را بازیابی کنیم. این ابزار به طور پیش فرض در همه توزیع ها نصب شده است، بنابراین نیازی به نصب چیزی ندارید.

    بازیابی سیستم فایل

    اگر سیستم فایل شما روی یک پارتیشن در /dev/sda1 است، اجرا کنید:

    sudo fsck -y /dev/sda1

    گزینه y اختیاری است، اما اگر این کار انجام نشود، ابزار به سادگی شما را با سوالاتی که باید به آنها پاسخ مثبت داده شود غرق خواهد کرد.

    بازیابی سوپر بلوک آسیب دیده

    معمولا این تیم با تمام آسیب ها با یک انفجار کنار می آید. اما اگر کار جدی انجام دادید و به superblock آسیب رساندید، ممکن است fsck کمکی نکند. superblock آغاز سیستم فایل است. هیچ چیز بدون آن کار نخواهد کرد.

    اما برای خداحافظی با داده های خود عجله نکنید، بازیابی آن هنوز امکان پذیر است. با استفاده از این دستور، ما نگاه می کنیم که سوپر بلوک های ذخیره کجا نوشته شده اند:

    sudo mkfs -t ext4 -n /dev/sda1

    در واقع این دستور یک سیستم فایل جدید ایجاد می کند. به جای ext4، سیستم فایلی که پارتیشن در آن فرمت شده است را جایگزین کنید، اندازه بلوک نیز باید مطابقت داشته باشد، در غیر این صورت هیچ چیز کار نخواهد کرد. با گزینه -n هیچ تغییری در دیسک ایجاد نمی شود بلکه فقط اطلاعاتی از جمله اطلاعات سوپر بلوک ها نمایش داده می شود.

    حالا شش تا داریم آدرس های پشتیبان superblocks و ما می توانیم سعی کنیم سیستم فایل را با استفاده از هر یک از آنها بازیابی کنیم، به عنوان مثال:

    sudo fsck -b 98304 /dev/sda1

    پس از آن، به احتمال زیاد، می توانید سیستم فایل خود را بازیابی کنید. اما بیایید به چند مثال دیگر نگاه کنیم.

    بررسی یک فایل سیستم تمیز

    بیایید سیستم فایل را بررسی کنیم، حتی اگر تمیز باشد:

    sudo fsck -fy /dev/sda1

    بخش های شکسته

    وگرنه میتونیم پیدا کنیم بخش های بدو در آنها چیز دیگری ننویسید:

    sudo fsck -c /dev/sda1

    نصب فایل سیستم

    می توانید مشخص کنید که کدام فایل سیستم را روی پارتیشن بررسی کنید، به عنوان مثال:

    sudo fsck -t ext4 /dev/sdb1

    بررسی تمام فایل سیستم ها

    با پرچم -A، می توانید تمام فایل سیستم های متصل به رایانه را بررسی کنید:

    اما چنین دستوری فقط در حالت بازیابی کار می کند، اگر پارتیشن ریشه و سایر پارتیشن ها قبلاً نصب شده باشند، خطا می دهد. اما می توانید با اضافه کردن R پارتیشن ریشه را از بررسی حذف کنید:

    sudo fsck -AR -y

    یا تمام فایل سیستم های نصب شده را حذف کنید:

    همچنین، می توانید نه همه سیستم های فایل، بلکه فقط ext4 را بررسی کنید، برای این کار از ترکیب گزینه های زیر استفاده کنید:

    sudo fsck -A -t ext4 -y

    یا می‌توانید بر اساس گزینه‌های mount در /etc/fstab فیلتر کنید، برای مثال، فایل‌های سیستم‌هایی را که فقط خواندنی نصب شده‌اند را بررسی کنید:

    sudo fsck -A -t opts=ro

    بررسی فایل سیستم های نصب شده

    قبلا گفتم غیر ممکن است. اما اگر راه دیگری وجود نداشته باشد، ممکن است، اگرچه توصیه نمی شود. برای انجام این کار، ابتدا باید فایل سیستم را به حالت فقط خواندنی نصب کنید. مثلا:

    sudo mount -o remount,ro /dev/sdb1

    و اکنون فایل سیستم را با fsck در حالت اجباری بررسی کنید:

    sudo fsck -fy /dev/sdb1

    مشاهده اطلاعات

    اگر نمی خواهید چیزی را اصلاح کنید و فقط به اطلاعات نگاه کنید، از گزینه -n استفاده کنید.

    گاهی اوقات به دلایل مختلف (در نتیجه شکست، خاموش شدن نادرست) سیستم های فایل خطاهایی را جمع می کنند. خطاها به خودی خود ساختارهای داده "ناهمخوان" هستند. طبیعتاً در صورت پیش آمدن چنین شرایطی، باید هر چه سریعتر آسیب دیده را سامان داد. ابزار با این کار بسیار عالی کار می کند. fsck. در واقع بسیار مؤثر است و مدیران سیستم اغلب از آن در وهله اول برای بازیابی یا تعمیر فایل سیستم ها استفاده می کنند.

    fsck چگونه کار می کند؟

    سودمند fsck (اف ile اسسیستم سازگاری Che ck) ابتدا به طور عمیق تمام ساختارهای داده را در یک ردیف، یعنی کل سیستم فایل را بررسی کرد. او برای یافتن خطاها از روش هایی استفاده کرد تحلیل اکتشافیبرای سرعت بخشیدن و بهینه سازی فرآیند یافتن خطاها. با این حال، حتی در این مورد، برای سیستم های فایل بزرگ، این روش می تواند ساعت ها طول بکشد.

    بعداً طرحی برای ارزیابی وضعیت فایل سیستم اجرا شد که مبتنی بر علامت "بیت تمیز از سیستم فایل" است. اگر خرابی رخ دهد و سیستم فایل (FS) به اشتباه از بین رفته باشد، این بیت در superblock FS تنظیم می شود. به طور پیش فرض در سیستم های لینوکس در یکی از مراحل بوت شدن سیستم، فایل سیستم ها بررسی می شوند که در فایل های /etc/fstab، /etc/vfstab و همچنین در /etc/filesystems ثبت می شوند. بنابراین، با تجزیه و تحلیل "بیت تمیز" FS در هنگام بوت شدن سیستم، ابزار تعیین می کند که آیا ارزش بررسی دارد یا خیر.

    سیستم های فایل ژورنال شده در حال حاضر به این ابزار اجازه می دهند فقط با آن دسته از ساختارهای داده کار کند که واقعاً نیاز به تعمیر یا بازیابی دارند. در صورت لزوم، fsck می تواند کل FS را به لطف همان گزارش های FS بازیابی کند.

    برخی از ویژگی های استفاده از fsck در لینوکس

    اغلب برای سیستم های لینوکس (مخصوصاً با ext FS)، بررسی FS می تواند به گونه ای سازماندهی شود که پس از تعداد معینی از برچیدن انجام شود، حتی اگر FS کاملاً کاربردی باشد. این به ویژه برای کامپیوترهای رومیزیکه می توانند هر روز خاموش/روشن شوند، به دلیل خاص بودن کار و کاربردشان و همچنین به دلیل دسترسی رایگان به آنها برای اتصال، راه اندازی مجدد شوند. دستگاه های خارجی. در چنین مواردی، بررسی FS (اگرچه یک روش مفید و مطلوب است) بسیار مکرر و در نتیجه بی معنی است.

    به طور پیش فرض، لینوکس پس از 20 unmount، فایل سیستم را بررسی می کند. برای تغییر تعداد حذف‌هایی که پس از بررسی FS مورد نیاز است، باید از دستور استفاده کنید tune2fs:

    $ sudo tune2fs -c 50 /dev/sda1 tune2fs 1.44.1 (24-مارس-2018) تنظیم حداکثر تعداد مانت روی 50

    نحو و گزینه های اساسی برای fsck

    تیم fsckنحو زیر:

    fsck [گزینه] -- [گزینه های FS] [<файловая система> . . .]

    پارامترهای اصلی:

    گزینه شرح
    تمام FS ها را بررسی می کند
    -با [ ] وضعیت اجرا را نشان می دهد. در اینجا fd توصیفگر فایل است که از طریق رابط کاربری گرافیکی نمایش داده می شود
    -l دستگاه را برای دسترسی انحصاری مسدود می کند
    بررسی سیستم های فایل نصب شده را ممنوع می کند
    اجرای شبیه سازی شده را بدون اجرای آزمایش واقعی نشان می دهد
    با root FS چک کنید
    بررسی root FS را رد می کند. فقط با گزینه -A قابل استفاده است
    -r [ ] آمار مربوط به هر دستگاه بررسی شده را نمایش می دهد
    -تی هدر هنگام راه اندازی نشان داده نشود
    -t<тип> FS را برای بررسی مشخص می کند. می‌توانید با فهرست‌هایی که با کاما از هم جدا شده‌اند، چند FS را مشخص کنید
    -V نمایش می دهد توصیف همراه با جزئیاتاقدامات انجام شده

    علاوه بر گزینه های اصلی برای fsck، گزینه های خاصی نیز وجود دارد که به وظیفه در حال انجام و/یا سیستم فایل بستگی دارد. با استفاده از دستور می توانید در این مورد با جزئیات بیشتر در صفحات مربوطه مطالعه کنید مرد fsck. محتویات دفترچه راهنمای اصلی ابزار (در زیر "همچنین ببینید") دارای پیوندهایی به صفحات دیگر مانند fstab(5)، mkfs(8)، fsck.ext2(8)، fsck.ext3(8)، و غیره است. این پیوندها را می توان با اجرای دستور man با گزینه های مناسب مانند man fsck.ext3 مشاهده کرد.

    جدول زیر گزینه‌های اضافی (ویژه) و همچنین رایج‌ترین گزینه‌های مورد استفاده را فهرست می‌کند تا به شما در استفاده از فرمان با حداکثر انعطاف‌پذیری و کارایی کمک کند:

    گزینه شرح
    گزینه منسوخ شده مشخص می کند که تمام خطاهای یافت شده بدون تایید کاربر رفع شوند.
    -r برای فایل سیستم های ext استفاده می شود. به fsck می گوید قبل از رفع هر خطا از کاربر بپرسد.
    -n فقط یک بررسی سیستم فایل را انجام می دهد، بدون تصحیح خطا. همچنین برای به دست آوردن اطلاعات در مورد FS استفاده می شود
    برای سیستم های فایل ext3/4 استفاده می شود. همه بلوک های بد را علامت گذاری می کند تا از نوشتن بعدی برای آنها جلوگیری کند
    FS را به زور چک می کند حتی اگر FS سالم باشد
    -y به طور خودکار درخواست های کاربر را تأیید می کند
    آدرس superblock را تنظیم می کند
    به طور خودکار خطاهای پیدا شده را برطرف کنید. جایگزین گزینه منسوخ شده -a می شود

    نمونه هایی از استفاده از fsck

    برای معمول ترین وضعیت، معمول برای مواردی که نیاز به بازیابی (یا بهتر است بگوییم "تعمیر") سیستم فایل دارید، به عنوان مثال، در دستگاه /dev/sdb2، باید از دستور استفاده کنید:

    $ sudo fsck -y /dev/sdb2

    گزینه -y در اینجا مورد نیاز است، زیرا در صورت عدم وجود آن، باید اغلب تأیید کنید. دستور زیر به شما امکان می دهد FS را به اجبار بررسی کنید، حتی اگر کار می کند:

    $ sudo fsck -fy /dev/sdb2

    یکی از مفیدترین آنها گزینه علامت گذاری بد سکتورها است و این گزینه بیشتر مورد استفاده قرار می گیرد. به طور معمول، چنین موقعیت هایی (با بخش های بد) پس از خرابی های ناشی از قطع برق غیرعادی رخ می دهد:

    $ sudo fsck -c /dev/sdb2

    کار با فایل سیستم ها باید زمانی انجام شود که از پارتیشن ها جدا شده باشند. با این حال، اگر موقعیتی پیش بیاید که هنوز نیاز به بررسی سیستم های فایل نصب شده دارید، قبل از استفاده از دستور fsck با گزینه مناسب، ابتدا باید فایل سیستم مورد نظر را در حالت فقط خواندنی دوباره نصب کنید:

    $ sudo mount remount,ro /dev/sdb2 $ sudo fsck -fy /dev/sdb2

    برای تعیین اینکه از کدام FS برای یک پارتیشن استفاده شود:

    $ sudo fsck -t ext4 -y /dev/sdb2

    اگر fsck نتواند سیستم فایل را تعمیر/تعمیر کند (که به ندرت اتفاق می افتد)، ممکن است به دلیل یک سوپر بلوک فایل سیستم خراب باشد. همچنین می توان آن را با پشتیبان گیری از سوپر بلوک ها بازیابی کرد. اما ابتدا باید دریابید که این کپی ها در چه آدرس هایی نوشته شده اند و سپس سعی کنید superblock را از یکی از آنها بازیابی کنید. پشتیبان گیری:

    $ sudo fdisk -l $ sudo mkfs -t ext4 -n /dev/xvdb1 $ sudo fsck -b 163840 /dev/xvdb1

    دستور -l در این مثال برای نشان دادن این واقعیت ذکر شده است که ابتدا باید تصور کنید که با کدام دستگاه کار کنید، زیرا لیستی را نمایش می دهد (در این نتیجه گیریحذف شده) پارتیشن های موجود. دستور mkfs برای ایجاد یک فایل سیستم در نظر گرفته شده است، اما با گزینه -n می توان از آن برای دریافت اطلاعات مربوط به فایل سیستم، از جمله مکان سوپر بلوک ها استفاده کرد. باید اطمینان حاصل کنید که سوئیچ -t برای mkfs روی سیستم فایل مربوط به وضعیت واقعی تنظیم شده است. این مورد ext4.

    نتیجه

    در این مقاله به بررسی عملکرد و استفاده از ابزار کمکی پرداختیم fsck.همانطور که از مقاله مشخص است، استفاده از ابزار پیچیدگی زیادی ایجاد نمی کند. و امکان بررسی و بازیابی فایل سیستم ها در لینوکس بسیار زیاد است، بنابراین دانش این ابزار مفید است. مدیر سیستمبه سادگی ضروری هستند.

    اگر خطایی پیدا کردید، لطفاً قسمتی از متن را برجسته کرده و کلیک کنید Ctrl+Enter.

    من هم مجبور شدم با این مشکل روبرو شوم. یکی از دوستان من که دارد اوبونتوبه قدیمی لپ تاپ ایسوس، و کسی که نمی خواهد حداقل گاهی اوقات مغزش را روشن کند، با چنین مشکلی به من روی آورد. یک اوبونتو 12.10 جدید روی لپ‌تاپ او نصب شده است و اغلب سیستم نمی‌خواهد بوت شود، آن را در صفحه سیاه پرتاب می‌کند یا روی پس‌زمینه بنفش یخ می‌زند. ولی در اخیراپیامی مانند این شروع به ظاهر شدن کرد، چیزی مانند "سیستم عامل نمی تواند بوت شود. برای را انتخاب کنید اقدامات بیشتر کلید مورد نظر... «و سپس شرح آنچه باید کلیک کنید می آید. دقیقاً یادم نیست که سیستم فشار دادن چه کلیدهایی را پیشنهاد می کند، اما منظور این است که برای تصحیح خودکار خطاها، کلید خاصی را فشار دهید، کلید دیگری را به صورت دستی اشکال زدایی کنید و برای نادیده گرفتن این پیام، دکمه سوم را فشار دهید. تصحیح خودکار خطا به نتیجه ای نرسید و بارگذاری سیستم عامل به نتیجه منطقی خود نرسید. بنابراین تصمیم گرفتم تیم معروف را امتحان کنم fsck.

    ابتدا باید یکی از آنها را بوت کنید درایو فلش قابل بوتبا اوبونتو (Lubuntu، Xubuntu، Kubuntu، و غیره)، یا با دیسک اوبونتوسی دی زنده اکنون باید دقیقاً بفهمیم که کدام پارتیشن اوبونتو را باید اسکن کنیم تا فایل سیستم را تعمیر کنیم. ترمینال (Ctrl-Alt-T) را راه اندازی کنید و دستور را اجرا کنید:

    sudo fdisk -l

    این دستور تمام دیسک ها، فلش درایوهایی که روی سیستم نصب شده اند را به ما نشان می دهد. من با خودم مثال می زنم کامپیوتر شخصیو نه با لپ تاپ یکی از دوستان. این چیزی است که برای من اتفاق افتاد:

    ubuntu@ubuntu:~$ sudo fdisk -l

    دیسک /dev/sda: 640.1 گیگابایت، 640135028736 بایت
    255 سر، 63 بخش / مسیر، 77825 سیلندر، کل 1250263728 بخش



    شناسه دیسک: 0x0009d6f7


    /dev/sda1 * 2048 61442047 30720000 83 لینوکس
    /dev/sda2 61442048 73730031 6143992 82 سوآپ لینوکس / سولاریس
    /dev/sda3 73730048 1250263039 588266496 83 لینوکس

    دیسک /dev/sdb: 500.1 گیگابایت، 500107862016 بایت
    255 سر، 63 بخش / مسیر، 60801 سیلندر، کل 976773168 بخش
    واحد = بخش های 1 * 512 = 512 بایت
    اندازه بخش (منطقی/فیزیکی): 512 بایت / 512 بایت
    اندازه ورودی/خروجی (حداقل/بهینه): 512 بایت / 512 بایت
    شناسه دیسک: 0xb9ff6f01

    شروع بوت دستگاه پایان سیستم شناسه را مسدود می کند
    /dev/sdb1 * 16065 100197404 50090670 83 لینوکس
    /dev/sdb2 105322201 976771071 435724435+ 5 Extended
    /dev/sdb3 100197405 105322139 2562367+ 82 لینوکس سواپ / سولاریس
    /dev/sdb5 105322203 832110591 363394194+ 7 HPFS/NTFS/exFAT
    /dev/sdb6 832112640 860755218 14321289+ 83 لینوکس
    /dev/sdb7 860758016 862613503 927744 82 سوآپ لینوکس / سولاریس
    /dev/sdb8 862615552 976771071 57077760 83 لینوکس

    ورودی های جدول پارتیشن به ترتیب دیسک نیستند

    دیسک /dev/sdc: 8115 مگابایت، 8115978240 بایت
    250 سر، 62 بخش / مسیر، 1022 سیلندر، کل 15851520 سکتور
    واحد = بخش های 1 * 512 = 512 بایت
    اندازه بخش (منطقی/فیزیکی): 512 بایت / 512 بایت
    اندازه ورودی/خروجی (حداقل/بهینه): 512 بایت / 512 بایت
    شناسه دیسک: 0xc3072e18

    شروع بوت دستگاه پایان سیستم شناسه را مسدود می کند
    /dev/sdc1 * 32 15847625 7923797 b W95 FAT32

    همانطور که از خروجی دستور می بینید sudo fdisk -l، من 2 دارم دیسکهای سخت(sda) 640 GB و (sdb) 500 GB و همچنین فلش مموری (sdc) 8 GB که در واقع از آن بوت کردم. من می دانم که سیستم پایه اوبونتو 12.04 من روی یک درایو sda است و پارتیشن سیستم عامل بر این اساس sda1 نام دارد.

    اکنون که بخش مورد بررسی را می‌دانیم، می‌توانیم آن را بررسی کنیم. در ترمینال:

    sudo fsck -y -f -c /dev/sda1

    اگر خطایی مشاهده کردید، به احتمال زیاد باید این پارتیشن را از حالت نصب خارج کنید:

    sudo umount /dev/sda1

    کلیدها و پارامترهای فرمان fsck:

    y- همیشه به همه سؤالات بله پاسخ دهید (یک جایگزین وجود دارد: کلید p - بررسی را در حالت کاملاً خودکار شروع می کند).

    f- بررسی اجباری سیستم فایل (حتی اگر سیستم فایل به عنوان کاملاً کاربردی مشخص شده باشد)

    ج- به دنبال بلوک های شکسته (بلوک های بد) می گردد و سپس آنها را بر اساس آن علامت گذاری می کند

    /dev/sda1- دستگاه یا پارتیشنی که باید بررسی شود. اگرچه دستور ممکن است شکل متفاوتی داشته باشد. مثلا:

    sudo fsck -p /dev/sda1

    در این حالت فقط سوئیچ -p اضافه می شود. شما فقط در مورد تمام گزینه های دستور fsck مطالعه کنید و دقیقاً گزینه های مورد نیاز خود را اضافه کنید. برای آشنایی با تمام ویژگی های برنامه، وارد ترمینال شوید:

    مرد fsck

    این چیزی است که ترمینال پس از بررسی ارائه کرد:

    ubuntu@ubuntu:~$ sudo fsck -y -f -c /dev/sda1
    fsck از util-linux 2.20.1
    e2fsck 1.42.5 (29-ژوئیه-2012)
    بررسی بلوک های بد (تست فقط خواندنی): 0.00٪ انجام شده، 0:00 سپری شده است. (0/0/0 اردون
    /dev/sda1: به روز رسانی بلوک بد inode.
    پاس 1: بررسی اینودها، بلوک ها و اندازه ها
    پاس 2: بررسی ساختار دایرکتوری
    پاس 3: بررسی اتصال دایرکتوری
    پاس 4: بررسی تعداد مراجع
    پاس 5: بررسی اطلاعات خلاصه گروه

    لینوکسیکی از قابل اعتمادترین سیستم عامل هایی است که تا به حال دیده اید، اما این بدان معنا نیست که سخت افزاری که لینوکس را اجرا می کند به همان اندازه قابل اعتماد است. هارد دیسک هامی تواند با خطاها کار کند و در نتیجه - در سیستم فایل خود خطاهایی دریافت خواهید کرد. مهم نیست چقدر قابل اعتماد هستید سیستم عاملاگر به طور تصادفی حذف کردید فایل های مورد نیازیا دایرکتوری ها با این حال، اگر چنین چیزی برای شما اتفاق افتاد، ناامید نشوید. لینوکس همه چیزهایی را که برای کمک به بازیابی نیاز دارید دارد فایلهای از دست رفتهدر نتیجه حذف یا خرابی دیسک ها و سیستم های فایل. در مورد چه ابزارهایی صحبت می کنیم؟ اول از همه، ما با شما به ابزارهای کمکی نگاه خواهیم کرد e2fsck, چاقوی کوچک جراحیو lsof. در یادداشت امروز خواهیم دید که چگونه با استفاده از این مجموعه ابزار می توانید خطاهای FS را برطرف کرده و فایل های پاک شده را بازیابی کنید.

    بررسی ext2/ext3/ext4 FS با e2fsck

    سودمند e2fsckاز نوادگان ابزار معروف یونیکس است fsck، طراحی شده برای بررسی سیستم های فایل. با کمک e2fsckمی توانید خطاها را بررسی کنید و کار تعمیر را روی فایل سیستم انجام دهید ext2/ext3/ext4.

    یکی از مهمترین نکات مهمدر کار با e2fsck این است که با آن شما فقط می توانید روی یک فایل سیستم نصب نشده کار کنید، در غیر این صورت می توانید سردردهای بیشتری برای خود ایجاد کنید، که خود برنامه زمانی که می خواهید آن را اجرا کنید تا روی FS نصب شده اجرا کنید هشدار می دهد. اگر FS مورد بررسی ریشه نیست، می توانید همه کاربران را خاموش کنید، به حالت تک کاربره بروید ( ابتدایی 1) FS را جدا کرده و با آن کار کنید.

    با این حال، نویسنده هنوز هم استفاده از یکی را توصیه می کند و با بوت شدن از آن، تمام کارها را انجام می دهد. با استفاده از این روش، بدون نیاز به انجام هیچ مرحله اضافی، فایل سیستم های نصب نشده را در اختیار خواهید داشت.

    اگر به دلایلی اولین گزینه را انتخاب کردید، پس از تغییر به حالت تک کاربره:

    # ابتدایی 1

    فایل سیستمی را که می خواهید با آن کار کنید، از حالت نصب خارج کنید:

    # umount /dev/sdb1

    و پس از Unmount موفق اجرا شود e2fsck:

    # e2fsck -y /dev/sdb1

    گزینه "-y"به ابزار مفید می گوید e2fsckکه ما پیشاپیش با تمام سوالاتش موافقت می کنیم و می رویم تا قهوه بنوشیم، به این امید که خودش همه کارها را انجام دهد. بسته به اندازه سیستم فایل، بررسی و بازیابی ممکن است کمی طول بکشد. پس از اتمام تست، همیشه می توانید تست را دوباره اجرا کنید تا مطمئن شوید که هیچ خطای جدیدی در FS رخ نداده است، که ممکن است ناشی از مشکلات سخت افزاری درایو باشد.

    پس از اتمام تمام بررسی ها و کار بازیابی، می توانید سیستم فایل بررسی شده را سوار کرده و به حالت چند کاربره بازگردید. یا می توانید به سادگی سیستم را راه اندازی مجدد کنید.

    بازیابی فایل های حذف شده با /proc و lsof

    حالا بیایید به روند بازیابی نگاه کنیم فایل های حذف شده. به طور کلی، دلیل اینکه شما می توانید یک فایل حذف شده را بازیابی کنید این است که "فایل" فقط یک مرجع به inode فایل است ( اینود). دقیقا در inodeاطلاعات مربوط به مکان فیزیکی فایل را ذخیره می کند. هنگامی که یک فایل را حذف می کنید، در واقع فقط یک پیوند به آن را حذف می کنید inode، در حالی که خود توصیفگر برای مدتی وجود خواهد داشت: تا زمانی که فرآیندی که قبلاً این فایل را باز کرده است توصیفگر مربوطه را برای نوشتن آزاد کند. بنابراین، مدتی، هرچند کوتاه، وجود دارد که در طی آن می توان محتویات فایل حذف شده را بازیابی کرد. کلید این فرآیند، سیستم فایل است که شامل اطلاعاتی در مورد تمامی فرآیندهای در حال اجرا در سیستم و فایل هایی است که آنها باز کرده اند. هر فرآیندی که روی سیستم اجرا می شود دارای یک دایرکتوری مربوط به PID آن است /proc. با دانستن PID فرآیند که هنوز فایل راه دور را باز نگه می دارد، همیشه می توانیم محتویات آن را از پوشه /proc// فرآیندی که آن را باز کرده است بازیابی کنیم. بریم ادامه بدیم مثال سادهبیایید ببینیم چگونه انجام می شود.

    ابتدا بیایید چند فایل بسازیم:

    $ echo "داده های بسیار مهم" > ~/myfile.txt

    حالا ما یک فایل داریم myfile.txtبا داده های مهم واقع در فهرست اصلی. بیایید سعی کنیم آن را حذف کنیم و سپس آن را به صورت زیر بازیابی کنیم. ابتدا فایل را برای مشاهده با دستور باز می کنیم کمتر، پس از آن کار آن را به حالت تعلیق در می آوریم، بنابراین فایل مورد نیاز خود را باز می گذاریم. پس قدم به قدم

    فایل را با دستور باز کنید کمتربرای مشاهده

    $ کمتر ~/myfile.txt

    پس از باز شدن فایل و مشاهده محتوای آن، کلیک کنید ctrl+zبرای توقف اجرا کمتر.

    حذف فایل:

    $ rm ~/myfile.txt

    مطمئن شوید که فایل دیگر وجود ندارد

    $ ls -l ~/myfile.txt

    از آنجا که کار قبلا توسط ما راه اندازی شد کمترهنوز تکمیل نشده است، فایل برای آن باز می ماند و در واقع حذف نمی شود. بیایید آن را بازیابی کنیم.

    ابتدا باید PID فرآیندی که فایل را باز کرده و شماره توصیفگر فایل را پیدا کنید. این را می توان با استفاده از برنامه انجام داد lsof:

    $ lsof | grep myfile.txt کمتر 2675 ashep 4r REG 8.1 37 294478 /home/ashep/myfile.txt (حذف شده)

    در قسمت خروجی دوم lsofشامل PID - 2675 و چهارمین عدد توصیفگر - 4 است. اکنون می توانید بازیابی را شروع کنید:

    $ cp /proc/2675/fd/4 ~/recovered.txt

    بررسی کنید که آیا محتوا در فایل مورد نیاز ما وجود دارد:

    $ cat ~/recovered.txt داده های بسیار مهم

    همانطور که می بینید همه چیز به خوبی پیش رفت و ما موفق شدیم فایل حذف شده را بازیابی کنیم.

    بازیابی فایل های پاک شده با اسکالپل

    پس از خروج فرآیندی که فایل را باز کرد، بازیابی فایل دشوارتر می شود زیرا inode آزاد می شود و هرگونه ارتباط بین داده های موجود در بلوک های روی دیسک و سیستم فایل از بین می رود. تا زمانی که داده ها به صورت فیزیکی روی دیسک بازنویسی نشوند، می توان آن را با استفاده از ابزار بازیابی کرد. چاقوی کوچک جراحی. این ابزار به طور متوالی، بلوک به بلوک، محتویات دیسک را دور می زند و محتویات آن را تجزیه و تحلیل می کند و سعی می کند نشانه هایی از وجود فایل ها را در آنجا پیدا کند. برای جستجو چاقوی کوچک جراحیاز الگوهایی از دنباله ای از بایت های ذاتی در انواع خاصی از فایل ها استفاده می کند. به عنوان مثال، فایل های PNG حاوی دنباله بایت هستند \x50\x4e\x47.

    چاقوی کوچک جراحیدر مخازن اکثر توزیع های مدرن پیدا خواهید کرد. پس از نصب ابزار، اولین کاری که باید انجام دهید این است که تصمیم بگیرید برنامه هنگام کار به دنبال چه فایل هایی باشد. تعاریف الگوی جستجو در فایل موجود است /etc/scalpel/scalpel.conf. به‌طور پیش‌فرض، محتویات فایل به‌طور کامل کامنت می‌شوند و قبل از شروع کار، باید قالب‌های لازم را از کامنت بردارید و/یا قالب خود را اضافه کنید. قالب توضیحات قالب بسیار ساده است:

    هدر اندازه پسوند_حساس

    • افزونهپسوند فایل را مشخص می کند که چاقوی کوچک جراحیدر بازیابی اضافه خواهد شد.
    • حساس به حروف کوچک و بزرگبه ابزار می گوید که آیا مورد شخصیت ها در الگوی جستجو اهمیت دارد یا خیر.
    • با استفاده از اندازه تعیین می شود حداکثر اندازهفایل های قابل بازیابی؛
    • V سرتیترو اختیاری پاورقیتوالی هدر فایل و قسمت پایین آن به ترتیب شرح داده شده است.

    برای مثال، تعریف قالب برای فایل‌های JPG ممکن است به شکل زیر باشد:

    Jpg y 200000000 \xff\xd8\xff\xe0\x00\x10 \xff\xd9

    پس از ایجاد تغییرات لازم در فایل پیکربندیبرای ذخیره فایل‌های یافت شده، یک دایرکتوری خالی (اجباری!) آماده کنید، می‌توانید فرآیند جستجو و بازیابی را شروع کنید:

    # scalpel -o ~/recovered /dev/sdb1

    جایی که با استفاده از گزینه "-o"مسیر دایرکتوری را برای ذخیره فایل های یافت شده تعریف می کند. روند این ابزار معمولاً بسیار طولانی است، زیرا کل دستگاه را اسکن می کند، بنابراین یک لحظه وقت بگذارید و بیرون بروید، هوای تازههنوز کسی رو اذیت نکرده ;)

    بعد از چاقوی کوچک جراحیکار خود را تمام می کند، محتویات دایرکتوری خروجی را بررسی کنید تا ببینید آیا حاوی فایل های مورد نیاز شما است یا خیر.

    نتیجه

    تعداد کمی از مردم دوست دارند در شرایطی قرار بگیرند که داده های مهم به طور تصادفی حذف یا آسیب ببینند. و همچنین لینوکسابزارهایی برای بازیابی داده های از دست رفته ارائه می دهد، در این فرآیند چندان خوشایند نیست. بنابراین، همیشه مراقب داده های خود باشید و با آنها کار کنید. و البته، به موقع را فراموش نکنید - یک روش قدیمی و اثبات شده که بیش از هزار سلول عصبی را از مرگ حتمی نجات داد.

    برنامه fsck برای بررسی سیستم های فایل و تصحیح خطاهای سیستم فایل در صورت وجود استفاده می شود. شرط اساسی برای بررسی یک فایل سیستم این است که سیستم فایل باید unmount شود. اجرای fvek بر روی یک فایل سیستم از قبل نصب شده می تواند منجر به تخریب آن شود - در این صورت حتی fsck نیز کمکی نخواهد کرد. از برنامه fsck می توان برای بررسی سیستم های فایلی که توسط هسته لینوکس پشتیبانی می شوند استفاده کرد.
    فرمت فراخوانی برنامه به شرح زیر است:
    sudo fsck [گزینه ها] [سیستم فایل]

    پارامترها، مانند سیستم فایل، می توانند حذف شوند. اگر سیستم فایلی را مشخص نکنید، برنامه شروع به بررسی تمام سیستم های فایل فهرست شده در فایل /etc/fstab می کند. این بسیار نامطلوب است زیرا این فایل‌سیستم‌ها را می‌توان نصب کرد و احتمالاً باعث خراب شدن سیستم فایل می‌شود.

    ترتیب بررسی سیستم فایل باید به صورت زیر باشد:
    1. فایل سیستم را جدا کنید.
    2. برای تست f sck را اجرا کنید.

    به عنوان مثال، برای بررسی سیستم فایل پارتیشن /dev/hda5، ابتدا آن را unmount کرده و سپس f sck را اجرا کنید:
    sudo -i
    # umount /dev/hda5
    # fsck /dev/hda5

    اما گاهی اوقات نمی‌توانیم فایل سیستم را از حالت نصب خارج کنیم، مانند زمانی که باید فایل سیستم ریشه را بررسی کنیم. در این مورد، شما باید موارد زیر را انجام دهید:
    1. راه اندازی مجدد در حالت تک کاربر.
    2. سیستم فایل ریشه را در حالت فقط خواندنی نصب کنید.
    3. فایل سیستم را بررسی کنید.

    برای راه‌اندازی مجدد در حالت تک کاربر، سیستم را ریبوت کنید (فرمان راه‌اندازی مجدد) و هنگام راه‌اندازی، پارامتر واحد را به هسته ارسال کنید.
    در حالت تک کاربره، همانطور که انتظار می رود، فقط یک کاربر می تواند کار کند - root.
    همه سرویس ها خاموش هستند، بنابراین هیچ چیز نباید در بررسی سیستم فایل اختلال ایجاد کند. برای نصب مجدد فایل سیستم، دستور را وارد کنید:
    # mount -o remount th -t ext3 /
    گزینه -o در دستور mount به شما اجازه می دهد تا گزینه های مختلفی را مشخص کنید. در این حالت گزینه های remount and go را مشخص می کنیم که به معنای remount در حالت فقط خواندنی است. گزینه -t نوع سیستم فایل ext3 را مشخص می کند و آخرین گزینه سیستم فایل ریشه (/) است.