如何制作一个可启动的Ubuntu USB?

如何制作一个包含最新版本Ubuntu的可启动Ubuntu USB?
为了完整起见,我该如何在Ubuntu、Windows、OS X或其他Linux发行版上完成这个操作?
8个回答

这个流程图展示了如何制作一个可启动的USB来安装Ubuntu,并解决从它引导Ubuntu时遇到的问题。

flowchart

链接

如何使用启动磁盘创建器在Ubuntu上制作Ubuntu USB

Ubuntu内置了一个用于创建可启动Ubuntu实时USB以安装Ubuntu的应用程序,称为启动磁盘创建器。在Dash中搜索启动磁盘创建器并单击启动磁盘创建器图标以打开制作启动磁盘窗口。

使用与“启动磁盘创建器”一起使用的USB闪存驱动器应该是2GB或更大,对于Ubuntu 18.04及更高版本,则应为4GB或更大。启动磁盘创建器将自动将您的USB闪存驱动器格式化为FAT32并使其可引导。如果您的计算机只插有一个USB闪存驱动器,在“制作启动磁盘”窗口中,“启动磁盘创建器”将自动选择它。请非常小心在“制作启动磁盘”窗口中选择USB闪存驱动器,以避免覆盖Ubuntu安装的分区,这可能导致Ubuntu无法引导。在下面的截图中,您可以看到USB闪存驱动器设备通过其型号名进行标识,该型号名出现在“Disks(磁盘实用程序)”应用程序中的“Drive”标题下的Model:之后。

启动磁盘创建器
Ubuntu 16.04中的启动磁盘创建器

你还可以移动“存储在预留的额外空间”滑块来创建一些持久文件存储的额外空间,以便在重新启动时保持。在Ubuntu 16.04及更高版本中,启动磁盘创建器不再具有持久文件存储选项。

如何使用dd制作Ubuntu最小化USB

虽然最小化iso镜像很方便,但对于要在UEFI模式下运行的基于UEFI的系统进行安装而言并没有用处。迷你iso缺少用于在UEFI模式下引导计算机的正确文件。因此,计算机将以BIOS兼容模式启动,并且安装将以BIOS模式进行。
从这些链接下载Ubuntu 18.04或Ubuntu 20.04的Ubuntu Mini CD iso文件:
Ubuntu 20.04:http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/mini.iso Ubuntu 18.04:http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/mini.iso 将Ubuntu 20.04的Ubuntu Mini CD iso文件下载到http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/mini.iso。将名为mini.iso的文件下载到您的Downloads文件夹中。您可以将mini.iso文件下载到计算机上的任何位置,但请将其下载到Downloads文件夹中,以便在接下来的步骤中轻松运行命令而无需更改任何内容。
通过运行以下命令验证您下载的Ubuntu mini CD iso文件的md5校验和:
cd ~/Downloads/ md5sum 'mini.iso'
如果您使用的是Windows子系统用于Linux,请从官方Microsoft Download Center下载Microsoft文件校验完整性验证工具。Microsoft文件校验完整性验证工具是一个命令行实用程序,用于计算文件的MD5或SHA1加密哈希值。
检查命令的结果是否与Ubuntu Documentation Installation Minimal CD网页上的mini.iso文件的MD5校验和匹配。
获取一个容量为1GB或更大的USB闪存驱动器。删除USB闪存驱动器中的所有文件。使用"Disks"磁盘实用程序挂载闪存驱动器。
在"Disks"磁盘实用程序中检查以找出您的USB闪存驱动器的设备名称。这非常重要,因为如果您在第6步中使用错误的设备名称,将覆盖整个操作系统而不是写入USB闪存驱动器。因此,请仔细检查两次USB闪存驱动器的设备名称。它应该类似于"/dev/sd*",其中"*"字符的位置应为小写字母,如a、b、c等。在下一步中,我假设设备名称为"/dev/sdc",但您的USB驱动器的设备名称可能是其他名称,如"/dev/sda"或"/dev/sdb",因此请仔细检查两次USB驱动器的设备名称,并确保在第6步中正确获取它!
打开终端或Windows子系统用于Linux版本2,并运行以下命令:
cd ~/Downloads/ sudo -i dd if='mini.iso' of=/dev/sdc bs=4096 ## 确保您的USB驱动器的设备名称正确!
在大多数计算机上,执行dd if='mini.iso' of=/dev/sdc bs=4096命令只需要几秒钟,因为mini.iso是一个小文件,小于60MB。运行此命令的结果将是一个可启动的Ubuntu mini USB。
从Ubuntu mini live USB启动计算机。Ubuntu mini live USB应该能够成功启动并显示菜单屏幕。
如果您在第7步的菜单屏幕中选择了安装选项(完整安装,而不是cli安装),则可以在Ubuntu安装过程中选择其他选项以下载执行完整Ubuntu安装所需的所有软件包。在Ubuntu mini CD安装程序的软件选择屏幕中,从预定义的软件集合列表中选择"Ubuntu desktop"软件包集合。当您在安装结束时重新启动系统时,您将拥有一个带有默认桌面环境的工作正常的Ubuntu桌面。 enter image description here 如何在OS X/macOS上创建可启动的USB闪存驱动器

