创建一个可引导的Ubuntu安装盘

我是一个对Ubuntu完全不熟悉的新手,正在尝试制作一个可以在我的PC(Surface Pro)上引导Ubuntu的USB闪存盘,这样就可以在不影响PC的情况下随时引导Ubuntu,并将其用作备用操作系统。

将可引导的Ubuntu镜像放入USB闪存盘似乎非常简单-您只需访问https://ubuntu.com/download/desktop并按照创建“桌面”镜像的说明进行操作。该镜像非常好用,可以在我的PC上无任何问题地引导。然而,大部分阅读此文的人都知道,“桌面”镜像实际上是一个测试和安装版本-在测试镜像时所做的任何操作在每次使用后都会被清除。我相信这个镜像被称为“live”版本。

所以,我按照在网上找到的指南,尝试使用镜像文件创建可启动的USB闪存驱动器。然而,这样创建的镜像无法像原始的镜像那样在电脑上启动!我明白它无法启动的原因是因为它是MBR(主引导记录)格式,而不是GPT和/或UEFI版本。我可以很快判断一个磁盘是否能够工作,因为当我将其插入一台旧的HP笔记本电脑并启动引导菜单时,如果USB闪存驱动器被列为“USB硬盘(UEFI)”,那么就可以认为它是可用于PC启动的。当然,原始的镜像通过了这个测试。
网络上充斥着关于如何将MBR磁盘转换为GPT(或其他需要的格式)的指南,但我实在找不到任何真正有效的方法,而且有些指南看起来非常复杂。
所以,我的第一个问题是:是否有一种可靠的过程,可以将使用“桌面”镜像创建的Ubuntu安装转换为可以启动的状态,即具有与“桌面”镜像相同的启动设置/配置?
或者,如果不行的话,有人能告诉我是否有一张可以作为正常安装版本使用的镜像吗?或者可以将“桌面”镜像转换为可工作的版本吗?
我对这一切都感到惊讶。如果启动配置的实时镜像被认为是可接受和良好的(就我所见),那么为什么它自己的安装过程不能创建一个像它自己一样启动的镜像呢?
谢谢, K1tty

5这个回答解决了你的问题吗?如何逐步创建 Ubuntu 20.04 的完整安装到 USB 设备 - Archisman Panigrahi
这可能回答了你的问题:https://www.howtogeek.com/howto/14912/create-a-persistent-bootable-ubuntu-usb-flash-drive/ - David
Archisman Panigrahi,只是想告诉你,我尝试了那个过程,但在安装的最后阶段,我收到一条消息,上面写着:“'grub-efi-amd64-signed'软件包无法安装到/target/目录中。没有GRUB引导加载程序,安装的系统将无法启动。”我检查了每个分区中可用的存储空间,并发现7GB分区(在说明中被描述为/dev/sdd4)已经没有剩余空间了 - 我怀疑是安装过程中出现了空间不足的问题。我会将该分区扩大并再次尝试安装。 - K1tty
如果一个带有持久性的实时会话对您的需求足够的话,那么只需使用MKUSB将ISO文件“烧录”并选择持久性选项即可:https://help.ubuntu.com/community/mkusb#Persistent_live_systems - ChanganAuto
哇,这看起来确实很简单,谢谢!不管我在安装“标准”版本方面是否成功,我也会尝试一下。 - K1tty
1我可以报告,在经过很多摸索后,我已经成功让这个过程运行起来了。作为一个新手,我发现有几个困难的地方,例如 grup2 core.img 的名称在“文件系统”列中没有出现,就像说明中所示的那样。另外,sudo mount /dev/sdx3 /mnt 比说明中显示的要早4个阶段。此外,当操作系统安装完成后,你必须按下“X”键,而不是“重新启动”。尽管如此,它确实有效。我正在我的新USB挂载的操作系统上输入这个! - K1tty
这里有一个更简单的方法可以将完整安装放在USB上:https://askubuntu.com/questions/1300454/easy-full-install-usb-that-boots-both-bios-and-uefi 你正在使用的方法稍微复杂一些。 - C.S.Cameron
3个回答

我现在基本上已经搞定了,这主要得益于这个过程... 如何逐步创建Ubuntu 20.04的完整安装到USB设备 ...为了让任何人都受益,特别是像我这样的新手,尝试创建一个Ubuntu可启动的USB安装,我提供了自己的笔记(稍作修改),用圆点表示:
- 使用SDC、UNetbootin、mkusb、dd等工具创建一个Live USB或DVD。

