故障描述
由于误操作,导致系统崩溃,重启后系统显示如下错误
排查思路
这是GRUB boot loader的命令提示。可能是引导出错,需要修复
解决方案
修复grub引导项
操作步骤
一、通过ls定位grub.cfg并临时进入Ubuntu系统
输入ls,此时会列出硬盘分区
接着对每个分区定位grub.cfg
ls (hd0,gpt1)/boot/grub
ls (hd0,gpt2)/boot/grub
ls (hd0,gpt3)/boot/grub
如果/boot单独分区,则用:
ls (hd0,gptX)/grub
这里需要一个一个分区的测试,如果出现unknow file 表示这个不是,换下一个,直到出现列出来几百个文件,很多文件的扩展名是.mod和.lst和.img,还有一个文件是grub.cfg。假设找到(hd0,gpt5)时,显示了文件夹中的文件,则表示Linux安装在这个分区。
如果找到了正确的grub目录,则设法临时性将grub的两部分关联起来,方法如下
set root=(hd0,gpt5)
set prefix=(hd0,gpt5)/boot/grub
insmod normal
normal
接着可以正常进入Ubuntu系统,在此基础上进行下一步修复。
二、查看Ubuntu系统启动文件所在分区的设备号
进入Ubuntu系统后,首先检查启动分区的设备号,输入
sudo fdisk -l
记下Ubuntu系统的设备号(假定为/dev/nvme0n1p7),执行修复程序
三、grub安装该分区并更新
sudo grub-install /dev/nvme0n1p7
sudo update-grub
四、重启电脑
修复完成后重启即可
总结:所以本质上,这个问题的原因是系统无法自动定位启动文件