4.4. 为从 USB 闪盘引导准备文件

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

您需要一台运行支持 USB 的 GNU/Linux 系统来为 USB 闪盘引导准备文件。 您应该确定 usb-storage 内核模块已经被加载(modprobe usb-storage) 然后尝试找出 USB 闪盘被映射到的哪个 SCSI 设备(在此以 /dev/sda 为例)。为了写入您的闪盘,您可能需要关闭它的写保护开关。

注意,准备的 USB 闪盘应该至少有 128MB 的容量(在更小的尺寸安装也是可能的,请参考 第 4.4.2 节 “复制文件 — 灵活的方法”)。

4.4.1. 复制文件 — 轻松的途径

这里有一个单一文件 hd-media/boot.img.gz ,其中包含了所有的安装程序文件(包括内核),以及 yaboot 和它的配置文件。您可以使用 mac-fdiskC 命令在您的 USB 闪盘上创建一个类型为“Apple_Bootstrap”的分区, 然后直接解开映像文件到:

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

当然,这会删除设备上现存的所有内容,因此请仔细检查您使用的是正确的 USB 闪盘设备名称。

然后,挂载 USB 闪盘(mount /dev/sda2 /mnt),它上面应该已经具有 一个 HFS 文件系统 ,您再将一个 Debian netinst(网络安装) 或 businesscard(名片) ISO 映像拷贝到盘上。请注意文件名必须以 .iso 结尾。 卸载闪盘(umount /mnt)后结束。

4.4.2. 复制文件 — 灵活的方法

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

4.4.2.1. 在 PowerPC 上为 USB 闪盘分区

绝大多数 USB 盘的预设置都不能让 Open Firmware 从该盘进行引导,因此您需要为闪盘重新分区。 在 Mac 系统上,执行 mac-fdisk /dev/sda,用 i 命令初始化新的分区映射,然后使用 C 命令创建一个新的类型为 Apple_Bootstrap 的分区。 (要注意的是第一个分区总是分区映射本身。)然后键入

$ hformat /dev/sda2

注意使用正确的 USB 盘设备名称。 hformat 命令包含在 hfsutils Debian 包中。

为了能在 USB 闪盘引导后启动内核,我们要在 USB 闪盘上放入一个启动引导程序。yaboot 启动引导器可以被安装到 HFS 文件系统上,而且只需要编辑一个文本文件就能对其重新进行配置。 任何支持 HFS 文件系统的操作系统可以用来改变启动引导器的配置文件。

常用的 ybin 工具(随 yaboot 附带)并不能识别 USB 存储设备,因此您不得不手动安装 yaboot,这可以通过 hfsutils 工具来完成。用法如下:

$ hmount /dev/sda2
$ hcopy -r /usr/lib/yaboot/yaboot :
$ hattrib -c UNIX -t tbxi :yaboot
$ hattrib -b :
$ humount

再提醒一次,请确认您使用的是正确的设备名称。操作过程中一定不能挂载此分区。 程序会向分区中写入启动引导器,并使用 HFS 工具向其添加标记, 最终使得 Open Fireware 可以启动它。 完成以上操作之后,USB 盘的其他部分就可以用普通的 Unix 工具来处理了。

接下来就是挂接分区(mount /dev/sda2 /mnt)以及将下列文件从 Debain 文件库拷贝到闪盘上:

  • vmlinux (内核二进制文件)

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

  • yaboot.conf (yaboot 配置文件)

  • boot.msg (可选的启动信息)

  • 可选的内核模块

yaboot.conf 配置文件应该含有以下几行:

default=install
root=/dev/ram
message=/boot.msg
image=/vmlinux
        label=install
        initrd=/initrd.gz
        initrd-size=10000
        append="devfs=mount,dall --"
        read-only

请注意,在必要的时候,您可能需要增大initrd-size 参数的数值,这完全取决于您所使用的内存映像的大小。

4.4.2.2. 添加 ISO 映像

现在您需要把任意一个 Debian ISO 映像(businesscard、netinst 或者甚至是完全版)放入您的 USB 闪盘内(如果它装得下的话)。 这样的一个映像文件的后缀名必须是 .iso

如果您想直接通过网络安装而不使用 ISO 映像,当然就可以跳过上述步骤。 并且您必须要使用 netboot 目录中的初始化内存映像来取代来自 hd-media 的相同文件。这是因为 hd-media/initrd.gz 并不包含网络支持。

当您完成后,卸载 USB 闪盘(umount /mnt)并打开写保护。