你可以在这里获取:https://ubuntu.com/tutorials/create-a-usb-stick-on-windows#1-overview 请注意,这是一个“实时”版本,尽管名字是这样,但只适用于测试Ubuntu或安装它 - 任何您添加的数据都将被删除(尽管用户“ChanganAuto”表示,如果您的需求只需要具有持久性的实时会话,则只需使用MKUSB“烧录”ISO并选择具有持久性的选项:help.ubuntu.com/community/mkusb#Persistent_live_systems

  • 关闭计算机并使用USB重新启动(首选BIOS引导模式)。

  • 选择您的语言和“尝试Ubuntu”。

  • 插入目标闪存驱动器。

  • 启动GParted。

您可以通过点击屏幕左下角的图标并使用搜索选项来找到所有已安装的应用程序。

在这里要特别小心 - 您不希望弄乱您的个人电脑操作系统!

使用 GParted 右上角的下拉框选择您要处理的磁盘。他的是/dev/sdd - 我的是/dev/sdc,各个分区将以 sdx1、sdx2、sdx3 等方式编号,其中 x 是您特定情况下的驱动器。

卸载任何已挂载的分区。 (一些分区可能会自动挂载)
选择“设备”选项卡,并在目标驱动器上创建一个GPT分区表。
在右侧创建一个3GB的NTFS或FAT32分区,(可选的Linux / Windows数据分区,请参见底部的Note 3)。 他所说的“right”是指驱动器空间的末尾。您正在创建3GB的填充空间(为什么这么多?),几步之后,您将创建一个填满到此点的分区(如果有意义的话!)
在左侧创建一个1MB的分区,格式化为未格式化。 即在开头
在1MB分区旁边创建一个300MB的FAT32分区。
在300MB分区旁边创建一个7GB的ext分区。 我发现这不够,将其加倍至14GB
在剩余空间中创建一个ext4分区(/ home分区,可选)。
应用所有操作。 通过按下“勾号”或“对号”符号来完成此操作。
将1MB分区标记为bios_grub。 请注意,当您执行此操作时,与他在图表中显示的内容“grub2 core.img”不同的是,这是没有问题的。
将300MB分区标记为boot、esp。
开始安装Ubuntu。 主屏幕上的左上角图标可以执行此操作。
选择语言,点击“继续”。
选择键盘布局,点击“继续”。
选择无线网络,点击“继续”(可选)。
选择安装首选项,并选择“在安装Ubuntu时下载更新”(可选),选择“安装第三方软件...”,点击“继续”(可选)。
如果被问到已挂载的分区,请选择是,点击“继续”。 我没有被问到
不要在此安装方法中使用高级功能磁盘加密(请参见底部的Note 3)。
在“安装类型”中选择“其他选项”,点击“继续”。
在引导加载程序安装设备下选择目标驱动器。
在选择sdx4分区并点击更改,选择用作Ext4,选择格式化此分区,和挂载点 =“/”,然后点击确定。
如果询问是否写入先前的更改,请点击继续。
选择sdx5分区并点击更改,选择用作Ext4,选择格式化此分区,和挂载点 =“/home”,然后点击确定(可选)。
点击立即安装。
如有需要确认要格式化的分区,请点击继续。
选择您的位置,点击“继续”。
插入您的名称,计算机名称,用户名,密码,并选择是否自动登录或需要密码-点击“继续”。
等待安装完成。
不要重新启动或拔掉目标USB。
从Ubuntu ISO文件复制“boot”和“EFI”文件夹到boot、esp分区sdx3。
是的,我遇到了权限问题。所以...
如果出现任何权限等问题,请使用sudo -H nautilus打开Nautilus再次尝试复制。
要做到这一点,您需要使用“终端”应用程序,您可以以与找到“GParted”相同的方式找到它。一旦终端运行起来,只需键入:
sudo mount /dev/sdx3 /mnt
(请注意,我已经将此步骤从说明中移至更高位置)
然后 sudo -H nautilus,您将得到一个窗口,在那里你将能够将目录放在它们应该放置的位置。(很抱歉,不能准确记住它是如何工作的)
将grub.cfg从分区sdx4的/boot/grub/复制到分区sdx3的/boot/grub/,覆盖grub.cfg文件。
重新安装GRUB: 所以,再次使用终端... sudo grub-install --boot-directory=/mnt/boot /dev/sdx 请注意,它只是'sdx'而不是'sdx3'或其他,即指向磁盘而不是特定分区。
关闭计算机并插入HDD。 使用屏幕右上角的图标关机Ubuntu-不要直接关机!
现在,将USB插入计算机,并尝试引导。
制作可启动的USB花了我三天时间(是的,正是三天!)才搞定。我真诚地希望这些笔记(当然也是原作者C.S. Cameron的工作)能为您节省一些时间。 :-)

