OP要求“不要触碰我的现有Ubuntu安装。”我的回答描述了如何实现这一点,使用真实的安装方式,而不是持久性的Live USB安装。持久性安装非常脆弱,并且更新内核很困难。真实的安装更好。
如果你想从外部设备启动,而不仅仅是在其上安装Ubuntu,你需要解决一个安装程序的错误,该错误会重写你内部硬盘的引导分区,并且无论你告诉安装程序什么,它都不会在外部设备上安装EFI引导分区。如果你不这样做,你最终仍然会在目标USB存储设备上安装Ubuntu,但它只能在这台计算机上工作,因为它没有自己的引导分区。
EFI分区是BIOS在启动时寻找的驱动器的一部分。如果一个驱动器没有EFI分区,它就不能成为引导驱动器。如果一个USB存储设备或外部驱动器没有EFI分区,你仍然可以将Ubuntu安装到其中,但它需要一个“可引导”的驱动器来实际启动。所以,如果你想要一个可以从一台计算机启动并独立运行的USB存储设备或外部驱动器,那个驱动器必须有自己的EFI分区。
以下是我在Ubuntu上最近使用的方法(截至21.10)。
在各种笔记本电脑上进行了测试。我已经关闭了传统引导。UEFI已经100%使用(这将是过去五年内销售的任何设备的默认设置)。
我在BIOS中关闭了安全启动。
在第二个驱动器上安装是很麻烦的,因为Ubuntu安装程序会使用它看到的第一个EFI分区,而不管你是否尝试指定其他位置作为EFI分区。所以当你尝试将引导设备设置为目标USB驱动器时,系统会忽略你的设置。这是一个相当古老的错误,但在21.10版本发布时仍然存在。
这个错误意味着即使你要求创建一个EFI分区,你的USB闪存驱动器上也不会有EFI分区,所以无法从中引导。
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1396379
摘要:为了解决这个问题,在开始安装之前,使用gparted编辑内部EFI分区的标志来禁用它。然后安装程序就找不到它,也不会触发该错误。稍后再重新启用这些标志。这是一个微不足道的步骤。从逻辑上说,这几乎相当于物理上断开内部驱动器的连接,这肯定也可以解决安装程序的错误。
我采取的步骤:
在开始安装之前:
您需要一个标准的Ubuntu Live USB设备和一个目标USB闪存盘进行安装。
以“先试用”模式启动Ubuntu Live USB。
使用gparted(有时Ubuntu Live Disk可能没有包含它,您可能需要先安装它)...
重新分区您的目标外部驱动器,使用GPT分区表。GPT分区表是用于UEFI(现代)可引导驱动器的必需品。
创建一个500MB的FAT32分区。您还可以设置所需的Ubuntu安装分区。在安装时,您将拥有三个驱动器:内部驱动器、实时映像安装程序驱动器和目标驱动器,因此为所需的/分区添加标签可能会很方便。
应用这些更新后,更改刚刚创建的小型500MB分区的标志。右键单击小分区,然后选择“管理标志”。这些更改会立即生效(但请注意,您必须先通过完成上一步来实际创建分区)
勾选启动、esp和隐藏以打开它们。
安装
您已经使用了一个实时磁盘USB映像进行引导,就像正常的Ubuntu安装一样。因此,您有两个USB设备:目标设备和实时磁盘USB驱动器。
编辑您内部驱动器上的EFI分区标志,并取消勾选与目标设备EFI分区上相同的三个标志。这将阻止Ubuntu安装程序将其用作引导分区。
这是一个短视频,展示了在gparted中进行旗帜编辑的过程:https://youtu.be/sdgrmylH6pc
现在,在安装时,安装程序将只看到您目标设备上的一个EFI分区。这是我在其他地方没有看到记录的新步骤。
开始ubuntu安装。继续操作,直到看到安装程序的磁盘设置选项卡。当然,您需要完全手动的方式,即在分区阶段选择“其他选项”。
在执行安装时指定引导加载程序的安装方式。如果您的目标驱动器挂载为sdc,因此EFI分区为sdc1(第一个分区),则将引导加载程序安装到设备sdc上,而EFI分区将是sdc1。
滚动查找该分区。在“类型”列中应该写有“efi”。单击“更改”以确认:安装程序应说“使用作:EFI系统分区”。实际上,您不需要更改任何内容,也不需要进行格式化。
当你滚动浏览分区时,请查看“类型”列。你的内部驱动器上不应该有EFI分区,因为你已经关闭了内部驱动器EFI分区上的分区标志。当然,该分区仍然显示为FAT32分区,这没问题。
你还会看到你启动安装程序的活动磁盘上的EFI分区,这也没问题。安装程序足够智能,会忽略它。
选择你想要用于/(sdc2,或者你之前创建的任何分区),然后进行正常的Ubuntu安装。
安装完成后
恢复你内部EFI分区上的分区标志
安装完成后,重新启动到USB设备上的新安装系统。你需要使用BIOS中的“选择启动设备”选项,因为计算机需要使用你刚刚创建的引导分区,这是它从未见过的。在我的Thinkpad上,F12是进入BIOS菜单的快捷键。
你应该在启动菜单中看到几个引导驱动器的选择,其中之一是外部驱动器。有些BIOS菜单将默认标签显示为“ubuntu”,所以看到它出现多次可能会有点困惑。有时更改引导设备会导致BIOS重新启动(我的Thinkpad上是这样),看起来像是发生了什么不好的事情,但其实没关系。
稍后,当你没有插入USB闪存驱动器时,BIOS应该足够智能,会自动切换回上次已知的良好EFI设备(即内部设备),但你可能需要手动重新选择EFI引导选项。
提示:如何重新标记USB引导项以避免重复的“ubuntu”条目
如果你得到了标记为ubuntu的重复EFI引导选项,你可以修复它。
重新标记EFI菜单选项非常方便,但有点棘手。在你从新安装中正常启动后再进行此步骤。这一步是可选的。
确保你从外部驱动器的安装中启动,然后执行以下操作:
sudo efibootmgr -v
你正在列表中的第一行启动。
注意用于引导的文件名称,并注意分区的编号。
我第一个条目的输出是:
HD(1,GPT,...) .... File(\EFI\ubuntu\shimx64.efi)
然后看一下这个帖子:https://www.kubuntuforums.net/showthread.php/68851-Labels-on-UEFI-Boot-Entries-using-efibootmgr-L
我这样重新标记我的'owcUbuntu':
efibootmgr -c -d /dev/sdb -p 1 -L owcUbuntu -l \\EFI\\ubuntu\\shimx64.efi
知道在我的情况下启动驱动器是sdb,而且由于我先创建了EFI分区,所以-p参数的值是1。注意:请检查您实际的启动磁盘是什么 :) 使用gparted或df命令。
USB 3 推荐:我已经在一系列的 USB 3 硬盘上尝试过这个。迄今为止,最好的体验(非常好)是三星 USB 3 "Bar" 硬盘。它们在这种使用情况下(随机访问、带有日志记录的 ext4 分区)非常快速(对于 USB 3 硬盘来说),而且相当坚固。
grub-pc
软件包。这可能是因为在以UEFI模式安装的Ubuntu系统中安装了grub-efi
软件包,而这两个软件包不允许同时安装。在现场或持久现场系统中,这是不同的,两个软件包可以共存。也可以删除grub-efi
,安装grub-pc
,使用它,卸载它并再次安装grub-efi
。 - sudodus