本文档适用于CentOS 7.X,其他系统未测试。

出现这个问题的原因是grub配置文件错误、损坏或丢失,执行以下步骤修复


1. 罗列所有的磁盘区块:

grub>ls

我的是(hd0),(hd0,msdos1),(hd0,msdos2)


2. 确定boot分区:

ls (hd0,X)/boot/grub

如果存在,则列出该文件夹里的所有文件,不存在则会报错。如果boot为独立分区则使用

ls(hd0,X)/grub2


3. 将boot分区设置为临时root分区:

grub>set root=hd0,msdos1

hd0,msdos1为第二步中确定的boot分区


4. 命令后面的路径可以用tab键补全,xxxx代表你的系统内核版本号。/dev/mapper/centos-root为根分区,如果分区格式不是lvm的,根据你的本机情况填写,如/dev/sda1

grub>linux16 /vmlinuz-xxxx.e17.x86_64  root=/dev/mapper/centos-root


5. 命令后面的路径可以用tab键补全,xxxx代表你的系统内核版本号

grub>lintrad16 /initramfs-xxxx.e17.x86_64.img


6. 启动

grub>boot


7. 进入系统之后使用命令重新生成grub配置文件

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