如何逐步创建Ubuntu 20.04的完整安装到USB设备

每个Ubuntu LTS版本从8.04开始,我都会将完整安装的Ubuntu制作到USB闪存驱动器上,并记录每个步骤。
这是为了为希望创建可引导的完整安装闪存驱动器的用户提供指南/检查清单。
以前,如果在BIOS中创建,则适用于BIOS引导;如果在UEFI中创建,则适用于UEFI引导。
对于20.04,这些说明应该适用于在BIOS或UEFI引导的情况下创建和运行驱动器。
问题是:
如何使用逐步说明在BIOS或UEFI中创建Ubuntu的完整安装到USB设备。

非常抱歉以回答的形式发布此问题,但我无法添加评论(因为我的声望不存在)。这是给楼主(可能是个愚蠢的问题)C.S.Cameron的一个问题。 当你说“调整以适应更大的驱动器”时,你是指:32 GB ==> 所有分区大小乘以2 64 GB ==> 所有分区大小乘以4 等等?除了“bios_grub”和“boot,esp”,我猜。顺便说一句:很棒的帖子,我希望我能多点赞。 - Caligola
谢谢:如果您在16GB的驱动器上构建了所需的系统,并将其克隆到64GB的驱动器上,那么您将有3/4的驱动器未格式化。您想将该空间保留为ext4用于数据和未来的程序,还是作为FAT32/NTFS数据分区,以供Windows使用?如果Windows不是一个因素,可以忽略NTFS分区,并使用可用空间进行EXT4分区。克隆后,请使用GParted将该分区拉伸到填满驱动器(除了右侧最后1MB)。如果您想要大量的NTFS数据空间,请拉伸NTFS分区。或者两者都有一点。 - C.S.Cameron
我知道我很烦人,但真的不知道如何完成以下两个步骤:
  • 将Live USB中的boot和EFI文件夹复制到boot,esp分区sdx3。
  • 将分区sdx4 /boot/grub/中的grub.cfg复制到分区sx3 /boot/grub/。
- Caligola
打开文件(Nautilus),右键点击Ubuntu.iso文件,选择"使用存档挂载器打开"。Ubuntu.iso文件将出现在左侧(类似于文件夹),打开它,您将看到一堆文件夹,可以复制粘贴Boot和EFI到sdx3。首先打开磁盘,选择您的USB设备,左键点击Filesystem 3,点击三角形按钮,点击右下方的链接。sdx3将会打开,将Boot和EFI粘贴进去。点击Filesystem 4,点击链接,打开boot文件夹,打开grub文件夹,复制grub.cfg,打开sdx3上的grub文件夹,并用sdx4上的复制品覆盖grub.cfg。 - C.S.Cameron
我在Nautilus中既看不到ubuntu.iso文件,也没有任何“Archive Mounter”选项在右键下拉菜单中(使用“打开方式...”也没有帮助)。我想我犯了一个“原始错误”。作为一个live usb,我正在使用从官方网站下载的iso镜像,通过Windows上的UUI(Pendrive linux)刷写,而您的说明要求在工作的Linux环境中使用SDC、Unetbootin等制作。 - Caligola
由于我的老板非常好心(也可以说是给我增加了负担),给了我第二台和第三台笔记本电脑,我目前正在清理其中一台,并将其转换为Ubuntu 19.10系统,然后从那里重新开始。无论如何,我会告诉你进展如何。感谢C.S.C提供的大力支持。 - Caligola
嗨CSC。通过了那两个步骤,现在遇到了另一个问题:重新安装GRUB:sudo mount /dev/sdb3 /mnt # 目标有sdb分区前缀 得到的结果是:在etc/fstab中找不到。 - Caligola
让我们在聊天中继续这个讨论。 - Caligola
@ThomasWard,请告诉我为什么你删除了我的回答以及C.S.Cameron在这个帖子中的回答。他和我认为这些回答很有用,并且我们在这里和Ubuntu论坛的其他几个回答中都引用了它们。 - sudodus
我发现这些说明非常有用,但是有一两个地方可能会让新手产生疑问,所以我在这里添加了一些注释:https://askubuntu.com/questions/1332371/creating-a-pc-boot-able-ubuntu-installation/1332619#1332619 - K1tty
谢谢,我会尽力阅读并进行编辑。 - C.S.Cameron
1个回答

点击此链接查看Ubuntu 22.04的逐步指南


创建一个在BIOS和UEFI下均可工作的Ubuntu 20.04完整安装到USB

