با سلام
در این آموزش به حل مشکل وارد شدن سرور به محیط initramfs و راههای حل آن میپردازیم.
جهت درک بهتر موضوع ابتدا بهتر است با مفهوم initramfs آشنا شویم:
مفهوم initramfs چیست؟
یک سیستم فایل موقتی است که هنگام روشن شدن سیستم، توسط هسته (Kernel) لینوکس در حافظه RAM بارگذاری میشود.
این سیستم فایل شامل ابزارها و درایورهای اولیه است که برای:
- شناسایی سختافزار (مثل هارد دیسک یا SSD)
- بارگذاری درایورها
- مانت (mount) کردن پارتیشن ریشه (root)
مورد استفاده قرار میگیرد.
پس از اینکه کار initramfs تمام شد، سیستم به حالت عادی بوت شدن ادامه میدهد و از پارتیشن اصلی استفاده میکند.
چرا گاهی با initramfs مواجه میشویم؟
اگر مشکلی در مرحلهی بوت پیش بیاید، سیستم نمیتواند پارتیشن ریشه را پیدا یا بارگذاری کند و وارد یک محیط محدود شده به نام initramfs shell (خط فرمان اضطراری) میشود.
دلایل رایج:
- خرابی فایلسیستم: مثلاً اگر پارتیشن اصلی شما خراب شده باشد (نیاز به fsck دارد).
- پیدا نکردن هارد یا پارتیشن ریشه: به دلیل تغییر نام دیوایسها (مثلاً بعد از اضافه یا حذف هارد جدید) یا اشتباه بودن UUID در فایل /etc/fstab.
- پاک شدن یا خراب شدن initramfs: مثلاً بهدلیل آپدیت ناقص یا حذف اشتباهی فایلهای مربوطه.
- عدم تطابق نسخه کرنل و initramfs: ممکن است initramfs برای نسخهای از کرنل ساخته شده باشد که در حال حاضر استفاده نمیشود.
- مشکل درایور: مثلاً درایور کنترلکننده SATA یا NVMe بارگذاری نمیشود و سیستم نمیتواند هارد را بشناسد.
راهکار چیست؟
در سرورهای سیموتل مسیر فایل سیستم پیشفرض /dev/mapper/test–vg-root میباشد
که میبایست جهت حل مشکل، با استفاده از fsck فایل سیستم خراب در این مسیر تعمیر شود.
آیا اجرای fsck بدون تهیه نسخه پشتیبان ایمن است؟
در حالت کلی، اجرای fsck بدون بکاپ امکانپذیر است، اما باید در نظر داشت که در فرآیند تعمیر، ممکن است دادههای خراب پاک شده یا به پوشهای مانند lost+found منتقل شوند.
پیشنهاد میشود در صورت امکان، پیش از اجرای این دستور از اطلاعات مهم خود نسخه پشتیبان تهیه نمایید.
مراحل اجرای fsck در محیط initramfs
۱. فعالسازی Volume Group مربوط به LVM
در اغلب سیستمهای مبتنی بر LVM مثل سیموتل، پیش از دسترسی به پارتیشنهای منطقی باید Volume Group را فعال کنید.
در محیط initramfs این کار با دستور زیر انجام میشود:
lvm vgchange -ay
پس از اجرای این دستور، مسیر /dev/mapper/test–vg-root/ باید در دسترس قرار گیرد.
۲. اجرای بررسی و تعمیر فایلسیستم
اکنون میتوانید فایلسیستم را بررسی کرده و در صورت وجود خطا، آن را تعمیر کنید:
fsck /dev/mapper/test--vg-root
برای انجام خودکار تعمیرات (پاسخدهی خودکار “yes” به تمامی سوالات):
fsck -y /dev/mapper/test--vg-root
۳. راهاندازی مجدد سیستم
در صورتی که دستور fsck با موفقیت اجرا شد و خطاها برطرف شدند، سیستم را با دستور زیر مجدداً راهاندازی کنید:
reboot
پس از راهاندازی مجدد، سیستم باید وارد محیط عادی لینوکس شود.
نکته:
در صورتی که در هارد با Bad Sector یا Kernel panic مواجه شده باشیم احتمالا این روش کار نخواهد کرد
نکته تکمیلی
اگر پس از اجرای fsck همچنان با خطا مواجه شدید، بررسی موارد زیر نیز پیشنهاد میشود:
- فایل fstab
- وضعیت دیسکها
- تنظیمات بوتلودر (مانند GRUB)