-
系统环境
- 系统版本:CentOS 6.9
- 磁盘:LVM
- 内核:2.6.32
-
模拟误删除: -
重启之后的样子:
-
恢复步骤
-
(1)重启机器,用光盘或USB引导进入救援模式的shell(光盘或USB上的系统尽量与本机硬盘系统版本保持一致)
-
第三项为救援模式
-
由于刚才删除的时候连/etc/fstab一起删除了,救援模式找不到硬盘上的系统
- 进入救援模式的shell
-
要想恢复/boot下的文件,首先要先让救援模式找到硬盘上的系统,所以要先恢复/etc/fstab文件
-
-
(2) 查看硬盘信息,找出/boot分区和根分区
ls /dev/sd* fdisk /dev/sda
-
从上面的图片中可以看到/dev/sda2的ID是8e,也就是LVM,用lvdisplay命令看看lvm的详细信息 lvdisplay #显示lvm的详细信息 vgchange -ay #激活所有lvm
-
-
激活了之后就可以挂载看看这个lv到底是不是根分区了。 mkdir /mnt/root mount /dev/vg0/lv0 /mnt/root
-
(3)找到根分区之后就可以重新写/etc/fstab文件了
blkid #查看块设备信息,确定设备文件的位置 cat << EOF > /mnt/root/etc/fstab >/dev/mapper/vg0-lv0 / ext4 defaults 0 0 >/dev/sda1 /boot ext4 defaults 0 0 >/dev/mapper/vg0-lv0 swap swap defaults 0 0 >EOF #利用多行重定向重写fstab文件
-
确定fstab文件无误后重启电脑重新进入救援模式,让救援模式识别硬盘上的系统!
-
** 重新进入救援模式之后,救援模式已经可以识别本地硬盘系统。**
-
(4)重新进入救援模式的shell
- 切换根到本地硬盘系统的根,然后挂载光盘 chroot /mnt/sysimage mount /dev/cdrom /mnt/
- 重新安装内核,以便生成/boot下vmlinuz-xxx等文件
rpm -ivh /mnt/Packages/kernel-2.6.32-696.el6.x86_64.rpm --force
#一定要加上--force强制安装!!!
-
安装完之后可以看到/boot下已经有文件了,接下来就是修复grub了!
-
(5)修复grub
-
使用grub-install 命令进行修复 grub-install /dev/sda #/sda为/boot所在的磁盘
-
重写gurb.conf文件 cat << EOF > /boot/grub/grub.conf >default=0 >timeout=5 >title CentOS 6 (2.6.32-696.el6.x86_64) > root (hd0,0) > kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=8f8c8a6b-24aa-4b88-9972-2d0ff2829441 rhgb quiet > initrd /initramfs-2.6.32-696.el6.x86_64.img
-
-
修复完grub之后,重启!见证奇迹的时刻~~~~~~