尝试在外部 NVME 驱动器上重新安装 Ubuntu,但在启动时出现错误 - 警告!uuid 不存在。进入 shell!

尝试在外部 NVME 驱动器上重新安装 Ubuntu,但在启动时出现错误 - 警告!uuid 不存在。进入 shell!

大家好。

(编辑该问题以包含更多详细信息)

我会尽量描述我的问题,但不会把它写得特别长。长话短说:我一直想要一个可以随身携带的外部全功能操作系统,如果需要,只需插入任何地方,就可以随时随地获得所需的一切。经过大量研究,我最终选择了 Ubuntu,在遵循一些极其复杂的指南后,我设法获得了一个带有 Ubuntu 20.04 LTS 的功能性外部 NVME 驱动器,生活很美好。直到我决定将笔记本电脑升级为华硕笔记本电脑,但 Wi-Fi 根本无法检测到。我尝试了很多方法,其中一项建议是升级内核,我这样做了,但没有成功。然后,我着眼于将 Ubuntu 升级到 v 21(非 LTS)。这有效,但破坏了很多东西,而且 Wi-Fi 仍然无法正常工作。我试图寻找解决方案,但不知道该怎么做(我是 Linux 新手,请原谅我)。

然后,我发现您可以在当前安装的基础上重新安装 Ubuntu,并将 Linux 恢复到正常运行状态。我按照说明操作,并按照我第一次在外部驱动器上安装 Linux 时所做的一切操作,但现在,当我尝试启动时,出现了以前从未遇到过的错误(可能是由于 UEFI 启动问题和 grub 设置)。

我已经检查了 fstab,并且那里指示的 UUID 与我的 nvme 匹配,并且与 /、/home 和 boot 分区匹配。

但是,当我启动时,我面临以下错误(XXXXX 是我的 UUID,我故意将其隐藏起来,但它们确实与我的 /etc/fstab 匹配,我已经仔细检查过了)。

放弃等待根设备。警告!UUID:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 不存在。转到 shell!

我在这里很茫然,因为我是 Linux 的新手,但我已经学会了如何深入研究 fstab 并修复 UUID,这是我第一次尝试外部安装时遇到的问题。

由于这阻止我从外部设备启动,我想寻求帮助,弄清楚我还应该做些什么来确保设备正常启动。

我确信还需要做其他事情来解决这个问题,但我第一次对 NVME 进行分区(由于对齐问题)已经非常努力了,以至于我不想重新分区,只想继续使用当前分区设置,而不必再次格式化分区。如果有必要,我很乐意再次重新安装 Ubuntu 21.X,但只要它不需要重新格式化。

不过,我完全不知所措,因为上面消息指示的 UUID 与 fstab 上的完全一样,我甚至搜索了位于 EFI 分区的启动文件夹下的 grub.cfg 文件,那里的 UUID 也一样。我将它们与“磁盘”下显示的内容进行了完美比较,数字完全匹配。

谢谢大家,如果你们能帮助我下一步该做什么,我将非常感激。

编辑:我在 NVME 中创建了一个 EFI/boot 分区,并且我已经按照成员建议的指南进行操作,在安装之前取消标记主驱动器的启动分区并仅留下标记为启动 ESP 的外部 NVME。

EDIT2:我会尝试收集信息来帮助回答以下帖子(我是新手,因此会尝试运行这些工具并将其粘贴到这里):

“请复制并粘贴 Boot-info 摘要报告的 pastebin 链接(不要发布报告),在审核之前不要运行自动修复。让我们查看详细信息,使用 ppa 版本和您的 USB 安装程序(第二个选项)或任何有效的安装,而不是 Boot-Repair ISO(除非 21.10)help.ubuntu.com/community/Boot-Repair & sourceforge.net/p/boot-repair/home/Home Ubuntu 的 Ubquity 安装程序只想安装到第一个驱动器。bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1396379 – oldfred”

EDIT3:针对以上内容: https://ibb.co/PgFJVWW https://ibb.co/nCFmGKL

编辑4(带有启动修复报告结果的pastebin):https://paste.ubuntu.com/p/455Jq5JrKH/

编辑 5:我已将笔记本电脑从等式中移除,并获得了一台英特尔 NUC,NVME 驱动器已完全移除,从头启动并再次执行 Ubuntu 安装,但 /home 分区保持不变。我遵循了以下指南:https://askubuntu.com/a/1324342/1384077。我也遵循了以下步骤:

