我有两个硬盘,每个都有 EFI 分区。如何强制 ubuntu 将 /boot/efi 安装在 /dev/sdb2 而不是 /dev/sda1 上

我有两个硬盘,每个都有 EFI 分区。如何强制 ubuntu 将 /boot/efi 安装在 /dev/sdb2 而不是 /dev/sda1 上

正如标题所示:

我的电脑上有两个硬盘(/dev/sda和),每个硬盘/dev/sdb都有自己的 EFI(标志:boot、、)分区。如何强制将 ubuntu 安装在而不是hiddenesp/boot/efi/dev/sdb2/dev/sda1

我的设置:

ubuntu@ubuntu:~$ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME                FSTYPE        SIZE MOUNTPOINT                    LABEL
sda                             119.2G                               
├─sda1              vfat          100M                               ESP
├─sda2                             16M                               
├─sda3              ntfs        118.1G                               Acer
└─sda4              ntfs            1G                               Recovery
sdb                             931.5G                               
├─sdb1              ntfs        481.5G                               Data
├─sdb2              vfat          512M                               
├─sdb3              ext4            5G                               
├─sdb4              swap           32G [SWAP]                        
└─sdb5              LVM2_member   150G                               
  └─vg_ubuntu-lv_ubuntu
                                  100G                               
sdc                               7.3G                               
└─sdc1              vfat          7.3G /cdrom                        UBUNTU 19_0
ubuntu@ubuntu:~$ 

sda是我的“工厂安装”的 Windows。
sda1是(Windows 引导加载程序)。
我的“目标”是通过安装 Linux 保持sda完整/不变,如下所示:

NAME                FSTYPE        SIZE MOUNTPOINT                    LABEL
sda                             119.2G                               
├─sda1              vfat          100M                               ESP
├─sda2                             16M                               
├─sda3              ntfs        118.1G                               Acer
└─sda4              ntfs            1G                               Recovery
sdb                             931.5G                               
├─sdb1              ntfs        481.5G                               Data
├─sdb2              vfat          512M /boot/efi                     
├─sdb3              ext4            5G /boot                         
├─sdb4              swap           32G [SWAP]                        
└─sdb5              LVM2_member   150G                               
  └─vg_ubuntu-lv_ubuntu                /

不幸的是,昨天我搞砸了一些事情,我是这样安装 ubuntu 19 的:

NAME                FSTYPE        SIZE MOUNTPOINT                    LABEL
sda                             119.2G                               
├─sda1              vfat          100M /boot/efi                     ESP
├─sda2                             16M                               
├─sda3              ntfs        118.1G                               Acer
└─sda4              ntfs            1G                               Recovery
sdb                             931.5G                               
├─sdb1              ntfs        481.5G                               Data
├─sdb2              vfat          512M                               
├─sdb3              ext4            5G /boot                         
├─sdb4              swap           32G [SWAP]                        
└─sdb5              LVM2_member   150G                               
  └─vg_ubuntu-lv_ubuntu                /

我计划/dev/sdb通过改变顺序 bios 的引导加载程序来启动。

我知道我该怎么做才能“达到”预期的效果?


编辑:
该问题被标记为可能重复:
如何将 GRUB 重新安装到 EFI 分区?

这不是真的。上面的链接(至少根据我的理解)解释了如何grub从一个分区移动到另一个分区,或者如何从“零”开始安装。要求已经安装Linux操作系统

我的问题是关于“强制”将 grub 放到正确的分区上在安装过程中,而不是安装之后

如果有的话,这个问题更接近于重复:
如何将 Ubuntu 安装到 USB 密钥?(不使用启动盘创建器)
(只需将“ USB key”替换为“ 2nd internal HDD”)

答案1

正如我在评论中所说的那样,@oldfred 提供的信息和链接帮助我找到了问题的解决方案(一种解决方法)。

