4.4 为采用 USB 闪盘引导方法准备文件

优质
小牛编辑
125浏览
2023-12-01

如果采用 USB 闪盘引导你需要一台运行支持 USB 的 GNU/Linux 系统。 你应该确定 usb-storage 内核模块已经装入 ( modprobe usb-storage ) 然后尝试找出 USB 闪盘映射到的那个 SCSI 设备。 在这个例子中是 /dev/sda )。 为了 写入你的闪盘,你可能需要关闭它的写保护开关。

注意,准备的 USB 闪盘应该至少有 128MB 的容量 ( 在更小的尺寸安装也是可能的,请参照 第4.4.2节 , "拷贝文件 ── 灵活的方法 " )。

4.4.1. 拷贝文件 ── 轻松的途径

这里有一个单一的文件 hd-media/boot.img.gz 。其中包括了所有的 安装文件 (包括内核),以及 SYSLINUX 和它的配置文件。你只需要把它直接 解到你的 USB 闪盘内:

gzip -dc boot.img.gz >/dev/sda

当然这会删除这个设备上的所有内容,因此小心你使用的是正确的 USB 闪盘设备名称。

之后,挂接 USB 闪盘 ( mount /dev/sda /mnt )。里面应该 存在一个 FAT 文件系统,并且存有一个 Debian 网络安装盘或者名片型 ISO 映象。请注意文件 名必须以 .iso 结尾。 解挂闪盘 (umount /mnt) 后结束。

4.4.2. 拷贝文件 ── 灵活的方法

如果你需要更多的灵活性或者只是想了解其间发生了什么,你应该使用如下的方法来把文件放到你的闪盘。 我们将显示如何安装闪盘来使用其第一个分区,而不是整个设备。

由于大多数 USB 内存条预先装载了一个单一的 FAT16 分区,你可能不需要重新分区或者重新格式化 USB 内存条。如果你必须这么做,请使用 cfdisk 或者其他的分区工具来 创建一个 FAT16 分区并且输入

mkdosfs /dev/sda1

小心你使用的是 USB 盘正确的设备名称。mkdosfs 命令包含在 dosfstools Debian 包中。

如果想要在 USB 闪盘引导后启动内核,我们将在 USB 闪盘上放入一个引导装载程序。尽管任何引导装载程序 (比如 LILO) 应该可以胜任这个工作。不过还是使用 SYSLINUX 更方便。主要是它使用一个 FAT16 分区并且用编辑一个文本文件 就能进行配置。任何支持 FAT 文件系统的操作系统可以用来改变引导装载程序的配置文件。

为了把 SYSLINUX 放到你的 USB 闪盘的分区上,请安装 syslinuxmtools 包在你的系统里, 然后输入

syslinux /dev/sda1

请再次确保你使用的是正确的设备名称。在开始 SYSLINUX 的时候 不能挂接分区。这个程序会写入分区的引导扇区并且创建 ldlinux.sys 文件。它主要包含引导装载器的代码。

接下来挂接分区 (mount /dev/sda1 /mnt) 并且 从 Debain 文件库拷贝下列文件到内存条上:

  • vmlinuz (内核执行文件)

  • initrd.gz (初始化内存映像)

  • syslinux.cfg (SYSLINUX 配置文件)

  • Optional kernel modules

如果你想重命名这些文件,请注意 SYSLINUX 只能处理 DOS (8.3) 文件名。

syslinux.cfg 配置文件应该含有下列两行:

default vmlinuz
append initrd=initrd.gz ramdisk_size=10000 root=/dev/rd/0 init=/linuxrc devfs=mount,dall rw

请注意, ramdisk_size 参数在需要的时候可能要增大,这取决于 你正在引导的内存映像大小。

现在你需要把任意 Debian ISO 映像 (名片式,网络安装式或者甚至是完全安装版) 放入你的 USB 闪 盘 (如果它装的下的话)。这样的一个映象文件后缀必须是 .iso

如果你想通过网络安装而不需要一个 ISO 映像,你当然需要跳过以前的步骤。并且你必须要使用来自 netboot 目录的内存映像来取代来自 hd-media 的内存映像。这是因为 hd-media/initrd.gz 并不包含网络支持。

当你完成的时候,解挂 USB 闪盘memory stick (umount /mnt) and activate its write protection switch.

警告

如果你的系统拒绝从 USB 闪盘引导,那么闪盘可能装有一个无效引导扇区记录 (MBR)。 使用来自 mbrinstall-mbr 命令也许可以解决这个问题:

install-mbr /dev/sda