“• 不要重新启动或拔下目标 USB。• 使用 sudo -H nautilus 打开 Nautilus• 将启动和 EFI 文件夹从 Ubuntu ISO 文件复制到启动,特别是分区 sdx3。• 将 grub.cfg 从分区 sdx4 /boot/grub/ 复制到分区 sdx3 /boot/grub/ 并覆盖 grub.cfg 文件。• 重新安装 GRUB:sudo -i mount /dev/sdd4 /mnt mount /dev/sdd3 /mnt/boot/efi grub-install --boot-directory=/mnt/boot --bootloader-id=ubuntu --target=x86_64-efi --efi-directory=/mnt/boot/efi --removable /dev/sdd reboot”

按照上述操作后,我正常重启了系统,但仍然出现同样的错误。我使用引导修复来尝试识别现在可能出现的问题,因为不再有我无法移除的设备(在我之前使用的笔记本电脑中),现在没有理由将 grub 放在任何其他磁盘上,除了 USB(它只是一个运行 SSD 芯片的外壳)。

(带有启动修复报告结果的 pastebin):https://paste.ubuntu.com/p/mRgThXDzt6/

最后编辑:我尝试了网上能找到的所有方法,按照指南重新安装 Ubuntu、修复 Grub、完全格式化启动分区并重新创建它们,但都不起作用,所以我最终放弃了,在浪费了几天时间进行故障排除并擦除整个驱动器后,我按照网上找到的指南之一重新创建了分区并重新安装了 Linux。它现在可以正常启动,我已经用 2 台不同的机器测试过(安全启动关闭),它可以正常工作。

感谢所有人的帮助,尤其是@oldfred 的帮助,但这对我来说没什么用。

再次感谢大家。

答案1

您已将 grub 两次安装到显示为 sdb 的驱动器上。并且在 NVMe 驱动器中具有 /EFI/ubuntu。只有一个通过重新安装进行了更新。只有其中一个应该可以工作。查看 UEFI 启动菜单中的条目。报告未显示任何 ubuntu 的 UEFI 条目或 UEFI:外部驱动器的标签。此外,外部驱动器在断开连接时会丢失 UEFI 条目。然后,您像实时安装程序一样启动外部驱动器,选择 UEFI:外部驱动器条目,然后必须对其进行更新才能工作。我会将其设置为 fstab 中 grub 更新的默认设置。

一旦进入 BIOS 启动模式,因为您在 gpt 的保护 MBR 和 bios_grub 分区中拥有 grub,并且您拥有带有 /EFI/ubuntu 和 /EFI/Boot 文件夹的 ESP。您必须在启动实时安装程序时从 UEFI 启动菜单中选择这两者。UEFI 中的 Ubuntu 条目来自 NVMe 驱动器上的 ESP。通过 3 个 grub 安装,您有 1/3 的机会选择正确的一个。

您如何启动安装介质、UEFI 或 BIOS 就是它如何安装或修复。因此,您希望始终以相同的启动模式启动。

外部驱动器只能从 /EFI/Bootx64.efi 直接以 UEFI 模式启动,就像启动安装程序一样。UEFI 中的 ubuntu 条目将来自 NVMe 驱动器的 grub。并且 UEFI 应该显示 BIOS 启动条目。

如果总是从 UEFI 中的“ubuntu”条目启动外部驱动器,则该版本将是内部驱动器的 ESP 中的版本。您可以使用 Boot-Repair 的高级模式来选择安装,然后选择驱动器来安装 grub。如果断开外部驱动器,此条目可能会停止工作。然后您需要在外部驱动器上有一个有效的条目。

或者,如果您希望能够从其他系统启动外部驱动器,则需要外部驱动器 ESP 中的当前 grub。您可以再次使用 Boot-Repair。我只是确保不使用 BIOS 模式进行启动,这样 grub 就永远不会被使用。

如果出于某种原因,您有一个旧的 BIOS 系统并且想要从外部启动它,您可以重新安装 grub 的 BIOS 版本 grub-pc 并安装它。只是重新安装或主要更新 grub 只会更新一个版本,然后它们可能会不同步。

否则,请始终以 UEFI 启动模式启动以进行修复或更新。您需要查看 /EFI/ubuntu/grub.cfg、fstab 和 UEFI 启动项的 UUID 和 GUID/partUUID 以及 UEFI 启动项的 partUUID,以了解哪个系统是默认启动以及它是否有正确的条目。Boot-Repair 显示所有这些或:

cat /EFI/ubuntu/grub.cfg
cat /etc/fstab
lsblk -e 7 -o name,fstype,size,fsused,label,partlabel,mountpoint,uuid,partuuid
sudo efibootmgr -v

相关内容