晚上本想修改一下grub.cfg文件,去掉多余的引导项,没成想出现如题之尴尬局面。。。
一番度娘之后终解决,下面是解决方法:
Note: 在grub下,注意提示按c进入grub命令行模式
1.1 可以先使用ls命令,查看所有硬盘分区,如(hd0), (hd1,gpt1)等等。
1.2 然后再使用ls (hd1, gpt8)查看。如果出现unknown filesystem则尝试其他的;如出现的是你ubutun主文件夹和文件的名字,基本就是它了。
set root=(hd1,gpt8)
set prefix=(hd1,gpt8)/boot/grub
linux /boot/vmlinuz-xxx-xxx root=/dev/nvme0n1p8
上面这一步,要说两点:
(1)xxx-xxx是可以tab补全的。如果双tab后没有,有可能你第一步分区都没找对。
(2)/dev/nvme0n1p8这个分区,由于是在固态盘里,所以映射成nvme0n1p8了。猜测这里的8和第一步的gpt8中的8应该是一致的。但不能写成/dev/sda8。
initrd /boot/initrd.img
boot
boot之后应该就可以重新进入ubutun了。重新进入后,要做的就是更新grub配置。很简单,只需要下面一句:
sudo update-grub
该事件原因分析:由于/boot/下的vmlinuz文件丢失(原因暂不详),但grup.cfg还是原先版本的vmlinuz,所以启动找不到,kernel起不来。
顺提一句,去掉grub多余引导项要修改的文件就是/boot/grub/grub.cfg. 去掉的内容可以参考此文去除多余引导项。