1. 程式人生 > >Linux 排錯 誤刪 /etc/fstab 和 /boot怎樣恢復

Linux 排錯 誤刪 /etc/fstab 和 /boot怎樣恢復

成功 fdisk 啟動 packages 分區信息 tca x86_64 vim oot

實驗:在分區情況下,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怎樣恢復