4.3. 为从 U 盘引导准备文件

为了准备 U 盘,推荐使用一台运行的支持 USB 的 GNU/Linux 系统。当前的 GNU/Linux 系统会在您插入 U 盘的时候自动识别。如果没有,您应该确认 usb-storage 内核模块是否已经被加载。U 盘插入后,它将被映射到名为 /dev/sdX 的设备,其中的 X 是 a-z 的字母。您可以通过运行 dmesg 在插入 U 盘后确认是否被正确映射。要写入信息,请要先打开它上面的写保护开关。

[警告] 警告

采用这种方法将销毁设备上已有的任何内容!请确认您使用了正确的 U 盘设备名。如果搞错,比如写成硬盘,将造成该设备上的所有信息丢失。

4.3.1. 使用混合 CD/DVD 映像制作 U 盘

现在 Debian安装映像可以直接写入 U 盘,这是非常简单的制作启动 U 盘的方法。只需为 U 盘选择一个映像(如 netint、CD、DVD-1 或 netboot)。参阅 第 4.1 节 “官方的 Debian GNU/Linux 安装映像” 获取安装映像。

另外,对于只有几 M 的小容量 U 盘,您可以从 netboot 目录下载 mini.iso 映像(位于 第 4.2.1 节 “在哪里能找到安装映像”)。

您选中的安装映像应该被直接写入 U 盘,覆盖它当前的内容。例如,使用已有的 GNU/Linux 系统,映像文件可以参照下面方法写入 U 盘,写之前请确认 U 盘已经卸载:

# cp debian.iso /dev/sdX
# sync

在其它操作系统上如何做的信息可以在Debian CD FAQ中找到。

[重要] 重要

映像必须写入整个盘设备上而不是分区上,例如 /dev/sdb 而不是 /dev/sdb1。不要使用 unetbootin 的工具,它会更改映像。

[重要] 重要

对大多数用户来说,简单地把安装映像写入 U 盘已经够用。下面更为复杂的选项主要提供给有特殊需要的用户。

U 盘上的混合映像不占据所有的存储空间,所以会值得考虑使用空余的空间来保存您选择的固件文件、软件包或任何其它文件。如果只有一块 U 盘或者只想将所需要的设备保存在一个设备上,这回有用。

在 U 盘上建立第二个,FAT格式的分区,挂载分期,并将固件解压并复制到上面。例如:

# mount /dev/sdX2 /mnt
# cd /mnt
# tar zxvf /path/to/firmware.tar.gz
# cd /
# umount /mnt

可以将 mini.iso 写到 U 盘上。在这种情况下,不必建立第二个分区,因为非常好地,它已经出现了。拔下在插上 U 盘将会使两个分区可见。

4.3.2. 手动复制文件到 U 盘

另一种方法制作 U 盘是手动复制安装文件和安装映像。注意 U 盘最小容量为 1 GB (也可以使用较少容量,请参考 第 4.3.3 节 “手动复制文件到 U 盘 — 灵活的方法”)。

有一个文件合集 hd-media/boot.img.gz 包含所有的安装程序文件(包括内核) 以及 syslinux 和对应的配置文件

需要注意的是,虽然方便,但该方法有一个主要缺点:即使 U 盘容量更大,该设备的逻辑尺寸还是限制在 1 GB。如果您要该 U 盘作其他用途,需要为它重新分区,为剩余容量创建一个新的文件系统。

使用该映象只须将它直接解压到 U 盘:

# zcat boot.img.gz > /dev/sdX

然后,挂载 U 盘 (mount /dev/sdX /mnt), 现在上面有了 一个 FAT 文件系统 ,然后复制 Debian ISO 映像 (netinst 或完整的 CD/DVD) 到里面。卸载 U 盘 (umount /mnt) 就完成了。

4.3.3. 手动复制文件到 U 盘 — 灵活的方法

如果您需要更多的灵活性,或者只是想了解其间发生了什么,应该使用如下的方法来把文件放到 U 盘。使用这个方法的一个优点是,— 如果 U 盘的足够大—,那么可以选择将任何 ISO 映像复制到上面,甚至是 DVD 映像。

4.3.3.1. 给 U 盘分区

我们将展示如何使用 U 盘的第一个分区,而不是整个设备。

[注意] 注意

由于大多数 U 盘预先设置了一个单独的 FAT16 分区,您可能不需要重新分区或者格式化 U 盘。如果必须要做,请使用 cfdisk 或者其他的分区工具来创建一个 FAT16 分区[3],安装 MBR 使用:

# install-mbr /dev/sdX

其中 install-mbr 命令包含在 mbr Debian 软件包内。然后建立文件系统:

# mkdosfs /dev/sdX1

注意,请使用 U 盘正确的设备名称。mkdosfs 命令包含在 dosfstools Debian 软件包内。

为了在 U 盘引导后启动内核,我们要在 U 盘上放入一个 boot loader。尽管任何 boot loader 都应该可以胜任,不过还是使用 syslinux 更方便。主要原因是它可以使用 FAT16 分区,而且只需要编辑一个文本文件就能对其进行配置。任何支持 FAT 文件系统的操作系统都可以用来改变 boot loader 的配置文件。

为了把 syslinux 放到 U 盘的 FAT16 分区上,请在您的系统中安装 syslinuxmtools 软件包,然后执行:

# syslinux /dev/sdX1

再提醒一次,请确认您使用的是正确的设备名称。启动 syslinux 的时候该分区不能被挂载,因为该过程会向分区的引导扇区写入数据,并且创建包含 boot loader 代码的 ldlinux.sys 文件。

4.3.3.2. 添加安装程序映像

挂载分区(mount /dev/sdX1 /mnt)并复制下列安装程序映象文件到 U 盘:

  • vmlinuzlinux (内核二进制文件)

  • initrd.gz (初始化 ramdisk 映象)

您可以选择使用安装程序的文本或者图形界面。后者放在 gtk 子目录下面。如果需要改文件名,请注意 syslinux 只能处理 DOS (8.3) 文件名。

接下来需要创建一个 syslinux.cfg 配置文件,里面最少要包含下面的行(如果使用 netboot 映象,修改内核二进制文件的名称为 linux ):

default vmlinuz initrd=initrd.gz

对于图形安装程序,需要将 vga=788 添加在这行的尾部。还可以根据需要添加其它参数。

添加 prompt 1 一行,使得引导提示符可以允许附加参数。

如果您使用 hd-media 映象,现在应该复制 Debian ISO 映像文件[4] 到 U 盘。完成后,卸载 U 盘 (umount /mnt)。



[3] 别忘记设置 bootable 引导标记。

[4] 您可以选择 netinst 或完整 CD/DVD 映像 (参阅 第 4.1 节 “官方的 Debian GNU/Linux 安装映像”)。确认选择合适的映象。注意 netboot mini.iso 映象在这里并不适用。