但它只适用于Ubuntu基础发行版/ Ubuntu本身。 - MathCubes
2没错,虽然UNetbootin是跨平台的,但是启动盘创建器有一个UNetbootin没有的很好的功能。启动盘创建器通过模型名称来识别USB驱动器,而不是使用类似于/dev/sdb1这样看起来晦涩的设备名称。这为用户提供了额外的保护,以防止由于意外格式化错误的驱动器而覆盖操作系统。 - karel
以前我使用Unetbootin时遇到过一些问题,比如无法安装引导程序等等。 - MathCubes
dd for windows 使用方法dd [bs=大小[后缀]] [count=块数[后缀]] if=文件 of=文件 [seek=块数[后缀]] [skip=块数[后缀]] [--size] [--list] [--progress],其中if=文件 of=文件中的文件与Windows命令行(cmd.exe)中的文件位置具有相同的语法。 - karel
在Windows的cmd.exe窗口中运行这个wmic命令,可以显示所有可移动驱动器的信息,命令如下:wmic logicaldisk where drivetype=2 get deviceid, volumename, description 在Windows的cmd.exe中,源路径(输入文件)和目标路径(输出文件)的语法示例如下:源路径:C:\aaa\bbb\ 其中C:是硬盘驱动器。目标路径:F:\xxx\yyy\ 其中F:是通过运行wmic命令识别出来的USB闪存驱动器。 Windows下dd命令的示例:请访问此链接,示例位于名为Examples的标题下。 - karel
不是非常容易理解的步骤 - Pankaj Kumar Gautam


3虽然这个回答在理论上可能是正确的,但最好还是在这里包含回答的关键部分,并提供链接作为参考。 - Braiam

如何从Ubuntu制作可启动的Ubuntu USB驱动器(用于从macOS创建可启动的Ubuntu USB驱动器,请参见这里的答案):
步骤1:从https://ubuntu.com/download/desktop下载Ubuntu .iso文件,并将其放入您的下载文件夹中。
步骤2:打开终端并找到USB驱动器的文件路径,使用以下命令:
lsblk

你正在寻找sdL,其中L是某个字母。很可能是sdb(因为"sda"很可能是你的硬盘,如果你只有一个硬盘,它很可能会将下一个字母b分配给你的USB驱动器),但请仔细检查SIZE列是否合理。
你还会看到类似于sda1或sdb1的进一步细分。这不是你要找的,你只想要sd<某个字母>。那些数字指的是分区。分区是将硬盘(或SSD或USB驱动器)分割成较小区域的一种方式,有点像文件夹但更严肃。我们想要覆盖整个USB,而不仅仅是它上面的第一个分区(实际上,ISO文件已经包含了分区信息,它将用它自己的分区数据覆盖掉你的USB驱动器上已有的分区数据),所以我们需要指定只有sd<某个字母>,并省略后面的任何数字。
你将要运行的dd命令将会彻底删除驱动器上的所有数据,所以一定要小心操作。如果你不确定哪个磁盘是你的,可以先拔掉USB驱动器,运行命令,然后再插回去,再次运行lsblk命令来查看变化。如果你想要查看更多信息,也可以尝试运行sudo fdisk -l命令。
接下来,在你得到的名称前面添加 "/dev/",所以(例如)"sdb" 变成 "/dev/sdb"。"/ dev / sd<whatever>" 是 /dev 目录中的一个实际文件,它 假装是一个常规文件,但实际上会读取您的硬盘驱动器。如果尝试读取它,它将作为底层数据的二进制文件进行操作。通常,硬盘驱动器(或 SSD)具有分区表,每个分区都有一个文件系统,Ubuntu(或任何其他操作系统)将读取和解释这些分区,然后以各种文件夹中的大量文件的形式显示给您,但从/ dev / sd L 读取或写入是告诉Ubuntu忘记所有这些并将硬盘驱动器视为一系列字节的方法)。
第三步:使用dd将.iso镜像复制到您的USB闪存驱动器(将L替换为您在上一步中获得的字母)。
sudo dd if=~/Downloads/ubuntu-20.04-desktop-amd64.iso of=/dev/sdL

