Linux 引导修复 CentOS7 引导过程 MBR 扇区故障修复 GRUB 引导故障修复 遗忘 ROOT 密码

Linux 引导修复
CentOS7 引导过程
MBR 扇区故障修复
GRUB 引导故障修复
遗忘 ROOT 密码

系统引导是一个操作系统运行的开始,若是引导出现问题,系统便无法正常使用,那有没有方法修复呢?答案是有的。


1.开机自检BIOS
2.MBR引导
3.GRUB菜单
4.加载内核kernel与内存文件系统initramfs
5.加载硬件驱动及初始化进程


MBR 扇区故障修复

MBR引导记录位于物理硬盘的第一个扇区(512B),又称为主引导扇区,除了包含系统引导程序的部分数据外,还包含整个硬盘的分区表记录。

备份 MBR 扇区数据

1.准备另一块硬盘用于MBR扇区备份数据

[root@localhost ~]# fdisk /dev/sdb
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

2.挂载/dev/sdb1分区

[root@localhost ~]# mkdir /bak
[root@localhost ~]# mount /dev/sdb1 /bak/
[root@localhost ~]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda2      xfs        20G  3.4G   17G   17% /
devtmpfs       devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs          tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs          tmpfs     1.9G  9.1M  1.9G    1% /run
tmpfs          tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda5      xfs        10G   37M   10G    1% /home
/dev/sda1      xfs       2.0G  174M  1.9G    9% /boot
tmpfs          tmpfs     378M  8.0K  378M    1% /run/user/42
tmpfs          tmpfs     378M     0  378M    0% /run/user/0
/dev/sdb1      xfs        20G   33M   20G    1% /bak

3.备份MBR扇区数据

[root@localhost ~]# ls /bak/
[root@localhost ~]# dd if=/dev/sda of=/bak/sda.mbr.bak bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000289995 秒,1.8 MB/秒
[root@localhost ~]# ls /bak/
sda.mbr.bak

模拟 MBR 扇区故障

1.人为覆盖MBR扇区记录

[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000157851 秒,3.2 MB/秒

2.重启

[root@localhost ~]# init 6

3.无法启动

Linux 引导修复
CentOS7 引导过程
MBR 扇区故障修复
GRUB 引导故障修复
遗忘 ROOT 密码

恢复 MBR 扇区数据

1.使用光盘或U盘启动盘进行操作系统引导

Linux 引导修复
CentOS7 引导过程
MBR 扇区故障修复
GRUB 引导故障修复
遗忘 ROOT 密码

2.进入Troubleshooting疑难解答模式

Linux 引导修复
CentOS7 引导过程
MBR 扇区故障修复
GRUB 引导故障修复
遗忘 ROOT 密码

3.进入Rescue a CentOS system系统急救模式

Linux 引导修复
CentOS7 引导过程
MBR 扇区故障修复
GRUB 引导故障修复
遗忘 ROOT 密码

4.进入shell环境,进行恢复

Linux 引导修复
CentOS7 引导过程
MBR 扇区故障修复
GRUB 引导故障修复
遗忘 ROOT 密码

mkdir /bak
mount /dev/sdb1 /bak
ls /bak
dd if=/bak/sda.mbr.bak of=/dev/sda
reboot

5.恢复成功

Linux 引导修复
CentOS7 引导过程
MBR 扇区故障修复
GRUB 引导故障修复
遗忘 ROOT 密码


GRUB 引导故障修复

GRUB是大多数Linux系统默认的引导程序,可以通过启动菜单的方式选择进入不同的操作系统。若是配置文件丢失,或者关键配置出现错误,就无法完成启动过程。

模拟 GRUB 故障

1.删除配置文件

[root@localhost ~]# cp -p /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
[root@localhost ~]# rm -f /boot/grub2/grub.cfg
[root@localhost ~]# init 6

2.无法启动

Linux 引导修复
CentOS7 引导过程
MBR 扇区故障修复
GRUB 引导故障修复
遗忘 ROOT 密码

修复 GRUB 故障

前面部分和上面一样,同样进入系统急救模式进行修复。

Linux 引导修复
CentOS7 引导过程
MBR 扇区故障修复
GRUB 引导故障修复
遗忘 ROOT 密码

1.加载系统镜像,切换到待修复的Linux系统根环境

chroot /mnt/sysimage/

2.在sdaMBR扇区重新安装grub引导程序

grub2-install /dev/sda

3.重新构建grub菜单配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg

4.退出并重启,等待系统启动

exit
reboot

遗忘 ROOT 密码

当忘记root密码时,将无法在Linux系统上执行管理、维护等任务。又无法通过其他用户修改密码时,同样可以使用急救模式修改root密码。

Linux 引导修复
CentOS7 引导过程
MBR 扇区故障修复
GRUB 引导故障修复
遗忘 ROOT 密码

很简单,操作如下:

chroot /mnt/sysimage/
echo "000000" | passwd --stdin root 或 passwd root
exit
reboot