Ubuntu 20.0系统grub.cfg被旧版本Ubuntu覆盖后的修复方案咨询
Ubuntu 20.0系统grub.cfg被旧版本Ubuntu覆盖后的修复方案咨询
嗨,别担心,你的思路大方向是对的,不过有几个细节需要调整,我来帮你理清楚具体步骤和注意事项:
第一步:进入救援模式并挂载根文件系统
用Ubuntu救援CD/USB启动系统,选择进入救援模式。按照提示找到你的Ubuntu 20.0根分区(一般是类似/dev/sda1的设备),将它挂载到指定目录(通常是/mnt)。如果你的系统有单独的/boot分区,记得也要将它挂载到/mnt/boot下,确保后续命令能访问到内核文件。第二步:切换到根系统环境
挂载完成后,执行以下命令切换到你的系统根环境,这样后续的GRUB命令才能正确识别系统配置:chroot /mnt第三步:重新生成grub.cfg
你提到的grub-update其实是笔误,正确的命令是update-grub——它本质上就是封装了grub-mkconfig -o /boot/grub/grub.cfg,所以你只需要运行其中一个即可。推荐用update-grub更简便:update-grub这个命令会自动扫描
/boot目录下的vmlinuz*和initrd*文件,生成包含这些内核启动项的新grub.cfg。第四步:判断是否需要执行grub-install
这取决于你的GRUB引导扇区是否被破坏:- 如果只是grub.cfg被覆盖,但系统还能进入GRUB菜单(只是菜单里的启动项不对),那只需要更新grub.cfg就足够了,不用跑
grub-install。 - 如果系统现在完全无法启动(比如提示“grub rescue>”或者找不到引导介质),或者你不确定引导扇区的状态,建议补充执行
grub-install来修复引导扇区。执行时要指定整个磁盘设备(不是分区),比如:
(这里的grub-install /dev/sda/dev/sda是你的系统磁盘,根据实际情况替换,比如/dev/nvme0n1对应NVMe硬盘)
- 如果只是grub.cfg被覆盖,但系统还能进入GRUB菜单(只是菜单里的启动项不对),那只需要更新grub.cfg就足够了,不用跑
完成以上步骤后,先执行exit退出chroot环境,然后重启系统,应该就能正常识别并启动Ubuntu 20.0的内核了。
备注:内容来源于stack exchange,提问作者user2037551
相关产品推荐
相关产品推荐