那个步骤需要一些时间。当它完成后,你应该运行。
sync

只是为了确保所有数据都传输完成,然后你就完成了;使用你的USB闪存驱动器启动Ubuntu。

你可以通过添加bs=1M来加快dd命令的速度。你也可以用oflag=sync代替手动调用sync,这个命令(执行相同的任务)还会告诉dd显示到目前为止已传输了多少数据,最终的命令会是:

sudo dd bs=1M status=progress oflag=sync if=~/Downloads/ubuntu-20.04-desktop-amd64.iso of=/dev/sdL

不要忘记用正确的字母替换L

为什么是1M?为什么不是4?或者8? - Nicholas Saunders
1因为1M比默认值明显更快,但是增加更多并不能真正使其更快。你可以尝试找到绝对最佳值,但根据我的经验,最多只能提升5%,而且这可能只是一个统计上的偶然现象。 - user677955

最近的Ubuntu发行版包含了引导信息,可以直接从光盘和硬介质(闪存驱动器等)启动。
您可以使用Linux系统将iso文件内容简单地复制到USB设备上,使用命令sudo dd if=my.ubuntu.release.iso of=/dev/sdX,其中sdX是您的闪存驱动器,您可以使用命令sudo fdisk -l来识别它。
在复制之前,请记得检查哈希值以确保您的iso文件有效。

使用Unetbootin。它适用于Ubuntu(从软件中心)和Windows(从Unetbootin网站)也可以。下载你想要的Ubuntu iso镜像,下载Unetbootin,制作启动盘,尽情享受吧。

完整安装到USB

完整安装比持久安装更稳定和安全,但制作时间较长。它们更好地利用了磁盘空间,因为不需要固定大小的casper-rw文件或分区。但对于安装Ubuntu来说并不是很理想。

以下是逐步说明如何在16GB闪存驱动器上安装18.04,并提供了单独的Home分区和与Windows兼容的数据分区选项:

使用SDC、UNetbootin、mkusb等工具创建一个可启动的USB或DVD。 关闭并拔掉电脑的插头。(见底部注释) 打开机箱盖。 从硬盘上拔掉电源线,或者从笔记本电脑上拔掉硬盘。 重新插上电脑的插头。 插入闪存驱动器。 插入可启动的USB或DVD。 启动电脑,USB/DVD应该会启动。 选择语言。 选择安装Ubuntu。 选择键盘布局。 选择“继续”。 选择安装类型,并选择“在安装Ubuntu时下载更新”,选择“安装第三方软件…”(可选)。 选择“继续”。 在“安装类型”中选择“其他选项”。(全盘加密无法与闪存驱动器一起使用) 选择“继续”。 确认目标设备是否正确。 选择“新建分区表”。 在下拉菜单中点击“继续”。
(可选:为在Windows机器上使用的FAT32数据分区)
  • 点击"空闲空间"和"+"。
  • 将"大小..."设置为约2000 MB。
  • 选择"主分区"。
  • 位置 = "此空间的开头"。
  • "用作:"= "FAT32文件系统"。
  • "挂载点" = "/windows"。
  • 选择"确定"。

(非可选根分区)

  • 点击"空闲空间",然后"+"。
  • 选择"主分区","大小..." = 4500至6000 MB,"此空间的开头",Ext4,和挂载点 = "/",然后确定。