1欢迎来到Ask Ubuntu。非常好而且详细的回答! - Archisman Panigrahi
1很好。我不会修改我的版本,如果有人遇到问题,请参考这个答案。干得好 +1。 - C.S.Cameron
13GB NTFS或FAT32分区(sdx1)的原因是,Windows 10之前的版本只能看到闪存驱动器上的第一个分区。 - C.S.Cameron
谢谢Zanna帮忙整理我的写作! - K1tty

这个bug就是为什么你不得不将引导和Ubuntu从ESP复制到外部驱动器的ESP。
请在这个bug报告中添加,它非常古老,我们非常沮丧,没有任何进展。现在已经找到了各种解决方法,但Ubiquity安装程序应该让您选择在哪里安装引导加载程序,就像对BIOS安装一样。
发布了手动卸载和挂载正确的ESP的解决方法,编号为#55或(#23和#26)。

https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1396379

其他人建议在UEFI设置中物理或逻辑地断开所有其他驱动器,以便安装驱动器成为第一个驱动器。 或者从第一个驱动器中删除引导标志/ESP标志,使只有ESP成为安装驱动器。(我没有成功过,但其他人成功了。) 或者如果您的ESP位于第二个或外部驱动器上,您可以重新安装grub,手动或使用Boot-Repair的高级模式和完全重新安装grub来更正驱动器。或将内部驱动器的ESP中的/EFI/Boot和/EFI/ubuntu文件夹复制到外部驱动器的ESP中。
在安装到第二个或外部驱动器之前,从Windows中删除ESP标志- Tim Richardson,在错误报告中也是#12和18 {{link1:如何将Ubuntu安装到USB键?(不使用启动磁盘创建器)}}
我认为对我来说更改引导标志无效,因为我使用grub2来循环挂载ISO,而不是单独的可引导闪存驱动器。
他们可能无法修复,因为现在他们正在开发新的安装程序,但如果我们继续强调这个问题,新的安装程序可能会解决它。

谢谢,是的,绝对需要一个新的安装程序。我花了将近3天的时间试图让它工作起来。考虑到实时版本是多么容易使其运行起来,这真是低效。 - K1tty
1Calameres 安装程序提供了选择安装引导程序的选项。 - Archisman Panigrahi
使用图像文件来安装到USB更容易。 - C.S.Cameron
是的,我对此也有疑问。现在我有一个可启动的USB闪存驱动器,我是否可以直接制作镜像并随意重建它? - K1tty
是的,我在硬盘上保存了一个完整安装的USB镜像,并经常重复使用它。例如:https://askubuntu.com/questions/1300540/how-to-duplicate-a-ubuntu-system-for-distribution - C.S.Cameron

这个突出显示的答案中的指示完美无缺(原链接:如何逐步创建Ubuntu 20.04的完整安装到USB设备)。我成功地为基于Ubuntu 20.04的Zorin OS 16创建了一个USB驱动器。
在遵循这些指示之前,我只是进入了实时会话并将操作系统安装在我的USB上,引导加载程序位置就是USB本身。虽然它起作用了,但它对我连接的内部驱动器上的Windows 10引导加载程序进行了一些更改 - 我不想要那样。所以我从BIOS启动选项(Dell 3410)中删除了“Ubuntu”的条目,并按照这些指示再试一次。
这一次,我使用了虚拟机来创建USB - 不需要断开任何硬盘(虚拟机内部也没有任何硬盘 - 只有用于引导的Zorin OS ISO和我的16GB USB驱动器)。

我跳过了为Windows和/home创建分区。只创建了一个1MB的partition (bios_grub),一个300MB的partition (boot, esp),以及剩余的14GB空间用ext4格式化,挂载点是/ - 这个设置对我来说很好用。

不过,如果有人能告诉我为什么我们需要将grub配置文件和那些boot和efi文件夹复制到boot分区中,我原以为在USB上安装引导程序可以处理这一切。


如果你有新的问题,请点击提问按钮进行提问。如果有需要,可以附上这个问题的链接以提供背景信息。- 来自评论 - ChanganAuto
@Aquib:我们需要将grub配置文件以及那些boot和efi文件夹复制到引导分区,这样我们就可以在BIOS或UEFI下启动。 - C.S.Cameron