我只需要暂时从分区中删除ESP相关的分区标志(boothiddenefi/dev/sda1。我的意思是在安装过程中。安装完成后,我恢复了它们。

“链接”:
1)https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1396379
2)https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1396379/comments/18
3)如何将 Ubuntu 安装到 USB 密钥?(不使用启动盘创建器)
(它们都指向同一个答案,只需读最后一个)

结果:

***@***:~$ sudo lsblk -o NAME,LABEL,SIZE,FSTYPE,FSSIZE,FSUSED,FSAVAIL,MOUNTPOINT
NAME                    LABEL         SIZE FSTYPE      FSSIZE FSUSED FSAVAIL MOUNTPOINT
sda                                 119,2G                                   
├─sda1                  ESP           100M vfat                              
├─sda2                                 16M                                   
├─sda3                  Acer        118,1G ntfs                              
└─sda4                  Recovery        1G ntfs                              
sdb                                 931,5G                                   
├─sdb1                  Data        481,5G ntfs                              
├─sdb2                  ESP           512M vfat          511M   7,5M  503,5M /boot/efi
├─sdb3                  Boot            1G ext4        975,9M 118,3M  790,4M /boot
├─sdb4                  Swap           32G swap                              [SWAP]
└─sdb5                                150G LVM2_member                       
  └─ubuntu_vg-ubuntu_lv               100G ext4           98G   5,8G   87,2G /

更新:

发生了一些事情,我不得不重新安装 Ubuntu。不幸的是,这次我忘记恢复EFI- 相关的分区标志/dev/sda1,然后我启动了“出厂安装”的 Windows。在启动过程中,它正确识别/dev/sda1EFI(尽管缺少标志 - 我不知道怎么做到的),但一旦出现问题,Windows 就会开始/dev/sda1像对待任何其他分区一样对待(我ESP在 Windows 的“资源管理器”中的“我的电脑”中看到了标记为分区的分区)。我很快启动到 ubuntu,标记/dev/sda1boothiddenefi,但这并没有解决问题。重启后,分区仍然存在。不用说,这种情况有多危险……

使固定:

  1. 以管理员身份打开 Windows Powershell 或命令行:
    Start→右键单击PowershellRun as administrator

  2. 打开 diskpart:
    diskpart

  3. 识别资源管理器中显示的 EFI 分区:
    list volume

  4. 选择 EFI 分区(X用正确的驱动器号替换):
    select volume X

  5. 删除 EFI 分区的驱动器号(X用正确的驱动器号替换):
    remove letter=X

  6. 退出 diskpart:
    exit

  7. 打开 regedit:
    Start→输入regedit

  8. 找到正确的密钥/文件夹:
    Computer\HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices

  9. 如果 EFI 分区驱动器号仍在注册表中,请删除该值:
    例如\DosDevices\X:

  10. 关闭 RegEdit 并重新启动。

来源: https://superuser.com/a/1344227


更新 #2:
(更像是一个注释)

在安装 Ubuntu 的过程中,在“分区选择”步骤(这是我为这一步起的“假名”——我怀疑它是不是这么叫)中,有一个选项device for boot loader installation

我总是将此选项从/dev/sda(默认设置)更改为/dev/sdb(目标设备)。

可以将其设置device for boot loader installation/dev/sdb2(分区,而不是设备),但是/dev/sdb这会带来一些不愉快的后果:

请注意,“用于引导加载程序安装的设备”下:

  • 如果您选择 dev/sda,它将使用 Grub(Ubuntu 的引导加载程序)加载此硬盘上的所有系统。
  • 如果您选择 dev/sda1(为 Ubuntu 创建的 ext4 分区),则需要在安装后手动将 Ubuntu 添加到驱动器的引导加载程序中。(例如,您之前已在此驱动器的另一个分区上安装了 Windows,则需要手动将 Ubuntu 添加到 mbr)

来源: http://ubuntuhandbook.org/index.php/how-to-install-ubuntu/

相关内容