(可选的家目录分区)

  • 点击"空闲空间",然后"+"。
  • 选择"主分区","新分区大小..." = 1000至6000 MB,此空间的开头,Ext2,和挂载点 = "/home",然后确定。

(可选的交换空间,允许休眠)

  • 点击"空闲空间",然后点击"+"。
  • 选择"主要","新分区大小..."=剩余空间,(1000到2000兆字节,或与RAM相同大小),此空间的开始和"用作"="交换区",然后点击"确定"。

(重要)

  • 确认"引导加载程序安装设备"指向USB驱动器的根目录。如果已拔下硬盘,则默认应该是正确的。
  • 点击"立即安装"。
  • 选择您的位置。
  • 选择"继续"。
  • 输入您的姓名、计算机名称、用户名、密码,并选择是否自动登录或需要密码。
  • 选择"继续"。
  • 等待安装完成。
  • 关闭电脑并插入硬盘。
  • 重新安装电脑的外壳。
注意: 如果在分区后选择将grub安装到您要安装Ubuntu的USB驱动器的根目录(即sdb而不是sdb1),则可以省略禁用硬盘的步骤。请小心,许多人会将HDD MBR覆盖为引导加载程序的默认位置是sda,内部驱动器的grub中的任何项目都将添加到USB的grub中。 稍后可以执行update-grub命令。

全安装到USB - BIOS/UEFI

Mkusb 是制作能够从BIOS和UEFI引导的全安装USB驱动器的绝佳基础:

  • 使用mkusb在安装器USB上创建一个实时系统(2GB或更大)。

  • 使用mkusb在目标128GB USB上创建一个持久化系统,使用默认设置并具有大约25GB的持久化空间(剩余的NTFS分区用于Windows可访问的数据分区)。

enter image description here

一旦mkusb完成,打开GParted并删除sdx4,即ISO9660分区,并将sdx5扩展到恢复的空间中,其中sdx是目标驱动器的设备名称。
如果需要,可以创建一个额外的ext4分区sdx6用于/home。

enter image description here

  • 在继续之前,拔掉或移除硬盘驱动器(可选但建议,在UEFI模式下强烈建议)。

  • 启动安装程序驱动器,选择“试用”。

  • 插入目标驱动器。

开始安装Ubuntu...

  • 选择“其他选项”。

  • 选择sdx5(在目标驱动器上),然后点击“更改”。

enter image description here

  • 选择使用ext4格式和挂载点为/。

不要触碰其他分区(除非添加/home分区到sdx6)。

  • 选择sdx5作为引导加载程序安装设备

  • 完成安装。

  • 从sdx5/boot/grub中剪切grub.cfg并粘贴到sdx3/boot/grub,覆盖现有的grub.cfg文件。

  • 启动目标驱动器并运行sudo update-grub以将所有驱动器添加到启动菜单。

  • 在18.04之前的安装中不要安装任何专有驱动程序(如Nvidia)。


FWIW,我成功地设置了一个可运行Ubuntu 18.1的U盘,通过从USB驱动器启动来在我的电脑上运行。现在我可以使用我的电脑运行Ubunt 18.1,并将软件安装到U盘中,将数据保存到U盘中,并且在其他方面都可以像我在内部硬盘上安装了Ubunt一样使用我的电脑。无论当前操作系统如何,我都能够在我的许多台电脑上使用这个系统。这是我的目标。
由于我对Linux的熟练程度相对较低,所以我寻找了最简单的设置步骤,具体如下: 我断开了内部硬盘的数据线,并使用我的电脑上的两个前置USB连接口插入了一个已安装有实时Ubunt的U盘,并在第二个USB端口插入了一个新的32GB的U盘。
在从U盘启动时,我选择安装Ubuntu,并按照指示进行操作。一切都自动进行,非常顺利,现在我可以从新的驱动器启动任何一台电脑,并且可以像在内部硬盘上安装了Ubunt一样使用它们。
我希望我有时间和专业知识来弄清楚哪些众多有用的论文真正适用于我,并将其中之一付诸实践,但这对我来说并没有发生。如果有人想要一个简单易行的方法,请尝试这种方法。 感谢所有的帮助, st

+1; 我认为关键是断开内部硬盘(或者在某些UEFI/BIOS系统中禁用它)。 - sudodus