多系统引导 | grub 更新后 CentOS 引导错误

先说问题:

在一个电脑装多个系统(Windows 和 Linux 发行版)时,其中一个发行版更新后,默认更新 grub,但是其他发行版可能不认识它自动修改后的设置参数,导致无法启动。

做为一个经常尝试多个发行版的 Linux 脑残粉儿,我就遇到过这种情况。

先上一张我的 OS List:

OS List

Manjaro 更新 grub 之后,CentOS7 启动不了了:

CenotOS boot Error 1

CenotOS boot Error 2

错误关键字是:

error: invalid file name '16'

明确问题

CentOS 不能启动;错误关键字:centos, 16

如何解决

  • 猜测是 grub 更新引起的
  • 进入 Manjaro 的系统:
sudo fdisk -l   # 查看 CentOS 的根分区: 在 `/dev/sdb8`
sudo blkid
# output:
#
# ...
# dev/sdb8: LABEL="OS_Cent" UUID="e684cb20-a15b-4c9f-8147-ddc391bad275" TYPE="ext4" PARTUUID="a645d9b4-08"
# ...
# 可知 `/dev/sdb8` 的 UUID 为:e684cb20-a15b-4c9f-8147-ddc391bad275
sudo cp -p /etc/boot/grub/grub.cfg /ec/boot/grub/grub.cfg.old # 备份,劝大家养成好习惯,你们以后大概率会感谢我的。套路一下:别问我怎么知道的,说起来都是泪

sudo vim /etc/boot/grub/grub.cfg 
# 当你试图修改这个文件的时候,你会收到如下的警告:

####################################
# DO NOT EDIT THIS FILE
####################################

# 特此声明,你得知道自己在干什么。
# 反正我不管了:
# `/centos` 搜索 centos 这个关键词

结果:


CentOS 错误关键字

看到那个错误关键字 '16' 了吗?
还有它的 UUID:

linux /boot/vmlinuz-3.10.0-1160.11.1.el7.x86_64 root=UUID=e684cb20-a15b-4c9f-8147-ddc391bad275 ro rhgb quiet LANG=zh_CN.UTF-8

我把它(16)删除了。别处哪儿也没有动。

再启动,OK!

你可能感兴趣的:(多系统引导 | grub 更新后 CentOS 引导错误)