雙系統grub引導時,出現error: file '/boot/vmlinuz-xxx-xxx-xxx' not found的解決方法

晚上本想修改一下grub.cfg文件,去掉多餘的引導項,沒成想出現如題之尷尬局面。。。
一番度娘之後終解決,下面是解決方法:
Note: 在grub下,注意提示按c進入grub命令行模式

首先需要確定你的ubutun安裝到哪個硬盤哪個區;

1.1 可以先使用ls命令,查看所有硬盤分區,如(hd0), (hd1,gpt1)等等。
1.2 然後再使用ls (hd1, gpt8)查看。如果出現unknown filesystem則嘗試其他的;如出現的是你ubutun主文件夾和文件的名字,基本就是它了。

確定之後,按照4步下面進行設置;

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. 去掉的內容可以參考此文去除多餘引導項

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章