系统环境:

  • OS:CentOS-8.3.2011-x86_64-minimal
  • Kernal:4.18.0-240.el8.x86_64 #1 SMP Fri Sep 25 19:48:47 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

系统安装说明:

  • 1.采用的最小化安装;
  • 2.安装时没有进行手动分区,而是采用自动分区模式(默认就 2 个分区,一个为 swap ,一个为 root);
  • 3.系统安装完成后,默认的文件系统类型为 lvm ,分区格式为 xfs;
1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# df -lTh
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 354M 0 354M 0% /dev
tmpfs tmpfs 373M 0 373M 0% /dev/shm
tmpfs tmpfs 373M 9.8M 363M 3% /run
tmpfs tmpfs 373M 0 373M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 17G 1.8G 16G 11% /
/dev/sda1 xfs 1014M 177M 838M 18% /boot
tmpfs tmpfs 75M 0 75M 0% /run/user/0
tmpfs tmpfs 75M 0 75M 0% /run/user/1000
1
2
3
4
5
6
[root@localhost ~]# blkid
/dev/mapper/cl-root: UUID="0160a306-be2e-4c6e-83b0-9f0bb95d22bc" BLOCK_SIZE="4096" TYPE="xfs"
/dev/sda2: UUID="Wy5zhS-j38W-i7me-Fzc4-XgOu-c0Fx-eof4d7" TYPE="LVM2_member" PARTUUID="3e24b1c6-02"
/dev/sda1: UUID="cc5d6ffd-cfae-4fbf-9eca-dd68436f9187" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="3e24b1c6-01"
/dev/sr0: BLOCK_SIZE="2048" UUID="2020-11-18-21-40-17-00" LABEL="CentOS-8-3-2011-x86_64-dvd" TYPE="iso9660" PTUUID="6e66cf88" PTTYPE="dos"
/dev/mapper/cl-swap: UUID="d7315862-65a8-47d4-b1a7-f60f8a635297" TYPE="swap"

故障模拟

模拟故障,手动删除 /boot/grub2/grub.cfg 文件:

1
rm -rf /boot/grub2/grub.cfg

然后重启系统。无法进入系统,如下图:
grub|left

解决方法

1.插入安装盘,进入救援模式:

到这里,发现无法挂载 Linux 分区,原因是找不到 Linux 分区。

2.扫描磁盘,确认分区:

2.1.输入命令 lvm vgscan 扫描 LVM 卷:

2.2.接着,输入命令 lvm vgchange -ay 激活 LVM 卷:

2.3.输入命令lvm lvdisplay ,确认LVM卷组和逻辑卷的名称:

3.挂在磁盘分区:

3.1.输入命令 mount /dev/cl/root /mnt 挂载逻辑卷:

接下来就是关键绑定挂在,必不可少,否则会出现

3.2.绑定挂载以下目录:

1
2
3
4
5
mount --bind /run /mnt/run
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /boot /mnt/boot

3.3.以 bash 的方式挂在系统,执行命令 chroot /mnt bash

3.4.以命令的方式挂在分区 mount /dev/sda1

4.最后安装引导 grub2-mkconfig -o /boot/grub2/grub.cfg注意:图片中的截图/boot/grub2/grub.cfg 输成了 /boot/grub2/grub2.cfg, 多输出了数字 2,会导致修复失败。!!!切记,不要输入这个数字!!!。下面的步骤是我重新修复了一遍的成功的截图),如下图:

5.引导安装完成,接着执行 exit 退出 chroot :

6.输入 reboot 命令,重启系统。然后启动加载时选择从本地硬盘启动:

总结:

在网上搜了很多资料,基本都是千篇一律,但都没能解决我的问题。之所以如此,有可能跟我实验环境有区别!不想多说!

参考: