传统上,Linux用户会将ISO文件刻录到DVD或CD上,但现在许多计算机已经不再配备光盘驱动器。因此,创建一个可启动的USB驱动器是更优的选择。它不仅能在大多数计算机上运行,还能提供更快的启动速度、运行效率和安装过程。
可启动Linux USB驱动器的工作原理
与Live CD或DVD类似,可启动的USB驱动器允许您在不影响计算机本身的情况下,运行几乎任何Linux发行版。您还可以利用它在个人电脑上安装Linux发行版,而无需依赖CD或DVD驱动器。但是,您不能简单地将ISO文件复制或解压到USB驱动器就期望它能正常工作。虽然从技术角度来说,您不是将ISO文件“刻录”到USB驱动器,但仍然需要一个特殊的过程,才能利用Linux ISO文件制作成可引导的USB驱动器。
实现这一目标有两种主要途径:部分Linux发行版内置了图形化的USB启动盘创建工具,可以帮助您完成此操作。此外,您还可以使用`dd`命令,通过任何Linux发行版的终端来完成。无论您选择哪种方法,您都需要准备好Linux发行版的ISO文件。
例如,Ubuntu Linux提供了两种内置方法来创建可启动的USB驱动器。这种可引导的USB驱动器能为用户提供与Ubuntu Live DVD相同的体验,让您在不改动计算机系统的情况下试用这款流行的类Unix操作系统。当您准备好安装Ubuntu时,就可以直接使用USB驱动器作为安装媒介。
您需要一个Ubuntu安装ISO镜像文件来制作可启动的USB驱动器,所以请确保您已经从Ubuntu官方网站下载了您想要使用的版本。
需要明确的是,这个可启动的USB驱动器会启动到一个可用的Ubuntu Linux副本,但不会保存您所做的任何更改。每次从该USB驱动器启动Ubuntu时,都会是一个全新的Ubuntu实例。如果您希望能够保存更改和数据,则需要创建一个带有持久存储的可启动USB驱动器,这涉及到更复杂的过程。
只需将制作好的USB驱动器插入任何计算机,并从USB设备启动即可。(根据您选择的Linux发行版,可能还需要在部分电脑上禁用安全启动。)
虽然这里我们以Ubuntu为例,但这些方法和其他Linux发行版的原理是相似的。
如何通过图形界面制作可启动USB驱动器
Ubuntu的默认安装包含一个名为“启动盘创建器”的应用程序,我们将使用它来制作可启动的USB驱动器。如果您使用的是其他Linux发行版,它可能也有类似的工具。您可以在网上搜索或查阅您所使用的Linux发行版的文档,以获取更多信息。
对于Windows用户,我们推荐使用Rufus来轻松创建实时USB驱动器。
警告:这将清除目标USB驱动器上的所有内容。为避免意外写入错误的USB驱动器,建议您在继续操作之前,移除所有其他连接的USB驱动器。
对于Ubuntu来说,任何容量为4GB或更大的USB驱动器都是适用的。如果您选择的Linux ISO文件比这更大(但大多数情况下不会),则可能需要使用容量更大的USB驱动器。
当您确认正确的USB驱动器是唯一连接到计算机的驱动器时,启动“启动盘创建器”。您可以通过按下Super键(大多数键盘上的Windows键)并输入“启动盘”来找到它。此时会出现启动盘创建器的图标,点击图标或按下Enter键即可启动。
启动盘创建器的主窗口会显示出来。USB设备会在下方的窗格中突出显示。
点击“其他”按钮,这时会弹出一个标准的文件打开对话框。浏览至您的Ubuntu ISO文件的位置,选中它并点击“打开”按钮。
现在,启动盘创建器的主窗口应该与下图类似。上方的窗格中应突出显示ISO镜像文件,下方的窗格中应突出显示您的USB驱动器。
请再次确认ISO镜像文件和USB驱动器是否正确。如果您准备继续,点击“制作启动盘”按钮。
这时会弹出一个警告,告知您USB驱动器将被完全擦除。这是您在不更改USB驱动器的情况下退出的最后机会。点击“是”按钮,以开始创建可启动的USB驱动器。
进度条会显示创建过程的剩余进度。
当可启动的USB驱动器创建完成后,会弹出确认消息。在我们用于本文的计算机上,这个过程大约耗时五分钟。
点击“退出”按钮。现在,您可以重新启动计算机并从USB驱动器启动,或者拔下USB驱动器,将其带到其他计算机上启动。
如何使用 `dd` 命令制作可启动USB驱动器
我们将使用`dd`命令,通过命令行来创建可引导驱动器。
警告:使用此命令时必须格外小心。`dd`命令会严格按照您的指示执行,不会有“您确定吗?”之类的提示,也没有退出的机会。因此,我们需要非常谨慎地确保我们告诉它执行的指令是我们真正想要的操作。
我们需要知道您的USB驱动器对应的设备标识是什么,这样才能在命令行中将正确的设备标识传递给`dd`命令。
在终端窗口中输入以下命令。`lsblk`命令列出您计算机上的所有块设备。每个驱动器都有一个与之关联的块设备。
lsblk
`lsblk`命令的输出会显示当前连接到计算机的驱动器。在这台机器上,有一个名为`sda`的内部硬盘驱动器,它有一个名为`sda1`的分区。
插入USB驱动器,再次运行`lsblk`命令。`lsblk`的输出会发生变化。现在,USB驱动器会出现在列表中。
列表中新增了一个条目,名为`sdb`,它有两个分区,分别是1KB大小的`sdb1`和14.6GB大小的`sdb5`。
这就是我们的U盘。我们需要使用的是代表驱动器本身的标识符,而不是任何一个分区。在本例中是`sdb`。无论它在您的计算机上被命名为什么,之前`lsblk`列表中没有的设备一定就是您的USB驱动器。
我们给`dd`命令的指令如下:
sudo dd bs=4M if=Downloads/ubuntu-19.04-desktop-amd64.iso of=/dev/sdb conv=fdatasync
让我们来详细解释一下这个命令。
`sudo`:您需要以超级用户的身份运行`dd`命令。系统会提示您输入密码。
`dd`:我们要使用的命令的名称。
`bs=4M`:`-bs`(块大小)选项定义了每次从输入文件读取并写入输出设备的块大小。4MB是一个不错的选择,因为它能提供良好的吞吐量,并且是4KB的整数倍,后者是ext4文件系统的块大小。这保证了有效率的读写速度。
`if=Downloads/ubuntu-19.04-desktop-amd64.iso`:`-if`(输入文件)选项需要您提供作为输入文件的Linux ISO镜像的路径和文件名。
`of=/dev/sdb`:`-of`(输出文件)是关键参数。您必须在此处提供代表您USB驱动器的设备标识。这就是我们之前使用`lsblk`命令确定的值。在我们的示例中是`sdb`,所以我们使用`/dev/sdb`。您的USB驱动器可能具有不同的标识符。请务必提供正确的标识符。
`conv=fdatasync`:`conv`参数指定了`dd`在将输入文件写入输出设备时应如何转换文件。`dd`在写入USB驱动器时使用内核磁盘缓存。`fdatasync`修饰符确保在创建过程被标记为完成之前,写入缓冲区被正确且完整地刷新。
随着创建过程的进行,`dd`命令不会提供任何可视化反馈。它开始工作后,直到完成都不会报告任何信息。
更新:在最近的版本中,`dd`命令现在增加了一个`status=progress`选项,可以每秒提供一次进度更新。例如,您可以运行以下命令来查看状态:
sudo dd bs=4M if=Downloads/ubuntu-19.04-desktop-amd64.iso of=/dev/sdb conv=fdatasync status=progerss
在可引导USB驱动器创建完成后,`dd`命令会报告写入USB驱动器的数据量、耗时(以秒为单位)以及平均数据传输速率。
您可以通过重新启动计算机并从USB驱动器启动来测试该可启动USB驱动器是否工作正常,也可以尝试在其他计算机上启动。
现在,您拥有了一个Ubuntu或您选择的其他Linux发行版的可移植工作副本。每次启动它都会是全新的,并且几乎可以在任何您喜欢的电脑上启动它。