我正在尝试从 USB 驱动器修复 grub。我不确定问题发生的原因。我正在运行 Ubuntu 20.04 并正常重启,在重启时,我得到了 grub-rescue 屏幕。我没有安装 Windows,只有 Ubuntu。我目前正在使用 usb 来修复它。我运行了 Boot-repair,但出现以下错误
Error detected in grub_mkconfig
重启后,我被带到 grub 屏幕。我尝试了这些解决方案,但没有任何效果。
- https://unix.stackexchange.com/questions/52726/after-bios-splash-will-not-boot-asked-to-select-os-but-cant/52790#52790
- https://unix.stackexchange.com/questions/96977/grub-probe-error-failed-to-get-canonical-path-of-cow,
- 无法获取 /cow 的规范路径
- 在已挂载的文件系统上安装 grub,
我运行以下命令:
sudo mount /dev/sda1 /mnt
sudo grub-install --root-directory=/mnt /dev/sda
我收到以下错误:
grub-probe: error: failed to get canonical path of /cow.
即使在跑步时
sudo grub-mkconfig > /boot/grub/grub.cfg
或者
update-grub
在 chroot 中,我遇到了同样的错误。有人可以解释这个错误并解释如何解决它吗?
这是运行 sudo fdisk /dev/sda 命令的结果
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1901873141 1901871094 906.9G 83 Linux
/dev/sda2 1901875198 1953523711 51648514 24.6G 5 Extended
/dev/sda5 1901875200 1937033215 35158016 16.8G 82 Linux swap / Solaris
/dev/sda6 1937035264 1953523711 16488448 7.9G 83 Linux
编辑:Pastebin 链接到 Bootinfo 摘要报告:https://paste.ubuntu.com/p/sT23JKdBr8/ 执行启动修复后的 Pastebin 链接:https://paste.ubuntu.com/p/nRf4Q29pfv/
答案1
老实说,我认为最好的办法是重新安装 Ubuntu 20.04。你知道是否可以备份系统吗?尝试运行sudo rsync -a --info=progress2 --exclude="lost+found" --exclude=".cache" /home /path/to/disk/to/save/home/to
这应该会备份 /home 目录。请确保您有另一个外部驱动器。
要备份,重新安装 Ubuntu 后,运行sudo rsync -a --info=progress2 --exclude="lost+found" /path/to/disk/to/save/home/to /home/
有关详细信息,请参阅For more information, see这AskUbuntu 上的一个帖子。这似乎是一个非常相似的问题,并且可以有更好的解决方案。
答案2
当我需要进行简单的 grub 修复(但又不知道如何修复 grub)时,我只需进行额外的安装。我会为新分区腾出一些空间(或使用不需要的分区)并在那里安装一个新的(小型/最小)Linux 实例。我会确保在旧引导加载程序上安装新引导加载程序。然后让安装程序找到我的旧安装并将其添加到菜单中。然后,两个安装都可以在重新启动时访问。基本上,我让安装程序修复了问题。
编辑:使用附加命令进行测试和更新。
如果您想删除新安装,现在可以登录旧操作系统并运行sudo grub-install /dev/wherever-your-bootloader-is
。为了获得温暖的感觉,我进入了 /etc/default/grub 并对“GRUB_TIMEOUT”进行了细微更改(我将其设置为 7 秒。我将其更改为 13 秒以验证我是否走在正确的轨道上)...然后sudo update-grub
。现在重新启动将我带到 grub 菜单,超时时间为 13 秒,所以我知道我现在可以使用旧安装配置的 grub。重新登录旧系统,现在您可以删除新操作系统分区并再次运行 update-grub...这会将您的 grub 菜单恢复为原始安装...
....对于您的具体情况,我会小心一点。您的布局看起来很奇怪(对我个人而言)...您有一个带有引导标签的大型 906G 分区,然后是一个带有大量交换的扩展分区,然后是里面的 7.9 GB 分区。我不知道您的操作系统安装在哪里,所以如果不看df -h
和知道您在这些分区上有什么,我会犹豫是否要告诉您安装在哪里。您只需要确保您没有覆盖现有操作系统或任何要保留的数据。您需要缩小其中一个分区并使用新空间创建一个新分区...您也可以插入 USB 驱动器或 SD 卡并在那里安装小型操作系统,同时确保您将引导加载程序位置指定在图片中当前名为 /dev/sda 的驱动器上。