Linux-系统启动与MBR扇区修复

  • A+
所属分类:linux技术
摘要

Linux系统启动过程分为五步。MBR扇区位于磁盘的第一扇区,一个扇区512字节。系统启动时候会最先读取MBR扇区,获取系统启动必要文件路径。MBR扇区中包含三个部分,446字节的引导代码(grud),64字节的分区表(4个主分区信息)和2字节结束标志。MBR分区表的损坏会导致系统无法正常启动,因此需要备份MBR扇区,防止由于MBR扇区的损坏导致系统的启动异常。

1.系统启动过程

Linux系统启动过程分为五步。

Linux-系统启动与MBR扇区修复

1.1 MBR扇区

MBR扇区位于磁盘的第一扇区,一个扇区512字节。系统启动时候会最先读取MBR扇区,获取系统启动必要文件路径。MBR扇区中包含三个部分,446字节的引导代码(grud),64字节的分区表(4个主分区信息)和2字节结束标志。MBR分区表的损坏会导致系统无法正常启动,因此需要备份MBR扇区,防止由于MBR扇区的损坏导致系统的启动异常。

1.2 MBR扇区的备份与还原

系统启动盘的MBR扇区修复思路如下:

Linux-系统启动与MBR扇区修复

由于MBR扇区中包含着主分区表信息,所以当硬盘主分区变化时,MBR扇区的数据也会发生变化,所以当分区过后应当及时备份MBR分区表。防止修复后导致分区表信息错误,后导致数据丢失。

1.3 修复MBR

使用lsblk查看硬盘分区情况。

Linux-系统启动与MBR扇区修复

系统中系统盘为sda,数据盘为sdb挂载在目录/data下。挂载有光驱sr0,其中有centos的系统镜像。

1.3.1 dd备份MBR信息

由于sda是系统启动盘,所以其mbr扇区数据应当备份至其他盘中。因为当MBR扇区损坏时,读取自身磁盘中的数据较为困难

[root@localhost ~]# dd if=/dev/sda  of=/data/abc.bak bs=512 count=1 ## 将sda的第一个512字节块(MBR扇区数据)复制到abc.bak中 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.000478688 s, 1.1 MB/s 

将/dev/zreo中的数据拷贝至sda的MBR扇区中,以达到模拟破坏MBR扇区的效果。

[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1

重启系统。

1.3.2 光驱启动修复

当系统启动盘的MBR扇区破坏读取失败时,当光驱中有系统文件时时会自动进行光驱启动(也可使用u盘)。

Linux-系统启动与MBR扇区修复

进入救援模式
Linux-系统启动与MBR扇区修复

回车
Linux-系统启动与MBR扇区修复

选择后可获得shell。
Linux-系统启动与MBR扇区修复

在shell中输入图中指令即可完成sda的MBR扇区修复。
Linux-系统启动与MBR扇区修复

重启后,可正常进入系统

Linux-系统启动与MBR扇区修复

1.4 gurd引导代码修复

gurd引导代码由于处于MBR扇区当中,所以只要备份了MBR引导扇区,即可以同样的方式修复Gurd引导代码。