در صورت حذف تصادفی(و یا عمدی!) فایلهای موجود در مسیر boot/، سیستم عامل برای استارت مجدد به مشکل برخواهد خورد چرا که این دایرکتوری حاوی فایلهایی مربوط به bootloader و همینطور kernel لینوکس است که سیستم برای boot شدن به آنها نیاز دارد.
بازسازی این فایلها از طریق rescue mode قابل انجام است که در این متن قصد داریم نحوه انجام آن را توضیح دهیم.
برای پیش بردن این سناریو، در قدم اول، محتویات boot/ را حذف می کنیم:
با اجرای این دستور، سیستم عامل می تواند به کارش ادامه دهد ولی با اولین reboot امکان استارت را نخواهد داشت و خط فرمان grub rescue را نمایش خواهد داد:
در ادامه با کمک فایل ISO که سیستم عامل را از طریق آن نصب کرده ایم، فایلهای مربوط به bootloader و kernel را بازسازی می کنیم.
بعد از mount کردن ISO و استارت مجدد، گزینه Troubleshooting را انتخاب می کنیم:
در گام بعدی Rescue a Oracle Linux system را انتخاب می کنیم.
در این مرحله عدد 1را وارد می کنیم تا file system به صورت خودکار شناسایی و mount شود.
با استفاده از دستور chroot مسیر root را به mnt/sysroot/ تغییر داده و پس از آن با کمک دستور lsblk مشخص خواهیم کرد که boot/ به کدام دیسک mount شده است:
همانطور که می بینید، boot/ به dev/sda1/ء mount شده و اطلاعاتی در آن موجود نیست.
در قدم بعدی برای ایجاد فایلهای بوت لودر grub2، دستور grub2-install را اجرا کرده و فایل boot/grub2/grub.cfg/ را هم با اجرای دستور grub2-mkconfig ایجاد می کنیم:
با اجرای این دو دستور، صرفا دایرکتوری grub2 در مسیر boot/ ایجاد خواهد شد و خبری از vmlinuz و initrd در این مسیر نیست:
برای ساخت vmlinuz و Initrd، می توانیم بسته kernel-core را reinstall کنیم:
با اجرای این دستور، vmlinuz و initrd در مسیر boot/ ایجاد می شوند:
با خارج شدن از حالتRescue خواهیم که کرنل بدرستی نصب شده است:
سیستم عامل بدون خطا استارت شده است: