我是新来的,所以如果我的问题不够正式,我提前道歉。
我有双启动系统,位于两个不同的磁盘上。Windows 预装在第一个驱动器(500 Gb)上,然后我按照此讨论中的答案在第二个 1 Tb 驱动器上安装了 ubuntu 20.04在两个独立的物理 SSD 上双启动 win 10 和 Ubuntu 18.04(我发现它非常有用且清晰)。两个磁盘都是 SSD。系统是完整的 uefi。由于我想完全隔离两个不同的操作系统,因此我按如下方式配置了第二个驱动器:
- 650 Mb Efi 分区(sdb1)
- 20 Gb Ext4 @/(sdb2)
- 10 Gb 交换(sdb3)
- /home 剩余可用空间 (sdb4)
在 ubuntu 安装过程中,我没有拔下第一个驱动器(Windows 所在的位置),而且我竟然跳过了(我知道这是我的错)“解决方法”步骤,以避免在第一个驱动器上安装 ubuntu 引导加载程序(这种情况被称为错误,我在之前链接的讨论中读到过)。因此,即使我在“引导加载程序安装设备”菜单中选择了“sdb1”分区(刚刚创建),也可能发生该错误,或者只是我的选择被忽略了。现在我有两个问题,它们代表了两种恢复情况的替代方法:
1 – 我可以将 ubuntu 引导加载程序从第一个驱动器移动到第二个驱动器中的 Efi 分区吗?如果可以,我该怎么做?我希望通过这种方式隔离两个操作系统。
如果不是,那么第二个问题是:
2 – 由于 ubuntu 引导程序现在安装在第一个驱动器的 Efi 分区上,我可以删除在安装过程中创建的第二个驱动器的 Efi 分区吗?事实上,我看到这个分区是空的并且未安装,所以基本上没有使用。
答案1
面对与 Ubuntu 18.04 完全相同的问题,我按照 PrakashS 的回答进行操作,同时确保在/boot/efi
安装 grub 之前已安装新的 EFI 分区。
我首先在 Ubuntu 磁盘上使用 GParted 创建了一个新的 fat32 分区,并带有标志boot
。(GPartedesp
在检查时会自动添加标志boot
。)
以下说明sdb1
用于使新的 EFI 分区与问题中的设备名称匹配。
查找 sdb1 的 UUID:
sudo blkid | grep /dev/sdb1
在 /etc/fstab 中,将 /boot/efi 条目的 UUID 替换为 sdb1 的 UUID:
sudo nano /etc/fstab
Ctrl+O然后Return保存。Ctrl+X退出。
要使更改生效,请卸载 Windows EFI,并将 Ubuntu EFI 挂载到 /boot/efi:
sudo umount /boot/efi && sudo mount /boot/efi
确认 sdb1 已挂载在 /boot/efi:
lsblk | grep /boot/efi
在 sdb 上安装 grub(不含部件号):
sudo grub-install /dev/sdb
产生初始化内存文件系统图像:
sudo update-initramfs -u -k all
生成 grub2 配置文件:
sudo update-grub
重启。
确认仍然将 sdb1 挂载在 /boot/efi:
lsblk | grep /boot/efi
答案2
按照以下步骤移动引导加载程序:
- 使用以下方法查找 /dev/sdb1 的 UUID
sudo blkid
(复制它) - 将 /etc/fstab 中 boot/efi 条目的 UUID 更改为 sdb1 的 UUID
sudo grub-install /dev/sdb
sudo update-initramfs -u -k all
sudo update-grub
- 重启
检查lsblk
/dev/sdb1 是否已挂载在/boot/efi 中。