在第二个驱动器中移动引导加载程序或删除 efi 分区

在第二个驱动器中移动引导加载程序或删除 efi 分区

我是新来的,所以如果我的问题不够正式,我提前道歉。

我有双启动系统,位于两个不同的磁盘上。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 分区与问题中的设备名称匹配。

  1. 查找 sdb1 的 UUID:
    sudo blkid | grep /dev/sdb1

  2. 在 /etc/fstab 中,将 /boot/efi 条目的 UUID 替换为 sdb1 的 UUID:
    sudo nano /etc/fstab

    Ctrl+O然后Return保存。Ctrl+X退出。

  3. 要使更改生效,请卸载 Windows EFI,并将 Ubuntu EFI 挂载到 /boot/efi:
    sudo umount /boot/efi && sudo mount /boot/efi

  4. 确认 sdb1 已挂载在 /boot/efi:
    lsblk | grep /boot/efi

  5. 在 sdb 上安装 grub(不含部件号):
    sudo grub-install /dev/sdb

  6. 产生初始化内存文件系统图像:
    sudo update-initramfs -u -k all

  7. 生成 grub2 配置文件:
    sudo update-grub

  8. 重启。

  9. 确认仍然将 sdb1 挂载在 /boot/efi:
    lsblk | grep /boot/efi

答案2

按照以下步骤移动引导加载程序:

  1. 使用以下方法查找 /dev/sdb1 的 UUID sudo blkid(复制它)
  2. 将 /etc/fstab 中 boot/efi 条目的 UUID 更改为 sdb1 的 UUID
  3. sudo grub-install /dev/sdb
  4. sudo update-initramfs -u -k all
  5. sudo update-grub
  6. 重启

检查lsblk/dev/sdb1 是否已挂载在/boot/efi 中。

相关内容