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扇区修复思路如下:

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 grub故障修复

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

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

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

Original: https://www.cnblogs.com/Canyun-blogs/p/15988894.html
Author: 残-云
Title: Linux-系统启动与MBR扇区修复

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524016/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球