UEFI方式安装ubuntu到移动硬盘上启动项问题 (移动硬盘 u盘等)

基本情况

写这篇文章的原因是因为我想将Ubuntu安装在移动硬盘中,方便在不同的电脑中使用。我之前做过这样干过几次,总体来说就是刻启动U盘
然后在安装时选择安装位置到移动设备中。

问题

但是,这样安装的硬盘无法在联想的天逸510mini中启动(该机器原本安装的是windows10)。症状是启动BIOS没有我的移动硬盘的选项。原因是该机器是纯uefi启动。
而我的硬盘是mbr分区表,我通过在try ubuntu的时候使用,

gdisk /dev/sda

发现有着mbr only 的选项。所以我使用GParted 工具来重建我硬盘的分区表。该工具在安装系统时可以在软件搜索中找到。该工具为GUI界面比较简单,当然也可以直接使用gdisk进行重建分区表。

我需要在bios中开启legacy支持,但该品牌机好像阉割了该功能。

又一个问题

在我使用gdisk工具对该硬盘建立gpt分区表后我再次尝试安装,这次成功安装,并且在该纯uefi启动的机器上启动了。但是我发将硬盘拔出安装时用的电脑后插到别的机器上时发现无法使用,原因是Ubuntu的引导装在原来机器本身的硬盘上。
这一点可以在启动选择启动项时看到ubuntu的引导在机器原有的硬盘上。
这其实是一种bug。我认为是Ubuntu公司不认为普通用户将是想通过便携的方式使用Ubuntu,而是更照顾已有的windows用户不会因为设置不了启动项而回不到
原来的系统上。

问题解决

到这一步,我去网上搜索,全都是如何重建引导。我觉得这样不妥。
首先每次安装都要建立新引导,然后原来的引导还在原来机器的硬盘上,很难看。这样的解决方式并不优雅。
能不能只将引导一开始就建立在移动硬盘上。
我在一篇英文网站上找到了答案。

How to Install Ubuntu Linux on an External USB Drive to Make an Actual, Portable Linux System on USB

强烈建议直接看原文,或者通过翻译工具看原文。

这篇文章作者提出了两种方案,一种是将电脑其他的硬盘全拔掉,Ubuntu在安装时就无法将引导安装在别的硬盘上。但是将硬盘全部拔掉其实在大部分情况下比较困难。

还有一种是在安装Ubuntu时在设置安装位置之前,使用gparted更改硬盘标识将gsp分区指向移动硬盘的分区,取消原来硬盘的gsp分区标识。这样就能让ubuntu安装时
忽略已经有的gsp分区。而是将引导建立在该独立的移动设备上。

bios没有uefi启动项 uefi boot没有硬盘启动项_移动硬盘

移动硬盘

bios没有uefi启动项 uefi boot没有硬盘启动项_bios没有uefi启动项_02

原来机器硬盘

在这样设置之后,在原来的方式安装ubuntu,之后我发现启动项建立在该硬盘上,顺利安装,通过切换bios也能正常启动windows。

文章说需要在安装完后将原来机器上的硬盘标识改回为esp,但我并没有改,发现并没有问题,windows还是ubuntu都能正常bios切换,但是出于稳妥,在我进入安装后的Ubuntu后还是将esp改了回去。

可能还有的解决办法

其实我觉得还有第三种办法就是在没有虚拟硬盘的虚拟机环境中安装。但我没有试过。
这种方式模拟了一种没有其他硬盘的环境,我觉得可行。但我希望如果有官方的解决方式那就
更好了