admin 管理员组文章数量: 887017
对于MBR磁盘来说,硬盘的0柱面、0磁头、1扇区称为主引导扇区。它的大小是512字节,包括三个部分。
- 第一部分为pre-boot区(预启动区),占446字节。它存放的是主引导程序,负责从活动分区中装载并运行主引导程序
- 第二部分是分区表,占64个字节。
- 第三部分是magic number(幻数),就是一种硬盘有效标识,占2个字节,固定值为55AA。
磁盘主引导记录被破坏后,无法使用GRUB来引导Linux系统,这是一种常见的系统故障,解决方法是修复主引导记录。
- 系统:CentOS-7-x86_64-DVD-2009.iso
这里写目录标题
- (一)破坏GRUB环境
- (二)进入Centos救援环境修复系统
- 1.进入救援模式
- (三)修复
- 1.使用 chroot改变根目录
(一)破坏GRUB环境
为了便于实验操作,可以先模拟一下损坏的GURB的环境
- 首先执行以下命令备份MBR
# dd if=/dev/sda of=/root/mbr.bak count=1 bs=512
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000161673 s, 3.2 MB/s
- 然后执行以下命令破坏MBR记录:
# dd if=/dev/zero of=/dev/sda count=1 bs=446
1+0 records in
1+0 records out
446 bytes (446 B) copied, 0.00016014 s, 2.9 MB/s
这样将复制到/dev/zero文件下的内容到/dev/sda,并将块block设为446字节,即将MBR中的前446字节全部变成0,显然破坏引导装载器程序GRUB。重启系统后会出现黑屏
有一个光标在闪烁几秒钟,后进入如下状态:
(二)进入Centos救援环境修复系统
当启动管理程序GRUB损坏后,系统无法启动,实际上是无法启动内核或者无法执行系统初始化。此时就不能依赖GRUB救援模式,而要使用救援环境(rescue enviroment)来修复Linux系统故障。这种方式提供从系统硬盘依赖的来源(U盘、光盘等)引导一个小型的Linux环境的能力,引导成功以后再对硬盘上的错误进行修改和恢复。
1.进入救援模式
可以通过以下方式进入救援模式
- 从Linux的关盘的第1张盘引导系统
- 从boot.ios映像制作的引导关盘引导系统
- 从bootdisk.img映像制作的安装引导盘引导系统
这里以最常见的第一种方式为例进行介绍。
(1)将centos安装光盘放到光驱中,引导系统并修改计算机BIOS设置,以便从光盘引导计算机。
- 因为涉及模拟系统故障,观察故障信息并使用救援环境进行修复。注意不要再生产系统操作,推荐再VMware虚拟机环境完成该系列实验。VMware虚拟机环境下默认开机界面可能太短,不便于按< F2 >或< Esc >键调整启动选项,解决的方法是编辑相应的虚拟机配置文件(.vmx),在末尾加上bios.forceSetupOnce="TRUE"或者bios.bootDelay=“xxx”(单位毫秒)
(2)选择“Troubleshooting”,按回车键。
(3)选择“Rescue a CentOS system”,按回车键。
(4)出现“Press the key to begin installation process”提示界面,按回车键继续(如果没有这样的显示就不用管)
(5)启动安装程序,出现下图所示的界面,提示救援环境试图寻找硬盘中安装的 Linux系统,并将它挂载到/mnt/sysimage目录,需要选择下一步如何处理。
- 若要修改硬盘中的任一配置文件,选择1(Continue);
若不需要修改任何配置文件,需读取硬盘的 Linux环境,选择2(Read-Only mount);
若手动挂载文件系统,选择3(Skip shell) 直接跳过寻找并挂载硬盘的步骤;
选择4(Quit)将退出当前环境并重启系统。
(6)这里输入1并按回车键,成功将硬盘中的Linux挂载到/mnt/sysimage目录。
(7)按回车键提供一个Shell供管理员使用。
CentOS7的救援环境提供很多管理工具,便于修复系统的严重错误。这些管理工具以磁盘与文件系统管理工具为主,还包括systemd工具、网络配置工具、Shell 命令、vi编辑器进程管理工具、rpm软件安装工具等。成功挂载硬盘的Linux系统会自动加入硬盘中相关的目录,便于直接执行硬盘中的Linux各种工具程序与命令。
(三)修复
1.使用 chroot改变根目录
进入救援环境后,正在运行的系统来自光盘载体。当前环境下一切都是由引导光盘提供的,根分区就是光盘里面的/,而硬盘上的分区全部被挂载到/mnt/sysimage/目录。有些管理工具(最典型的是重新安装GRUB2的grub2-install)必须在硬盘环境中执行,这就需要使用chroot修改救援环境的根目录。
- chroot的含义是“change to root”,“root”代表的是根目录。chroot的作用是改变程序运行时所引用的根目录位置,即将某个特定目录作为程序的虚拟根目录。可以执行以下命令来进入硬盘所在的系统:
chroot /mnt/sysimage
完成系统修复之后,执行exit命令退出chroot环境。需要注意的是,在chroot环境中,读不到光盘中的文件。
# 改变根目录环境
chroot /mnt/sysimage
# 将GRUB信息写入磁盘主引导记录中
grub2-install /dev/sda
执行exit退出chroot环境,再执行一次exit命令退出救援环境并重启系统。
版权声明:本文标题:【Linux】进入救援环境并修复损坏的主引导记录(MBR)实例 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1727355648h1107221.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论