以下步骤基于16GB目标驱动器,如果使用更大的驱动器,请进行相应调整。 看起来这是一个长列表,但完成工作应该不超过十分钟。K1tty在这个答案中清楚地解释了许多要点,详见https://askubuntu.com/a/1332619/43926

  • 使用SDC、UNetbootin、mkusb、dd等工具创建一个Live USB或DVD(参见底部的注释1)。
  • 关闭电脑并拔掉插头。
  • 从硬盘上拔下电源线或从笔记本电脑上拔下硬盘(参见底部的注释2)。
  • 重新插上电脑的插头。
  • 插入并启动Live USB或Live DVD(最好是以BIOS模式启动)。
  • 选择语言并选择“尝试Ubuntu”。
  • 插入目标闪存驱动器。
  • 启动GParted。
  • 卸载任何已挂载的分区。
  • 选择“设备”选项卡,在目标驱动器上创建一个GPT分区表。
  • 在右侧创建一个3GB的NTFS或FAT32分区(可选的Linux/Windows数据分区,参见底部的注释3)。
  • 在左侧创建一个1MB的分区,并格式化为未格式化。
  • 在1MB分区旁边创建一个300MB的FAT32分区。
  • 在300MB分区旁边创建一个7GB的ext分区。
  • 在剩余空间中创建一个ext4分区(可选的/home分区)。
  • 应用所有操作。
  • 将1MB分区标记为bios_grub
  • 将300MB分区标记为boot,esp

Image of GParted

  • 开始安装Ubuntu。
  • 选择语言,点击“继续”。
  • 选择键盘布局,点击“继续”。
  • 选择无线网络,点击“继续”(可选)。
  • 选择安装偏好并选择“在安装Ubuntu时下载更新”(可选),选择“安装第三方软件…”,点击“继续”(可选)。
  • 如果询问已挂载的分区,请选择是,点击“继续”。
  • 不要在此安装方法中使用高级功能磁盘加密(请参阅底部的注释3)。
  • 在“安装类型”中选择“其他选项”,点击“继续”。
  • 在引导加载程序安装设备中选择目标驱动器。
  • 选择分区sdx4并点击更改,选择用作Ext4,选择格式化此分区,并将挂载点设置为“/”,然后点击确定。
  • 如果要求写入先前的更改,请点击继续。
  • 选择分区sdx5并点击更改,选择用作Ext4,选择格式化此分区,并将挂载点设置为“/home”,然后点击确定(可选)。
  • 点击立即安装。

Image of  Something else

  • 如果被要求确认要格式化的分区,请点击继续。

  • 选择您的位置。点击“继续”。

  • 输入您的姓名、计算机名称、用户名、密码,并选择是否自动登录或需要密码。- 点击“继续”。

  • 等待安装完成。

  • 不要重新启动或拔掉目标USB。

  • 将Ubuntu ISO文件中的bootEFI文件夹复制到boot,esp分区sdx3中。

  • 如果出现权限等问题,请使用sudo -H nautilus打开Nautilus,然后再次尝试复制。

  • 将分区sdx4 /boot/grub/中的grub.cfg文件复制到分区sdx3 /boot/grub/中,覆盖原有的grub.cfg文件。

  • 重新安装GRUB:

    sudo mount /dev/sdx3 /mnt
    sudo grub-install --boot-directory=/mnt/boot /dev/sdx

  • 关闭电脑并插入硬盘。

  • 更换计算机的外壳。

注意1,引导ISO文件。
  • 如果您希望USB具有使用GRUB引导ISO文件的功能,请使用mkusb创建引导驱动器,并选择usb-pack-efi选项。(这将用2.02版本替换GRUB 2.04)。
  • 或者,您可以在grub.cfg的第一个menuentry之前的任何位置放置rmmod tpm
注意2:移除硬盘。
  • 如果在分区后选择将grub安装到您要安装Ubuntu的USB驱动器的根目录(即sdx而不是sdx1),则可以省略在BIOS引导中禁用硬盘的步骤。请注意,许多人会将HDD MBR覆盖为默认的引导加载程序位置为sda,内部驱动器的grub中的任何项目都将添加到USB的grub中。您稍后可以执行update-grub命令。如果您保留了UEFI安装时连接的HDD,则fstab可能会使用HDD的UUID作为/boot/efi的路径。在这种情况下,请在fstab中注释或删除/boot/efi.UUID行。
注意3:苹果兼容性。
  • 如果您拥有苹果电脑,请将此分区设置为FAT32格式。
注意4:加密(可选)。
要创建全加密的BIOS/UEFI USB驱动器的方法,请参阅:如何使用全磁盘加密制作BIOS/UEFI闪存驱动器

