我在 HDD 上安装了 ubuntu 20.04,并将其复制到 SSD 上的新分区 (/dev/sdb4),然后安装了 grub。现在,每当我选择 /dev/sdb4 上的 ubuntu(即 SSD 上的 ubuntu)引导选项时,我的系统都会从 HDD ubuntu 而不是 SSD ubuntu 引导。如何解决这个问题?
有关如何将 ubuntu 从 HDD 复制到 SDD 的更多信息,请参阅此内容:-如何将 ubuntu 20.10 从 HDD 转移到 SSD,我已经在 SSD 上安装了 Windows 10
答案1
在 中/boot/efi/EFI/ubuntu/grub.cfg
,有一个文件系统 UUID 引用包含/boot
目录/文件系统的任何分区。 GRUB 使用它来查找真实的/boot/grub/grub.cfg
,其中包含对 Ubuntu 文件系统的进一步基于 UUID 的引用。
当您将 Ubuntu 分区复制到 SSD 时,它还会复制文件系统 UUID。因此,您有两个具有相同 UUID 的文件系统,并且在搜索该 UUID 时,GRUB 碰巧首先查看 HDD。
如果您不再需要 HDD 上的副本,则应更改 HDD 上副本的 UUID,使其不再与 GRUB 所查找的内容匹配。更改文件系统 UUID 的命令特定于每种文件系统类型:看到这个问题适用于多种文件系统类型的适当命令。
或者,您可以更改 SSD 上 Ubuntu 文件系统的 UUID,然后在基于 SSD 的安装上将所有对该 UUID 的引用替换为新的 UUID。您必须至少编辑/boot/efi/EFI/ubuntu/grub.cfg
、/boot/grub/grub.cfg
、 ,/etc/fstab
也可能编辑/etc/initramfs-tools/conf.d/resume
,然后在 SSD 上重新生成 initramfs 文件。这是更多的工作,但是通过在硬盘上保持原始文件不变,如果您犯了一个严重的错误,您将能够再次尝试复制。