Grub及MBR修复

简介:

1、grub.conf配置文件丢失

    首先说明:在grub命令提示符中所有类型的磁盘(不论是SATA还是SAS的)都被识别成以hd开头的设备(如 hd0),没有sda等等。

    当/boot/grub/grub.conf配置文件丢失后,系统重新启动时就找不到linux启动的菜单了,就会直接进入grub提示符界面,界面如下:

spacer.gifwKiom1fPsoDArGj9AAAc6qAHsms632.png

    这时可使用帮助命令help查看都有哪些命令可以使用。

    

    完整的恢复步骤如下:

wKioL1fPtviC8lvcAAAXml8lmRA425.png

    如果知道/boot目录在哪个磁盘分区可以省略第一步,直接使用root命令指定磁盘分区,如果不知道的话,可以使用find命令进行查找。

wKiom1fPs5ewm8SnAAAFrQ71O1s602.png

    输入find (hd0,0)代表从第一块磁盘的第一个分区,在输入时直接输入find (hd0,0)/vmlinuz,后面使用tab键进行补全,如果能补全,就代表在这个分区能找到内核文件。

    

    再使用root指定磁盘分区;


    然后指定内核并传递参数给内核文件,ro代表以只读方式,root=/dev/sda2中的/dev/sda2是根文件系统所在的分区;(因此装系统时要注意一下根文件系统所在分区的名称,如果是根文件系统在逻辑卷上,就要写逻辑卷分区的名称


    最后指定initrd文件,initrd是一个用内存来模拟磁盘的文件,是一个小型的根文件系统,其包含了  当前系统  的真正根文件系统的 驱动,有了这些驱动linux内核才能去挂载真正的根文件系统。


    kernel后面的内核文件名 和 initrd后面指定的文件都可以使用tab键进行自动补全

    

    前面几步设置好后使用boot命令启动。

    

    启动后,进入/boot/grub目录重新编写grub.conf文件,文件内容大致就是上面操作的几步,内容如下:

wKiom1fPv1KhLqHiAAAMJqBT4sc052.png

    其中default=0代表title如果有多个的话,默认选择第一个title的启动;timeout=3代表启动时在grub选择界面停留3秒,title后面的可以自己随便定义。编辑完保存好,下次启动就不会出现问题了。


    在上面的步骤中,若是kernel的参数 root= 这里指定的根文件系统所在分区的名称不正确的话,是会报错的,报错界面如下所示

wKioL1fPvT_yOaXkAAAWXBph0yc669.png

2、MBR的前446字节丢失(如果是中间64字节丢失,此方法不适用,中间64字节丢失是分区表被破坏)

    MBR总共有512字节,前446字节存放BootLoader程序,接下来的64字节存放分区表信息,最后2字节存放特殊标志。这里主要说明bootloader遭到破坏后如何修复。

    当bootloader遭到破坏后重新启动后的界面如下:

wKiom1fPwiHxmPYOAAASQzLnwZs583.png

    这时就要启动使用光盘紧急救援模式。

    挂载好光盘后,设置启动项从光驱启动,进入安装界面

wKioL1fPzt_xR1EeAAORxhvL0M4716.png

    选择Rescue installed system 

    回车后根据提示选择语言Lanaguage,键盘类型keyboard type,一般默认就行。然后到以下界面。

wKiom1fP0DTBFqtBAAAJ2i_bT8Y221.png

    这一步是否启用网络,如果需要启用,可以选Yes,进入界面进行IP等的配置,这里不启用。

    这里不用启用,选NO。进入下面的界面

wKiom1fP0hmSUPkmAAAn_DsXtj4949.png

    默认Continue即可,接下来几步默认即可,一直到下面这一步。

wKiom1fP0xvB-YeyAAAPuJU0YN0325.png

    这一步是在选择OK后,出现最下面的命令提示符,接下来就要进行操作了

wKioL1fP1ETwowlkAAA0xNBzHqU683.png

    第一步使用chroot /mnt/sysimage 切换到/mnt/sysimage目录所在的根文件系统,根文件系统会被挂载到此目录下,然后使用grub进入命令提示符,同样是使用root (hd0,0)指定磁盘分区,然后使用setup (hd0)直接开始进行恢复MBR,MBR不在任何分区,所有setup后面直接跟(hd0),直接指定磁盘即可。

    恢复成功后,使用quit退出grub命令提示符界面,再使用exit退出/mnt/sysimage目录所在的根文件系统,回到从光盘中加载的根文件系统中,重启系统后即可正常进入系统

wKiom1fP2R2hvhgaAAAEyvVSCOY267.png


3、grub目录丢失


    当/boot/grub目录丢失后,系统也不能进入系统,重启系统后报错如下:

wKioL1fP2mqT37HJAAACMhNXHLc690.png

这时仍然是进入紧急救援模式,具体步骤见上面的MBR丢失。

wKioL1fP43fw_36wAAAnSi9dees467.png

    进入到救援模式后,使用chroot切换到/mnt/sysimage所在根文件系统中,使用grub-install命令重新安装grub目录,grub-install --root-directory=/ /dev/sda2 这个命令中--root-directory= 应该格式boot目录的根目录——也就是根/    后面再指定根文件系统所在的磁盘设备,这里就算根文件系统所在的分区是逻辑卷,也不能使用逻辑卷名称;而是要像上面一样使用原始的设备名称/dev/sda2或/dev/sda1或/dev/sda,总之执行完grub-install命令后要能出现下面的(fd0) /dev/fd0和 (hd0) /dev/sda这样的行才算安装成功。

安装好后就可以看到/boot目录下已经有grub目录了。

    还有最后一步,要到grub目录中手动创建grub.conf文件,文件内容如下:

wKiom1fP-f7zGYxRAAANoNCIVCI335.png

    其中kernel那行如果根文件系统所在的分区是逻辑卷的话,就应该使用逻辑卷的名称,而不能像上面grub-install命令中那样使用/dev/sda2。如果是逻辑卷时应该像下面这样

wKioL1fP-3yC_G9wAAAa6SVhNIU755.png

    参数还使用了quiet selinux=0代表使用静默模式、关闭selinux。

    如果不关闭selinux时,启动时会报错如下

wKiom1fP-lbxkMc9AAAO5_xxo-U885.png



本文转自 f_066 51CTO博客,原文链接:http://blog.51cto.com/ganmu/1850556,如需转载请自行联系原作者

相关文章
|
存储 分布式计算 资源调度
什么是Hadoop及其组件?
【8月更文挑战第31天】
874 1
|
SQL 消息中间件 分布式计算
Hadoop生态圈组件及其作用
Hadoop生态圈组件及其作用
|
Java
Postman调试grpc
Postman调试grpc
483 1
|
存储 定位技术 芯片
为何手机gps定位需要流量,而车载不需要?
为何手机gps定位需要流量,而车载不需要?
435 0
为何手机gps定位需要流量,而车载不需要?
|
Shell 开发工具 git
使用openwrt搭建编译环境,编译一个demo
使用openwrt搭建编译环境,编译一个demo
578 1
|
Windows
【无需格式化硬盘即可C盘扩容以及新建磁盘】
【无需格式化硬盘即可C盘扩容以及新建磁盘】
920 1
【无需格式化硬盘即可C盘扩容以及新建磁盘】
|
自然语言处理 搜索推荐
通义大模型使用指南之通义万相
该文介绍了如何在阿里云的通义大模型平台注册账号,并详细展示了通义万相功能的使用,包括文本生成图像、相似图像生成、图像风格迁移和应用广场(虚拟模特)四个部分。用户可以通过输入文字或选择图片,生成不同风格的创意作品,并能进行点赞、不满意、生成相似图、下载原图和收藏等操作。在应用广场中,用户可以上传图片并替换模特及背景,创建个性化商品展示图。
4860 0
|
Java Linux Apache
设置 Maven 环境变量
配置Maven环境涉及Windows、Linux和Mac。在Windows上,新建系统变量`MAVEN_HOME`指向安装目录,编辑`Path`添加 `%MAVEN_HOME%\bin`。Linux与Mac上,解压Maven后移动到 `/usr/local/`,编辑`/etc/profile`添加`MAVEN_HOME`和`PATH`,然后运行`source /etc/profile`。最后通过`mvn -v`检查安装是否成功。
|
Java 数据安全/隐私保护
JAVA AES加密解密工具类
JAVA AES加密解密工具类
1307 0
|
存储 监控 前端开发
SpringBoot与Loki的那些事
因为网上好多都没有通过Loki的API自己实现对日志监控系统,所以我就下定决心自己出一版关于loki与springboot的博文供大家参考,这个可以说是比较实用,很适合中小型企业。因此我酝酿了挺久了,对于loki的研究也比较久,希望各位读者能有新的收获。
424 0
SpringBoot与Loki的那些事