+1; 很好且详细的描述。您是否在UEFI模式和BIOS模式下进行了测试?这些指示在两种情况下都适用吗?也许您已经解释过,但我没有找到这样的细节。 - sudodus
如果您无法断开驱动器,可能是因为您的UEFI驱动器设置禁用了它。我只是在安装过程中卸载和挂载正确的ESP。我已经发布了手动卸载和挂载正确的ESP的解决方法,位于#23和#26 https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1396379 - oldfred
1@sudodus:我已经测试了大约两周,我已经构建了从BIOS和UEFI引导的驱动器,并且已经从BIOS和UEFI运行了驱动器。对我来说一切都正常。我还使用了一个使用usb-pack-efi选项创建的mkusb Live驱动器构建了该驱动器。这会按照注释1的说明启动额外的ISO文件。如果您检查一下,我会很高兴,我只需要6分钟就可以从启动Live驱动器到输入我的姓名和密码。 - C.S.Cameron
@oldfred:到目前为止,我还没有遇到断开USB的问题,不过我正在度假,只带了两台支持UEFI的电脑,其他的都是只支持BIOS的。 - C.S.Cameron
@stomwerk 你可以将ISO文件放在外部USB设备上,或者放在Live USB上。我刚刚从我正在使用的Live/Persistent USB中复制了引导和EFI文件夹到这个驱动器上。当从Live USB启动时,它们位于filesystem/cdrom/目录下。 - C.S.Cameron
@Thomas Ward:为什么这个页面上的三个有价值的答案被删除了呢?它们都提供了一种简单的方法来创建一个完整的USB安装。 - C.S.Cameron
也许可以使用sudo grub-install --boot-directory=/mnt/boot --removable命令。 - VidathD
@Sasuke Uchiha:来自希卡杜瓦的问候。如果插入多个USB驱动器,这个方法还有效吗?我有机会的话会试一试,听起来是个好主意,谢谢。 - C.S.Cameron
@C.S.Cameron 你好,来自甘巴哈。等一下,你是斯里兰卡人吗?我在虚拟机中使用kali通过chroot进入安装程序shell来完成这个操作,所以不太确定。 - VidathD
希望你喜欢这个国家。顺便说一下,那个命令应该是 grub-install --efi-directory=/mnt/usb --boot-directory=/mnt/usb/boot --removable。请参考 https://www.gnu.org/software/grub/manual/grub/html_node/Installing-GRUB-using-grub_002dinstall.html。 - VidathD
@Sasuke Uchiha:我会尝试一下。 - C.S.Cameron
我在启动时遇到了“/casper/vmlinuz未找到”的问题。有没有解决办法? - GuPe
@Guacho Perez,你尝试在另一台电脑上使用这个驱动了吗?请尝试在BIOS和UEFI引导模式下都进行测试。确认/boot/mgrub/grub.cfg文件已从sdx4复制到sdx3。https://askubuntu.com/a/1332619/43926解释了许多上述问题。 - C.S.Cameron
通过上述解决方案(在我的USB中使用便携式Ubuntu,并在USB中包含grub引导程序),我能否在我的USB驱动器中升级新的Ubuntu版本,而不影响Windows引导程序或我的计算机硬盘中的任何内容?@C.S.Cameron - Shateel
2@Shateel 我已经多次升级完整安装的USB,从来没有出过问题。 - C.S.Cameron
@C.S.Cameron 谢谢!有没有可能你会制作一个关于Kali Linux便携版(安装版本)的教程,就像这个教程一样。 - Shateel
如果您使用虚拟机,并将闪存驱动器直接挂载到虚拟机上,并像在正常硬盘上安装一样使用ISO进行安装,会发生什么? - poqdavid
@poqdavid 有很多方法可以创建可启动的Ubuntu驱动器。另一种使用VBox的方法是将VDI文件转换为IMG,然后使用Rufus、Etcher、Gnome Disks或mkusb将其安装到磁盘上。 - C.S.Cameron
@C.S.Cameron 嗯,安装任何Linux的味道到一个USB上使用虚拟机的话,没有什么不好的一面,除了闪存驱动器可能会比较慢。 - poqdavid
只要有足够的内存,Ubuntu就可以在RAM中运行。RAM比SSD或HDD快得多。 - C.S.Cameron
将Ubuntu ISO文件中的boot和EFI文件夹复制到boot,esp分区sdx3中。我想澄清一下,sdx3是boot_esp分区,并且在复制之前,您应该使用Disks挂载/media/cdrom分区。 - Federico Paolantoni
我仔细按照指示操作,并确保将引导加载程序安装到存储设备的根目录(sdd,而不是sdd1)。然而,笔记本电脑硬盘上的Windows引导加载程序被覆盖了,而且这个存储设备只能在这台特定的笔记本电脑上使用。我需要修复存储设备和笔记本电脑。我该怎么做? - Hauptideal
@Hauptideal:如果您尝试了从UEFI模式启动的方法,请检查USB设备的/etc/fstab文件,看看是否有一行提到笔记本电脑的UUID。如果有,请尝试在该行开头添加#符号。请告诉我们这对您是否有效。 - C.S.Cameron