در این پست ما نحوه حل خطای بوت “failed to mount /etc/fstab” در linux را شرح خواهیم داد. فایل مورد نظر شامل اطلاعات کامل مربوط به فایل سیستم هایی که میتوانند در سیستم به صورت اتوماتیک و به هنگام boot مانت شوند، میباشد.
این اطلاعات static هستند و توسط برنامه های دیگر روی سیستم مانند mount, umount, dump و fsck خوانده میشوند. این اطلاعات شامل 6 فیلد و مربوط به مشخصات مهم mount یک فایل سیستم میباشد :
اولین فیلد برای مشخص کردن block device خاص یا فایل سیستم ریموتی که باید mount شود مورد استفاده قرار میگیرد. فیلد دوم برای تعریف mount point برای فایل سیستم و فیلد سوم برای مشخص کردن نوع filesystem استفاده میشود.
فیلد چهارم برای تعریف آپشن های مرتبط با مانت filesystem استفاده میشوند و پنجمین فیلد توسط ابزار dump خوانده میشود همچنین آخرین فیلد توسط ابزار fsck و برای تعیین کردن ترتیب filesystem check مورد استفاده قرار میگیرد.
بعد از ویرایش فایل /etc/fstab برای ایجاد یک automount (مانت پارتیشن به صورت اتوماتیک) و ریبوت کردن سیستم، سیستم به مد emergency بوت شده و Error زیر را نمایش میدهد.

من به هنگام error بالا، با یوزر root در سیستم login بودم و کامند زیر را برای بررسی از طریق systemd journal تایپ کردم سپس خطاهای زیر را در صفحه (که با رنگ قرمز مشخص شده اند) مشاهده کردم.
همانطور که شما میبینید error اصلی (مشکل در بخش etc-fstab.mount) منجر به چندین error دیگر (مشکلات dependency مربوط به systemd) شده است همانند مشکل در local-fs.target, rhel-autorelabel-mark.service و غیره

علت خطای “failed to mount /etc/fstab” در لینوکس
error بالا ممکن است از هر کدام از مشکلات زیر در فایل /etc/fstab نشآت بگیرد.
برای رفع این خطا شما میتوانید فایل اورجینال را در صورتی که از آن یک بک اپ گرفته اید استفاده کنید و یا هر تغییری که داده اید را با استفاده از کاراکتر "#" کامنت کنید (و همچنین مطمئن شوید که همه خط های غیر کامنت خط های مربوط به مانت فایل سیستم هستند).
در نتیجه من فایل /etc/fstab را با استفاده از ادیتور vi/vim برای بررسی هرگونه خطایی باز کردم.

