安装新 SSD 后更改启动驱动器

安装新 SSD 后更改启动驱动器

为了升级我的台式电脑(一台有九年历史的 ACER Predator G3620,有六个 SATA 端口,一个 SATA III,另外五个 SATA II),我决定安装一个 SSD 来替换原来的机械硬盘。在安装 SSD 之前,我的双启动设置是

一个小型 SSD 连接到 SATA III 端口,其中包含一个 Windows 10 NTFS 分区(位于 /dev/sda3)和一个用于我的 Ubuntu 20.04 根目录的 ext4 分区(位于 /dev/sda5),以及

一个 2TB 的机械驱动器,其中包含其他分区:/home 的 ext4 分区、/dev/sdb3 上的分区,以及 Linux 交换分区。

我不使用 EFI,而是保留 BIOS 设置,就像我购买 PC 时一样使用旧设置。我有启动优先级顺序|第一启动设备 [硬盘...]。

我使用 Clonezilla 备份了包含 /home 的分区,然后移除了机械驱动器并将其替换为 2TB SSD。我交换了 SATA 端口,以便将新 SSD 连接到 SATA III 端口,将旧 SSD 连接到 SATA II 端口。从 20.04 安装 USB 闪存驱动器启动,我使用 gparted 在新驱动器上创建了三个分区,由于端口切换,现在为 /dev/sda、/sda1 作为 ext4,略大于我原来的 /sda5(现在是 /sdb5)、/sda2,也是 ext4,这是除最后 20GB 之外的所有磁盘,最后 20GB 被格式化为 /sda3,一个 Linux 交换分区。然后我将 /home 分区恢复到 /sda3。此时 /sda3 具有与我的旧 /sdb3 相同的 UUID,我将交换分区的 UUID 更改为与旧交换分区的 UUID 匹配。

关机并移除闪存驱动器后,我启动了电源,一切正常,df 报告的变化是 / 安装在 /dev/sdb5 上,/home 安装在 /dev/sda2 上。启动时,我还可以在 GRUB2 菜单中选中我的 Windows 10 安装,并且它可以正确启动。

我想再做一次更改,将 Ubuntu 20.04 完全放在新驱动器上,让 Windows 10 拥有整个小型 SSD,新驱动器成为启动盘。使用安装闪存驱动器上的 gparted,我将 /dev/sdb5(其中挂载了 /)复制到 /dev/sda1,并更改了 /dev/sda1 的 UUID,使其与原始 /dev/sdb5 不冲突。

此时,我认为按照

https://howtoubuntu.org/how-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd

会按照我的意愿运行,所以我可以删除 /dev/sdb5 并扩展 /dev/sdb3。但在执行此操作之前,我尝试在 BIOS 设置中将新驱动器设为第一个启动驱动器。但是当我尝试从它启动时,我收到错误消息

重新启动并选择适当的启动设备或在选定的启动设备中插入启动媒体并按下某个键。

如果我切换回在启动顺序中首先将旧驱动器启动,则机器将启动,但它会使用 /dev/sdb5 上的旧根,就像我尝试更改 GRUB 的位置之前一样。

我尝试过寻找其他解决方案,但似乎没有一个适合我的具体情况。我认为删除 /dev/sdb5 并尝试再次安装 GRUB 可能会有效,但我不愿意尝试可能完全破坏我的设置的方法。我会很感激任何建议。

编辑:根据要求,这是我的 Boot-info 摘要报告的链接

https://paste.ubuntu.com/p/QhyPBh4Csq/

答案1

感谢@oldfred 的建议并为我指明了正确的方向。

这只是我的一个疏忽。当我对新的 SSD 驱动器进行分区时,我未能将 /dev/sda1 标记为可启动。完成此操作并在 BIOS 中更改驱动器的启动顺序后,一切都按我的预期运行。我现在已删除 /dev/sda5(旧的 Ubuntu 根目录)并在其位置创建了一个额外的 NTFS 分区。因此 /dev/sda 全部是 Ubuntu,而 /dev/sdb 是 Windows 10。

相关内容