-
实验环境
Centos7.4 root用户执行执行rm -f /boot/* ; reboot
这里可以看到,系统重启报错,vmlinuz-3.10.0-693.e17.x86_64 文件找不到,而这个文件是系统内核装载需要调用的文件;
而这个文件其实是在装系统之前就存在的,只是装好系统后,从光盘内复制到/boot目录下的,所以我们只需要进入救援模式,把这个文件从挂载光盘目录下,solinux/* 中将此文件再拷贝一份出来就行。
-
vmlinuz-3.10.0-693.e17.x86_64 恢复步骤
- 将系统BIOS设置成优先光盘引导启动,重启系统,进入救援系统,进入shell界面;
2.切记!此处的根目录是救援系统的根分区,并非真正系统的根目录,故障系统挂载在了/mnt/sysimage/下,操作时不要忘了!
(1 df查看光盘挂载目录.
(2 进入光盘目录下的isolinx子目录内,执行 cp vmlinuz /mnt/sysimage/boot/vmlinuz-`uname -r`将vmliuz 复制至/mnt/sysimage/boot/ 下
(3 进入/mnt/sysimage/boot/下 确认文件已经存在,执行sync ;reboot系统 (此处执行sync 的意义是怕部分复制文件任然在缓冲buffer 中,没写入磁盘,执行sync 让缓冲中的数据立即写入磁盘)
这里你会发现,系统依然无法启动
那是因为缺少另外一个 关于此内核文件的 辅助伪根系统,之所以称之为伪根系统,应为他虚拟了一个文件系统,存放了根文件系统的驱动模块,内核只有调用这些驱动文件,才能找到根将系统挂载上去,从而开启第一个进程。所以这个文件/boot/initramfs-3.10.0-693.el7.x86_64.img 是在装系统时,根据根文件系统属性,现生成的,所以无法从别处移植过来,但是却有专门的工具生成;
-
/boot/initramfs-3.10.0-693.el7.x86_64.img 恢复步骤
1.进入救援系统的步骤跟vmlinuz-3.10.0-693.e17.x86_64 是一样的;
2.进入到/mnt/sysimage/boot/ 目录下,执行mkinitrd /boot/initramfs-`uname -r`.img `uname -r`
但是要进行根切换,这一点很关键
因为mkinitrd 是依赖/usr/share/drocut/drocut-functions 的,如果根目录不对,找不到对应文件,会导致无法执行mkinitrd
3.执行,这里时间可能会久一点要耐心等待一下。
4.确认文件生成后,按exit 推出救援系统重启系统。
5.又可以愉快的浪了!
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/97728