Linux系统启动过程分为五步。
MBR扇区位于磁盘的第一扇区,一个扇区512字节。系统启动时候会最先读取MBR扇区,获取系统启动必要文件路径。MBR扇区中包含三个部分,446字节的引导代码(grud),64字节的分区表(4个主分区信息)和2字节结束标志。MBR分区表的损坏会导致系统无法正常启动,因此需要备份MBR扇区,防止由于MBR扇区的损坏导致系统的启动异常。
系统启动盘的MBR扇区修复思路如下:
由于MBR扇区中包含着主分区表信息,所以当硬盘主分区变化时,MBR扇区的数据也会发生变化,所以当分区过后应当及时备份MBR分区表。防止修复后导致分区表信息错误,后导致数据丢失。
使用lsblk查看硬盘分区情况。
系统中系统盘为sda,数据盘为sdb挂载在目录/data下。挂载有光驱sr0,其中有centos的系统镜像。
由于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
重启系统。
当系统启动盘的MBR扇区破坏读取失败时,当光驱中有系统文件时时会自动进行光驱启动(也可使用u盘)。
进入救援模式
回车
选择后可获得shell。
在shell中输入图中指令即可完成sda的MBR扇区修复。
重启后,可正常进入系统
gurd引导代码由于处于MBR扇区当中,所以只要备份了MBR引导扇区,即可以同样的方式修复Gurd引导代码。