故障详情:/etc/fstab和/sbin/init以及/boot目录(系统分区使用逻辑卷)
首先手动删除/etc/fstab和/sbin/init文件以及/boot目录下所有文件。
恢复思路:
1、由于/etc/fstab文件丢失会导致无法自动挂载分区,所以需要手动挂载,但是,由于使用了逻辑卷所以在挂载之前还要先加载逻辑卷。
2、挂载逻辑卷之后先手动修复/etc/fstab文件中的内容。并重启
3、/sbin/init在Centos7中为/lib/systemd/systemd文件的软链接,可以根据情况重建软链接或修复systemd文件本身
4、恢复内核文件以及initramfsxxx.img文件
5、重建/boot目录下文件
6、重建/boot/grub2/grub2.cfg
7、重启测试
恢复过程。
以下操作全部都在救援模式
1./etc/fstab文件损坏进入救援模式的故障信息
先使用lvscan查看逻辑卷信息然后使用vgchange -ay启用逻辑卷,然后使用mount 挂载根分区如下:
2.手动创建fstab文件。请确保目录正确,参照以下内容:
其中
第一个字段为需要挂载的分区的设备路径。通常lv设备的路径在/dev/mapper下,可以通过文件名判断是哪个分区,比如通常centos-root为根分区设备文件(是个软链接)
第二个字段为挂载点
第三个字段为文件系统类型,后面的不用变动即可。各字段可以使用空格或者tab分割。
文件创建完成之后重启继续进入救援模式,如果在进入之后看到以下内容则表示fstab文件没有问题
3.如果在centos7中只是/sbin/init文件损坏,只需要执行ln /mnt/sysimage/lib/systemd/systemd /mnt/sysimage/sbin/init
重新建立软链接即可,如果是Centos6或者Centos7中的systemd文件损坏可以通过安装upstart-xxx.rpm或者systemd-xxx.rpm包进行修复,安装之前需要先挂载光盘,注意关盘路径,安装命令如下:
rpm -ivh /mnt/cdrom/Packages/upstart-xxx.rpm --root=/mnt/sysimage/ --force
或者rpm -ivh /mnt/cdrom/Packages/systemd-xxx.rpm --root=/mnt/sysimage/ --force
4.内核文件和initramfs-xxx.img可以通过安装kernel包重建rpm -ivh /mnt/cdrom/Packages/kernel-xxx.rpm --root=/mnt/sysimage/ --force
注意以上操作全部都没有使用chroot进行切根操作。
5./boot目录下的文件大多数都可以通过一条命令解决除了grub.cfg,在Centos6中更可以手写该文件,不过7中提供了对应的命令可以直接生成grub.cfg文件内容。
首先使用chroot /mnt/sysimage进行切根
然后使用grub2-install /dev/sda安装grub2
使用grub2-mkconfig > /boot/grub2/grub.cfg生成grub.cfg
重启,看看成果吧
原文地址:http://blog.51cto.com/13672361/2115730