متوجه شدم که یک حرف "r" در ابتدای فایل همانطور که در تصویر بالا مشاهده میکنید تایپ کرده بودم. این حرف توسط سیستم به عنوان یک دیوایس خاص (که در حقیقت در فایل سیستم وجود ندارد) شناسایی شده بنابراین منجر به سلسله خطاهای نشان داده شده در بالا شده است.
این مشکل چندین ساعت از وقت من را گرفت قبل از اینکه متوجه مشکل و رفع آن شوم. در نتیجه باید حرف را حذف میکردم به همین دلیل خط اول فایل را ذخیره و از آن خارج شدم. سپس سیستم را reboot کردم که سیستم به خوبی boot شد.
چگونه از این چنین مشکلاتی در آینده جلوگیری کنیم
برای پیشگیری از روبه رو شدن با این چنین مشکلاتی در سیستم تان به نکات زیر دقت کنید.
همیشه از فایل های کانفیگ قبل از ویرایش کردن آنها بک آپ بگیرید تا بهنگام هر error در تنظیمات خود بتوانید فایل پیش فرض/بدون مشکل را برگردانید.
برای مثال :
دوما، فایل های کانفیگ را برای هرگونه error قبل از ذخیره کردن آنها بررسی کنید. اپلیکیشن های خاص ابزارهایی را به منظور بررسی ساختار فایل های کانفیگ قبل از اجرا کردن آن اپلیکیشن، ارائه میدهند. از این ابزارها تا جای ممکن استفاده کنید.
به هر حال اگر شما هر گونه پیغام خطای سیستمی دریافت کردید :
ابتدا از طریق systemd journal و با استفاده از ابزار journalctl برای تشخیص این که دقیقا چه چیزی باعث مشکل شده بررسی های لازم را انجام دهید:
اگر نتوانستید error را به یکی از شیوه های بالا رفع کنید مشکل خود را در همینجا مطرح کنید.
همچنین توصیه میشود مطالعه کنید :
مراحل بوت در لینوکس
دستورات Shutdown, Poweroff, Halt و Reboot در لینوکس
در این پست ما نحوه رفع پیغام خطای بوت “failed to mount /etc/fstab” در لینوکس را توضیح دادیم. یکبار دیگر برای پیشگیری از چنین مشکلاتی (یا هر گونه مشکلات مرتبط با Boot) فراموش نکنید که دستورات ارائه شده در بالا را دنبال کنید. در پایان نظرات ارزشمند خود را درباره این پست با ما به اشتراک بگذارید.
این اطلاعات static هستند و توسط برنامه های دیگر روی سیستم مانند mount, umount, dump و fsck خوانده میشوند. این اطلاعات شامل 6 فیلد و مربوط به مشخصات مهم mount یک فایل سیستم میباشد :
اولین فیلد برای مشخص کردن block device خاص یا فایل سیستم ریموتی که باید mount شود مورد استفاده قرار میگیرد. فیلد دوم برای تعریف mount point برای فایل سیستم و فیلد سوم برای مشخص کردن نوع filesystem استفاده میشود.
فیلد چهارم برای تعریف آپشن های مرتبط با مانت filesystem استفاده میشوند و پنجمین فیلد توسط ابزار dump خوانده میشود همچنین آخرین فیلد توسط ابزار fsck و برای تعیین کردن ترتیب filesystem check مورد استفاده قرار میگیرد.
بعد از ویرایش فایل /etc/fstab برای ایجاد یک automount (مانت پارتیشن به صورت اتوماتیک) و ریبوت کردن سیستم، سیستم به مد emergency بوت شده و Error زیر را نمایش میدهد.
من به هنگام error بالا، با یوزر root در سیستم login بودم و کامند زیر را برای بررسی از طریق systemd journal تایپ کردم سپس خطاهای زیر را در صفحه (که با رنگ قرمز مشخص شده اند) مشاهده کردم.
همانطور که شما میبینید error اصلی (مشکل در بخش etc-fstab.mount) منجر به چندین error دیگر (مشکلات dependency مربوط به systemd) شده است همانند مشکل در local-fs.target, rhel-autorelabel-mark.service و غیره
کد PHP:
# journalctl -xb
علت خطای “failed to mount /etc/fstab” در لینوکس
error بالا ممکن است از هر کدام از مشکلات زیر در فایل /etc/fstab نشآت بگیرد.
- نبودن /etc/fstab
- مشخصات اشتباه از آپشن های mount فایل سیستم
- مشکل در mount point ها
- کاراکتر های غیر قابل تشخیص در فایل
برای رفع این خطا شما میتوانید فایل اورجینال را در صورتی که از آن یک بک اپ گرفته اید استفاده کنید و یا هر تغییری که داده اید را با استفاده از کاراکتر "#" کامنت کنید (و همچنین مطمئن شوید که همه خط های غیر کامنت خط های مربوط به مانت فایل سیستم هستند).
در نتیجه من فایل /etc/fstab را با استفاده از ادیتور vi/vim برای بررسی هرگونه خطایی باز کردم.
کد PHP:
# vi /etc/fstab
متوجه شدم که یک حرف "r" در ابتدای فایل همانطور که در تصویر بالا مشاهده میکنید تایپ کرده بودم. این حرف توسط سیستم به عنوان یک دیوایس خاص (که در حقیقت در فایل سیستم وجود ندارد) شناسایی شده بنابراین منجر به سلسله خطاهای نشان داده شده در بالا شده است.
این مشکل چندین ساعت از وقت من را گرفت قبل از اینکه متوجه مشکل و رفع آن شوم. در نتیجه باید حرف را حذف میکردم به همین دلیل خط اول فایل را ذخیره و از آن خارج شدم. سپس سیستم را reboot کردم که سیستم به خوبی boot شد.
چگونه از این چنین مشکلاتی در آینده جلوگیری کنیم
برای پیشگیری از روبه رو شدن با این چنین مشکلاتی در سیستم تان به نکات زیر دقت کنید.
همیشه از فایل های کانفیگ قبل از ویرایش کردن آنها بک آپ بگیرید تا بهنگام هر error در تنظیمات خود بتوانید فایل پیش فرض/بدون مشکل را برگردانید.
برای مثال :
کد PHP:
# cp /etc/fstab /etc/fstab.orig
به هر حال اگر شما هر گونه پیغام خطای سیستمی دریافت کردید :
ابتدا از طریق systemd journal و با استفاده از ابزار journalctl برای تشخیص این که دقیقا چه چیزی باعث مشکل شده بررسی های لازم را انجام دهید:
کد PHP:
# journal -xb
همچنین توصیه میشود مطالعه کنید :
مراحل بوت در لینوکس
دستورات Shutdown, Poweroff, Halt و Reboot در لینوکس
در این پست ما نحوه رفع پیغام خطای بوت “failed to mount /etc/fstab” در لینوکس را توضیح دادیم. یکبار دیگر برای پیشگیری از چنین مشکلاتی (یا هر گونه مشکلات مرتبط با Boot) فراموش نکنید که دستورات ارائه شده در بالا را دنبال کنید. در پایان نظرات ارزشمند خود را درباره این پست با ما به اشتراک بگذارید.