为了准备 U 盘,您需要一台运行的支持 USB 的 GNU/Linux 系统。当前的 GNU/Linux 系统会在您插入 U 盘的时候自动识别。如果没有,您应该确认 usb-storage 内核模块是否已经被加载。U 盘插入后,它将被映射到名为 /dev/sdX
的设备,其中的 “X” 是 a-z 的字母。您可以通过运行 dmesg 在插入 U 盘后确认是否被正确映射。要写入信息,请要先打开它上面的写保护开关。
采用这种方法将销毁设备上已有的任何内容!请确认您使用了正确的 U 盘设备名。如果搞错,比如写成硬盘,将造成该设备上的所有信息丢失。
现在 Debian CD 和 DVD 映像可以直接写入 U 盘,这是非常简单的制作启动 U 盘的方法。只需为 U 盘选择一个合适的 CD 或 DVD 映像。参阅 第 4.1 节 “官方的 Debian GNU/Linux 光盘套装” 获取 CD 或 DVD 映像。
另外,对于只有几 M 的小容量 U 盘,您可以从 netboot
目录下载 mini.iso
映像(位于 第 4.2.1 节 “在哪里能找到安装映像”)。 [6]
您选中的 CD 或 DVD 映像应该被直接写入 U 盘,覆盖它当前的内容。例如,使用已有的 GNU/Linux 系统,CD 或 DVD 映像文件可以参照下面方法写入 U 盘,写之前请确认 U 盘已经卸载:
#
cp
debian.iso
/dev/sdX
#
sync
对大多数用户来说,简单地把 CD 或 DVD 映像写入 U 盘已经够用。下面更为复杂的选项主要提供给有特殊需要的用户。
另一种方法制作 U 盘是手动复制安装文件和 CD 映像。注意 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/
), 现在上面有了 一个 FAT 文件系统 ,然后复制 Debian ISO 映像 (netinst、businesscard 或完整的 CD) 到里面。卸载 U 盘 (sdX
/mntumount /mnt
) 就完成了。
如果您需要更多的灵活性,或者只是想了解其间发生了什么,应该使用如下的方法来把文件放到 U 盘。
我们将展示如何使用 U 盘的第一个分区,而不是整个设备。
Since most USB sticks come pre-configured with a single FAT16 partition, you probably won't have to repartition or reformat the stick. If you have to do that anyway, use cfdisk or any other partitioning tool to create a FAT16 partition[7], install an MBR using:
# install-mbr /dev/sdX
The install-mbr command is contained in the mbr
Debian package. Then create the filesystem using:
# mkdosfs /dev/sdX1
Take care that you use the correct device name for your USB stick. The mkdosfs command is contained in the dosfstools
Debian package.
为了在 U 盘引导后启动内核,我们要在 U 盘上放入一个 boot loader。尽管任何 boot loader (比如 lilo
)都应该可以胜任,不过还是使用 syslinux
更方便。主要原因是它可以使用 FAT16 分区,而且只需要编辑一个文本文件就能对其进行配置。任何支持 FAT 文件系统的操作系统都可以用来改变 boot loader 的配置文件。
为了把 syslinux
放到 U 盘的 FAT16 分区上,请在您的系统中安装 syslinux
和 mtools
软件包,然后执行:
# syslinux /dev/sdX1
再提醒一次,请确认您使用的是正确的设备名称。启动 syslinux 的时候该分区不能被挂载,因为该过程会向分区的引导扇区写入数据,并且创建包含 boot loader 代码的 ldlinux.sys
文件。
挂载分区(mount /dev/
)并复制下列安装程序映象文件到 U 盘:sdX1
/mnt
vmlinuz
或 linux
(内核二进制文件)
initrd.gz
(初始化 ramdisk 映象)
你可以选择使用安装程序的文本或者图形界面。后者放在 gtk
子目录下面。如果需要改文件名,请注意 syslinux
只能处理 DOS (8.3) 文件名。
Next you should create a syslinux.cfg
configuration file, which at a bare minimum should contain the following two lines (change the name of the kernel binary to “linux
” if you used a netboot
image):
default vmlinuz append initrd=initrd.gz
For the graphical installer you should add vga=788
to the second line. Other parameters can be appended as desired.
To enable the boot prompt to permit further parameter appending, add a prompt 1
line.
如果您使用 hd-media
映象,现在应该复制 Debian ISO 映像文件[8] 到 U 盘。完成后,卸载 U 盘 (umount /mnt
)。
[6] 有一个特殊的方法可以将固件加入 mini.iso
。首先将 mini.iso
写入 U 盘。接着取得所需的固件。参阅 第 6.4 节 “加载缺失的固件” 了解固件信息。然后拔插 U 盘,会有两个分区出现在 U 盘上。您应该挂载第二个分区,并将固件解压到里面。
# mount /dev/sdX2
/mnt # cd /mnt # tar zxvf/path/to/
firmware.tar.gz # cd / # umount
[7] Don't forget to set the “bootable” bootable flag.
[8] 您可以选择 businesscard、netinst 或完整 CD 映像 (参阅 第 4.1 节 “官方的 Debian GNU/Linux 光盘套装”)。确认选择合适的映象。注意 “netboot mini.iso
” 映象并在这里并不适用。