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


1.系统启动过程

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

graph TD A[BIOS启动,硬件自检] --> B[读取MBR扇区,获取内核文件路径] B --> C[通过GRUB代码,获取内核] C --> D[内核加载,调度硬件] D --> E[init进程,系统启动的第一个程序]

1.1 MBR扇区

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

1.2 MBR扇区的备份与还原

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

image

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

1.3 修复MBR

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

image

系统中系统盘为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盘)。

image

进入救援模式
image

回车
image

选择后可获得shell。
image

在shell中输入图中指令即可完成sda的MBR扇区修复。
image

重启后,可正常进入系统

image

1.4 grub故障修复

grub故障主要是由于/boot/grub/grub.conf文件遭到破坏导致,当grub文件遭到破坏的时候,进入系统后会出现以下状况。

通过备份grub.conf文件,在开机时进入救援模式,恢复备份的grub.conf文件即可完成修复。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM