多系统引导 | grub 更新后 CentOS 引导错误
先说问题:
在一个电脑装多个系统(Windows 和 Linux 发行版)时,其中一个发行版更新后,默认更新 grub,但是其他发行版可能不认识它自动修改后的设置参数,导致无法启动。
做为一个经常尝试多个发行版的 Linux 脑残粉儿,我就遇到过这种情况。
先上一张我的 OS List:
Manjaro 更新 grub 之后,CentOS7 启动不了了:
错误关键字是:
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 这个关键词
结果:
看到那个错误关键字 '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!