我正在将 Ubuntu 16.04 安装到外部硬盘 (sdb) 上。我的电脑还有一个内置 Windows 10 硬盘 (sda)。
在分区阶段,我选择将引导加载程序安装到外部硬盘(sdb)上。
当 Uniquity 安装系统时,它会安装 Windows 10 的 ESP(sda2)并复制 Ubuntu/grub 引导加载程序,而它应该安装在外部 HDD(sdb1)上创建的 ESP。/dev/sda2 是 Win10 ESP,它被安装到 /target/boot/efi。/dev/sdb1 是正确的 ESP,但未被触及。
由于启动信息不在外部硬盘上,因此必须存在 Windows 10 磁盘才能启动 Ubuntu,因为指向 Ubuntu 的启动信息位于 Windows ESP 上 - 并不完全是最佳的。
问题是我能否强制 Ubiquity 使用 sdb1 作为 ESP。默认情况下这样做是有意义的,因为这是我选择安装 grub 的地方,但显然不是。
Ubiquity 的版本是 2.21.63。我重新审视这个问题,因为我需要在这台电脑上使用 Ubuntu。我提交了错误报告但仍然未定/未分配。
答案1
除了 Brady Dean 提供的解决方法之外,我还想到了另外两种解决方法:
解决方法 1
- 在运行安装程序之前,请将 EFI 系统分区 (ESP) 的 GPT 类型代码更改为不是想要使用除 ESP 代码之外的其他内容。具体如何操作取决于您使用的分区软件:
- 在
gdisk
、、sgdisk
或中cgdisk
,这意味着将其从 EF00 更改为其他任何值。(0700 将使其在 Windows 中显示为普通 FAT 分区。) - 在 GParted 或 中
parted
,从 ESP 中删除“启动标志”。
- 在
- 运行安装程序。如果幸运的话,它不会出问题,也不会坚持寻找 ESP
/dev/sda
,而是会注意到 ESP/dev/sdb
并正常进行。 - 安装 Ubuntu 后,反向执行步骤 #1 — 将正常的“ESP”类型代码恢复为 上的 ESP
/dev/sda
。忘记此步骤可能不会产生任何负面影响,但根据您使用的类型代码,Windows 可能会开始将其显示为常规分区;如果您需要重新安装 Windows(或其他操作系统),类型代码正确可能很重要。
请注意,我从未尝试过这种方法,因此我无法保证它会起作用。如果它不起作用,那么应该将该信息添加到问题中引用的错误报告中。
解决方法 2
- 以“安装前尝试”模式启动 Ubuntu 安装程序。
- 打开终端窗口。
- 输入
ubiquity -b
。安装程序应该会启动,但它会以一种会导致 GRUB不是被安装。 - 正常完成安装。
- 完成后,Ubuntu 将被安装,但无法启动。有多种方法可以使其可启动。最简单的两种方法是:
- 重新索引-- 我维护的这个工具是 GRUB 的替代品。你可以从以下网址获取 USB 闪存驱动器版本其下载页面并使用它首次启动 Ubuntu。然后您可以编辑
/etc/fstab
以识别要使用的 ESP,将其挂载到/boot/efi
,并安装 rEFInd(通过 Debian 包或 PPA)或常规 grub-efi 包。 - 引导修复-- 更详细地描述了这个流行的工具这里,可以安装 GRUB。不过,我不确定如何告诉它使用 上的 ESP
/dev/sdb
而不是 上的 ESP/dev/sda
。您可能需要使用类型代码技巧,如前面的解决方法;或者可能只需设置/etc/fstab
,就像使用 rEFInd 一样,就可以了。
- 重新索引-- 我维护的这个工具是 GRUB 的替代品。你可以从以下网址获取 USB 闪存驱动器版本其下载页面并使用它首次启动 Ubuntu。然后您可以编辑
我经常使用ubiquity -b
在多启动多个发行版的计算机上安装的方法,因为在这种情况下管理 GRUB 最好的情况下有点尴尬,最坏的情况下完全无法使用;rEFInd 在这种安装方面做得更好。当然,这与在/dev/sdb
而不是上安装所有内容的问题略有不同/dev/sda
,但解决方案相同应该工作。
答案2
好吧,我没有找到解决方案,但是我找到了一种解决方法。
- 启动 Live CD 后,运行
dmesg | grep ata
以查找内部驱动器的 ID。在我的情况下,它是 ata1.00 - 重新启动 live cd 但点击
e
编辑 grub 配置 - 添加到.
libata.force=1.00:disable
的末尾来自linux
1.00
ata1.00
- 点击
f10
后机器应该可以启动,但 Linux 应该看不到驱动器 - 请检查lsblk
- 继续安装,Ubuntu 将外部视为
/dev/sda
我还建议将其添加到已安装系统的 grub 配置中,这样它甚至看不到内部驱动器。不希望发生任何事情。
谢谢https://askubuntu.com/a/387261/440238为libata.force=1.00:disable
部分。