Linux 排錯 誤刪 /etc/fstab 和 /boot怎樣恢復
實驗:在分區情況下,rm -rf /boot和/etc/fstab,恢復
首先我們查看一下/etc/fstab 裏面放的是什麽東西,從下圖可以看出裏面存放的是分區的掛載情況,刪除分區將不能自動掛載
接下來查看/boot下存放的是Linux的核心文件/boot/vmlinuz-VERSION-release,和引導加載程序grub,輔助內核加載硬件驅動的偽根系統/boot/initramfs-VERSION-release.img,缺少這幾項將導致Linux無法開機
好了,我要開始刪了
rm -rf /boot /etc/fstab ;reboot
這時可以看到開不了機了出現錯誤代碼 Error15 要記住這個現象,以後遇到相同問題就知道原因了
修復過程分為兩步
修復/etc/fstab
1 進救援模式,過程就不再累述了,用df 查看分區情況發現分區無法掛載到/mnt/sysimage,lsblk命令也不能用了
恩,還好fdisk -l還能用 ,但是我們沒辦法知道分區的掛載情況,不知道哪個分區掛載在/下,哪個掛載的/app,但是我們記得每個分區下文件的特點,只是現在沒有掛載沒辦法查看,所以我們可以嘗試掛載,在下面的分區列表中/dev/sda1 後面有個*,所有它是開機啟動的,應該掛載在/boot下,/dev/sda5是swap分區掛載在/swap下,但是哪個是 / 無法判斷
2 我們創建一個臨時掛載點
mkdir /mnt/tmp
3 分別掛載/dev/sda{1,2...} /mnt/tmp
4 查看分區下的文件ls /mnt/tmp,找出符合 / 目錄下文件特點的分區掛載到 / 目錄下
6 創建分區信息表 vim /etc/fstab
vim /mnt/tmp/etc/fstab
/dev/sda1 /boot ext4 defaults 0 0
/dev/sda2 / ext4 defaults 0 0
/dev/sda3 /app ext4 defaults 0 0
/dev/sda5 swap swap defaults 0 0
exit;exit
目前為止/etc/fstab 已經修復完成,接下來修復/boot我們重啟一下發現仍然不能啟動,錯誤信息變成了如下所示,只有一個光標
修復/boot
方法一:
1 重新進入救援模式,用df查看,分區已經自動掛載掛載到/mnt/sysimages成功
2 掛載光盤,安裝內核
mkdir /mnt/cdrom
mount /mnt/cdrom
rpm -ivh /mnt/cdrom/Packages/kernel.xxx.rpm --root=/mnt/sysimages --force
3 切根,修復grub
chroot /mnt/sysimage
grub-install --root-directory=/mnt/sysimage /dev/sda
4 編寫grub.conf
vim /boot/grub/grub.conf
default=0
timeout=5
title linux
kernel /vmlinuz-2.6.32-696.el6.x86_64 root=UUID=6da11b60-dd80-460a-a00f-beb8b3373b5c
initrd /initramfs-2.6.32-696.el6.x86_64.img
exit;exit
方法二:
1 進救援模式
2 切根 :chroot /mnt/sysimage
3 修復/boot/initramfs: mkinitrd /boot/ininramfs-`uname -r` `uname -r`
4 掛載光盤: mount /dev/sr0 /mnt
5 復制光盤內核到/boot: cp /mnt/isolinux/vmlinuz-2.6.32-696.el6.x86_64 /boot
6 修復grub: grub-install --root-directory=/mnt/sysimage /dev/sda
7 編寫/boot/grub/grup.conf
vim /boot/grub/grub.conf
default=0
timeout=5
title linux
kernel /vmlinuz-2.6.32-696.el6.x86_64 root=UUID=6da11b60-dd80-460a-a00f-beb8b3373b5c
initrd /initramfs-`uname -r`.img
轉自https://blog.csdn.net/jieranjieran/article/details/78119132
Linux 排錯 誤刪 /etc/fstab 和 /boot怎樣恢復