我有一台定制的台式电脑,希望完成 Ubuntu 安装的设置。我正尝试将 Ubuntu 安装的引导加载程序和 GRUB 移动到安装 Ubuntu 的磁盘。
我有多个内置驱动器,但对于这个问题,只有其中 2 个重要。第一个是三星 960 Pro 1TB NVME SSD(设备/dev/nvme0n1
)。第二个是三星 850 PRO 1TB SSD(设备/dev/sdg
)。我在 960 Pro 上安装了 Windows,在 850 Pro 上安装了 Ubuntu。
850 Pro的分区结构如下:
- 512 MB EFI 分区
- 64 GB Ext4 @ /
- 64 GB 交换
- 870+ GB Ext4 @ /home
当我浏览 Ubuntu 安装 GUI 时,我创建了这个架构,并/dev/sdg1
在'用于安装引导加载程序的设备'菜单。但是,似乎忽略了此选项,并将引导加载程序安装到 960 Pro 上。我的主板(Rampage V Edition 10)的 UEFI BIOS 将此指示为 Ubunutu 安装的引导加载程序的位置。当我选择时,我会启动到 GRUB 菜单,其中包含启动 Ubuntu 或启动 Windows 的选项。当我启动到 Ubunut 时,我可以看到使用磁盘实用程序应用程序/dev/nvme0n1o2
安装了 960 Pro ()上的 EFI 分区。/boot/efi
如何移动 Ubuntu 引导加载程序以使用 850 Pro SSD 上的 EFI 分区(/dev/sdg1
)?
答案1
首先,您应该意识到,除非您的设置中存在您未描述的情况,否则没有必要移动 Ubuntu 引导加载程序。由于任何移动引导加载程序的尝试都存在失败的风险,可能会导致 Ubuntu 甚至 Windows 无法启动,因此这很可能是“如果它没坏,就不要修理它”的情况。
也就是说,如果您想移动 GRUB(Ubuntu 的引导加载程序),您可以按照以下几个步骤进行:
/dev/nvme0n1o2
通过输入 来卸载sudo umount /boot/efi
。- 通过键入 找到目标 ESP 的序列号(“UUID”,尽管从技术上讲它不是 UUID)
sudo blkid /dev/sdg1
。 (此步骤假定 SSD 上已经有 FAT 文件系统。如果没有,则需要使用 创建一个mkdosfs
。) - 编辑
/etc/fstab
:找到定义行/boot/efi
并编辑它,使其引用/dev/sdg1
而不是。执行此操作的最佳方法是将“UUID”从现在的值更改为您在上一步中/dev/nvme0n1o2
获得的值。blkid
- 键入
sudo mount -a
以安装新的 ESP。 - 键入
df /boot/efi
以验证新 ESP 是否已安装在/boot/efi
。 (如果未安装,df
将报告/
或 的信息/boot
,而不是/boot/efi
。) - 输入
sudo grub-install
。这将安装 GRUB,但不会对其进行配置。 - 输入
sudo update-grub
。这将配置 GRUB。
这应该就是所需的全部内容,除非我忘记了什么(当然是可能的)。如果它不起作用,系统可能会继续通过旧的 GRUB 启动,该 GRUB 仍然安装但不活动,位于 上。如果您想从那里完全卸载 GRUB,/dev/nvme0n1o2
可以从该分区中删除目录。EFI/ubuntu