我是新来的,所以如果我的问题在形式上不正确,我提前道歉。
我有一个双引导系统,在两个不同的磁盘上。Windows 预安装在第一个驱动器(500 Gb)上,然后我在第二个 1 Tb 驱动器上安装了 ubuntu 20.04,按照本讨论中的答案Dual Booting win 10 and Ubuntu 18.04 on two different physical ssds(我发现它非常有用并清楚)。两个磁盘都是SSD。系统是完整的uefi。因为我想完全隔离两个不同的操作系统,所以我像这样配置了第二个驱动器:
- 650 Mb Efi 分区 (sdb1)
- 20 Gb Ext4 @ / (sdb2)
- 10 Gb 交换 (sdb3)
- 剩余可用空间@ /home (sdb4)
在 ubuntu 安装过程中,我没有拔下第一个驱动器(Windows 所在的位置)并且我难以置信地跳过了(这是我的错,我知道)避免在第一个驱动器上安装 ubuntu 引导加载程序的“解决方法”步骤(这种情况是已知的作为我在之前链接的讨论中读到的错误)。因此,即使我在“用于引导加载程序安装的设备”菜单中选择了“sdb1”分区(刚刚创建),也可能发生了该错误,或者只是我的选择被忽略了。现在我有两个问题,这对我来说代表了两种恢复情况的替代方法:
1 – 我可以将 ubuntu 引导程序从第一个驱动器移动到第二个驱动器的 Efi 分区吗?如果是,我该怎么做?我希望通过这种方式隔离两个OS。
如果没有,第二个问题是:
2 - 由于ubuntu bootloader现在安装在第一个驱动器的Efi分区上,我可以删除我在安装过程中创建的第二个驱动器的Efi分区吗?实际上我看到这个分区是空的并且未挂载,所以基本上没有使用。
面对 Ubuntu 18.04 的同样问题,我遵循了 PrakashS 的回答,同时确保
/boot/efi
在安装 grub 之前安装了新的 EFI 分区。我首先在 Ubuntu 磁盘上使用 GParted 创建了一个带有
boot
标志的新 fat32 分区。(检查时 GParted 会自动添加esp
标志boot
。)以下说明
sdb1
用于新 EFI 分区以匹配您问题中的设备名称。查找 sdb1 的 UUID:
sudo blkid | grep /dev/sdb1
将 /etc/fstab 中 /boot/efi 条目的 UUID 更改为 sdb1 的 UUID:
sudo nano /etc/fstab
从 /boot/efi 卸载 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
生成 initramfs 映像:
sudo update-initramfs -u -k all
生成 grub2 配置文件:
sudo update-grub
重启。
确认 sdb1 仍然挂载在 /boot/efi:
lsblk | grep /boot/efi
按照以下过程移动引导加载程序:
sudo blkid
使用(复制它)找到 /dev/sdb1 的 UUIDsudo grub-install /dev/sdb
sudo update-initramfs -u -k all
sudo update-grub
检查
lsblk
/dev/sdb1 是否挂载在 /boot/efi 中。