4.4. 为从 USB 闪盘引导准备文件
您需要一台运行支持 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-fdisk 的 C
命令在您的 USB 闪盘上创建一个类型为“Apple_Bootstrap”的分区, 然后直接解开映像文件到:
# zcat boot.img.gz > /dev/ |
当然,这会删除设备上现存的所有内容,因此请仔细检查您使用的是正确的 USB 闪盘设备名称。
然后,挂载 USB 闪盘(mount
),它上面应该已经具有 一个 HFS 文件系统 ,您再将一个 Debian netinst(网络安装) 或 businesscard(名片) ISO 映像拷贝到盘上。请注意文件名必须以 /dev/sda2
/mnt.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/ |
注意使用正确的 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
)并打开写保护。