正如标题所示:
我的电脑上有两个硬盘(
/dev/sda
和),每个硬盘/dev/sdb
都有自己的 EFI(标志:boot
、、)分区。如何强制将 ubuntu 安装在而不是hidden
esp
/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
相关的分区标志(boot
、hidden
、efi
)/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/sda1
为EFI
(尽管缺少标志 - 我不知道怎么做到的),但一旦出现问题,Windows 就会开始/dev/sda1
像对待任何其他分区一样对待(我ESP
在 Windows 的“资源管理器”中的“我的电脑”中看到了标记为分区的分区)。我很快启动到 ubuntu,标记/dev/sda1
为boot
、hidden
、efi
,但这并没有解决问题。重启后,分区仍然存在。不用说,这种情况有多危险……
使固定:
以管理员身份打开 Windows Powershell 或命令行:
Start
→右键单击Powershell
→Run as administrator
打开 diskpart:
diskpart
识别资源管理器中显示的 EFI 分区:
list volume
选择 EFI 分区(
X
用正确的驱动器号替换):
select volume X
删除 EFI 分区的驱动器号(
X
用正确的驱动器号替换):
remove letter=X
退出 diskpart:
exit
打开 regedit:
Start
→输入regedit
找到正确的密钥/文件夹:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
如果 EFI 分区驱动器号仍在注册表中,请删除该值:
例如\DosDevices\X:
关闭 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/