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

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

警告

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

4.3.1. Preparing a USB stick using a hybrid CD or DVD image

Debian CD and DVD images can now be written directly a USB stick, which is a very easy way to make a bootable USB stick. Simply choose a CD or DVD image that will fit on your USB stick. See 第 4.1 节 “官方的 Debian GNU/Linux 光盘套装” to get a CD or DVD image.

Alternatively, for very small USB sticks, only a few megabytes in size, you can download the mini.iso image from the netboot directory (at the location mentioned in 第 4.2.1 节 “在哪里能找到安装映像”). [6]

The CD or DVD image you choose should be written directly to the USB stick, overwriting its current contents. For example, when using an existing GNU/Linux system, the CD or DVD image file can be written to a USB stick as follows:

# cat debian.iso > /dev/sdX
# sync

4.3.2. Manually copying files to the USB stick

An alternative way to set up your USB stick is to manually copy the installer files, and also a CD image to it. Note that the USB stick should be at least 256 MB in size (smaller setups are possible if you follow 第 4.3.3 节 “Manually copying files to the USB stick — the flexible way”).

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

需要注意的是,虽然方便,但该方法有一个主要的缺点: 即使 U 盘很大,设备的逻辑尺寸还是限制在 256 MB。如果您要将该 U 盘用作其他用途,需要为它重新分区,为其余容量创建一个新的文件系统。次要的缺点是您无法复制完整的 CD 映象到 U 盘,只能使用较小的 businesscard 或 netinst CD 映象。

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

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

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

4.3.3. Manually copying files to the USB stick — the flexible way

如果您需要更多的灵活性,或者只是想了解其间发生了什么,应该使用如下的方法来把文件放到 U 盘。

4.3.3.1. 给 U 盘分区

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

注意

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

# mkdosfs /dev/sdX1

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

为了在 U 盘引导后启动内核,我们要在 U 盘上放入一个 boot loader。尽管任何 boot loader (比如 lilo)都应该可以胜任,不过还是使用 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
append initrd=initrd.gz

对于图形安装程序,您需要添加 vga=788 到第二行尾部。

如果您使用 hd-media 映象,现在应该复制 Debian ISO 映象[8] 到 U 盘上。然后卸载 U 盘(umount /mnt)。



[6] A special method can be used to add firmware to the mini.iso. First, write the mini.iso to the USB stick. Next obtain the necessary firmware files. See 第 6.4 节 “加载缺失的固件” for more information about firmware. Now unplug and replug the USB stick, and two partitions should now be visible on it. You should mount the second of the two partitions, and unpack the firmware onto it.

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

[7] 别忘记设置 “bootable” 引导标记。

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