我当前的 SSD 驱动器似乎出现故障,但我需要安装当前工作,所以我不想立即更换它。
我的预期计划如下:
通过 USB 连接一个新的 SSD(使用像这样的设备https://www.amazon.com/gp/product/B00MVRS38G/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1)并在该驱动器上创建一个新安装。(可能会是各种 Ubuntu。)
从那个 USB 连接启动以设置我的新安装。但是,当我需要返回旧安装时,旧驱动器仍将连接,因此我应该能够从中启动。
当我按照我想要的方式进行新安装时,从内部 SATA 连接中取出旧 SSD,并用我的新 SSD 替换它。
从一些谷歌搜索来看,似乎 1. 和 2. 都是标准的,不应该产生任何问题。(但如果你预见到,请纠正我。)
我的问题主要是关于 3。——这会产生任何问题吗?
安装不是问题,它将是 UEFI 机器上的引导加载程序。旧机器应该没问题,grub 会根据要求安装到外部驱动器,并且磁盘可能会移动到内部位置。
安装到外部磁盘时有几个错误,您应该注意:
* 1173457 -- Ubuntu 安装程序使用错误的引导加载程序位置进行 USB UEFI 安装
* 1229488 -- 不支持将 EFI 安装到可移动媒体(不需要的 nvram 更改 shimx64.efi到 grubx64.efi,使启用了安全启动的机器无法启动。
为 UEFI 安装做好准备,并在外部 SSD 上放置一个 EFI 分区。无论您在安装期间在 grub 位置输入什么内容,都会忽略此外部分区。同样在准备中,复制 /EFI/ubuntu/grub.cfg 文件(如 grub.cfg.orig)。该文件使用的是内部磁盘根的UUID,会被错误地替换为外部磁盘的根UUID。安装到外部磁盘后,您必须手动将内部 EFI 文件复制到空的外部 EFI(错误 1173457)。这些文件对于外部设备是正确的,但是主机留下了一个存根 /EFI/ubuntu/grub.cfg,它具有外部磁盘根目录的 UUID(用于维护的 grub.cfg 文件)。只要存在外部磁盘,它就会启动,但我建议简单地复制回 grub.cfg。
在外部磁盘的 EFI 上,检查您是否有 /EFI/ubuntu/grubx64.efi 和 /EFI/ubuntu/shimx64.efi(当磁盘移动到内部位置时,这些将是正常的引导加载程序)。还要检查 /EFI/Boot/bootx64.efi 是否存在并且是 shimx64.efi 的副本。/EFI/Boot/grubx64.efi 也应该存在。当安全启动被禁用时,您可能只使用 grubx64.efi 作为文件 bootx64.efi,但在任何一种情况下都应该使用 shimx64.efi 作为 bootx64.efi。当外部磁盘仍然是外部机箱中的“可移动”磁盘时,使用 /EFI/Boot 位置引导加载程序。当外部磁盘被选为启动设备时,它应该启动。
当外部磁盘移动到内部位置时,可能会出现启动问题。nvram 可能有一些旧的磁盘标识,因此可能需要一个新的引导条目(efibootmgr 可能用于创建一个新条目)。另一个可能的错误是将 shimx64.efi 引导条目更改为 grubx64.efi,这将无法在启用安全引导的情况下工作。也许引导实际上将通过后备机制工作。当/如果旧的 nvram 条目失败时,可以尝试 /EFI/Boot 条目。即使这成功了,我建议您使用 efibootmgr 来制作常规的 /EFI/ubuntu/shimx64.efi(或 grubx64.efi)。入口。
无效的分区表可能类似于在不使用 GPT 引导的旧机器上使用 GPT,或者安装到设备而不是分区,从而使分区表的位置真正成为文件系统的一部分。您使用了什么分区,它看起来像什么(在外部机箱中)。