您的位置:首页 > 其它

巧妙恢复 /boot 下的文件

2017-09-08 21:03 197 查看
前言
/boot目录是一个系统启动最重要的目录,系统在上电自检MBR引导之后,系统就要读取/boot目
录下的文件。详细的内容见:http://vinsent.blog.51cto.com/13116656/1963546。总之/boot被破坏
了是很大的问题,今天就带大家一步步恢复/boot目录中的各文件,欢迎您的阅读!!

一、破坏现象
我们都知道/boot/目录是一个用于引导系统开机启动的目录,如果你不小心破坏了该目录。你将的系统将不能启动。CentOS 6会进入都如下界面:


CentOS 7 会进入到如下界面:


说明:上述条件不是可逆的;也就是说,破坏/boot/能出现上述错误提示界面,但出现上述界面不一定是/boot目录损坏,所以要辩证的思维来看待。

二、修复思路
出现了错误,不要害怕,用科学的思维来思考。既然删除了boot,那么我们就来看看/boot/目录下
有什么文件,我们只需要将所有文件还原即可。首先来看看/boot目录中都有那些文件。
[ root@vinsent ~ ]#ls /boot          # 这是centos 7 的boot文件内的内容
config-3.10.0-514.el7.x86_64
efi
grub
grub2     # grub文件
initramfs-0-rescue-6f5368a682ab472398a493f780821598.img
initramfs-3.10.0-514.el7.x86_64.img          # 虚拟根文件
initramfs-3.10.0-514.el7.x86_64kdump.img     # 故障发布文件
initrd-plymouth.img
symvers-3.10.0-514.el7.x86_64.gz
System.map-3.10.0-514.el7.x86_64
vmlinuz-0-rescue-6f5368a682ab472398a493f780821598     # 救援模式内核文件
vmlinuz-3.10.0-514.el7.x86_64     # 系统启动内核
[ root@vinsent ~ ]#
CentOS 6系统中/boot目录内的文件大体与CentOS 7相同,都是有内核文件,虚拟根文件系统,
以及grub文件。如下图:



我们清楚了/boot目录下的文件之后,只需要一一将这些文件恢复即可。

1、CentOS 6 恢复
由于破坏了/boot我们不能进入系统,只能利用光盘模式进入到救援模式。
选择光盘启动:启动读条时,将鼠标点进系统,并按下ESC键;切记只能按一下,否者不会出现以下界面。然后按↑↓方向键进入CD-ROM Drive 光盘启动模式。



选着进入救援模式


之后会让你选着语言以及键盘,这里就不上图;保持默认即可(英语、美式键盘)。
接下来进入选着网络,这里需要注意;一般我们选择不安装网络,如果你要执行远程复制文件等操
作,可配置网络;


默认接下的选项,当进入稀土界面我们选择continue即可


然后进入到shell选择界面。我们选择开启一个shell,以供我们使用,完成系统修复。


进入shell之后,我们就有得到了一个修复我们系统的平台,正式开始修复工作。下面我已命令行模
式的形式为大家展示,由于需要编辑文件,截图不太好说明。见谅!
bash-4.1#
bash-4.1# chroot /mnt/sysimage
sh-4.1# mount /dev/sr0 /mnt
sh-4.1# cd /mnt/isolinux
sh-4.1# cp vmlinuz /boot/        # 复制光盘上的内核文件到/boot/目录下
sh-4.1# mkinitrd initramfs-`uname -r`.img `uname -r`   # 创建虚拟根文件:initramfs-`uname -r`.img
sh-4.1# grub-install /dev/sda          # 恢复grub1、1.5阶段的文件
sh-4.1# vi /boot/grub.conf        # 恢复grub.cfg文件
default=0
timeout=5
hiddenmenu
title Linux
kernel /vmlinuz root=/dev/sda2                # 内核文件位置 其中root=/dev/sda2 必须指定
initrd /initramfs-`uname -r`.img `uname -r`   # 写虚拟根文件系统路径
bash-4.1# sync     # 同步数据至磁盘
bash-4.1# exit
bash-4.1# exit
reboot            # 此处的reboot,即上图中的reboot;比建议手动输入reboot重启。
注意:
上述我们恢复内核文件的方法是重光盘中拷贝过来的;我们也可以使用rpm安装的方式来安装内核文件(rpm -ivh /mnt/Packages/kernel-xxxx --force)。
在恢复grub.conf文件时,kernel行中的root=/deb/sda2必须写,你如果不写root所在的分区,系统将找不到根,也就意味着系统仍然不可用。

2、CentOS 7 恢复
有了CentOS 6 恢复的经验,那么对于CentOS 7的恢复就显得很容易了。步骤和思路都是一样的,
只是在CentOS 7 中发生了一些变化(比如,在CentOS 7中使用grub2,而不在是grub了),有一些细
节需要大家注意。
启动时进入到排错模式:


进入救援模式



选择默认启动


系统为我们提供了一个小的临时的系统,我们使用该系统恢复/boot下相应的文件
首先恢复内核文件,我们这次采用rpm安装的方式实现:



恢复grub2目录内的文件



到此CentOS 7就破坏的/boot目录就得到了恢复。

三、本篇小结
本篇文章通过模拟/boot目录被破坏了的情况,手把手教大家如何一步一步的修复/boot目录,希望
对大家有所帮助。最近时间的确匆忙,可能有些许地方描述的不够清楚,还望见谅。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  恢复 grub boot