要准备启动盘,我们只需要内核、syslinux
和一张 1.44MB 软盘。Syslinux
是一个微小的启动加载器,专门设计用于启动内核并通过软盘将其命令行参数传递给内核。正如我们将看到的,它也很容易配置。
始终选择最新的内核进行构建。截至撰写本文时(2001 年 9 月 12 日星期三 17:28:22),最新的内核是 2.4.9。构建旧版本的内核只能节省您更新必要程序的时间。此外,请确保您拥有 /usr/src/linux/Documentation/Changes
中描述的程序版本。使用要服务的基本系统编译内核是个好主意。可以根据您的驱动程序需求构建内核,但它必须包含以下选项
Network device support ---> Select your card driver
)。Networking options ---> IP: kernel level autoconfiguration ---> IP: BOOTP support
)。File systems ---> Network File Systems ---> NFS file system support
和 File systems ---> Network File Systems ---> NFS file system support ---> Root over NFS
)。Block devices ---> Loopback device support
)。base/lib/modules
目录。新内核位于 /usr/src/linux/arch/i386/boot
。您还必须为内核设置根设备。您必须使用 rdev
程序。执行以下命令
mknod /dev/boot255 c 0 255
rdev /path/to/kernel/file /dev/boot255
现在,我们必须使用 syslinux
程序。将软盘插入第一个软驱并运行
syslinux -s /dev/fd0
挂载软盘并注意 syslinux 写入了 2 个文件:syslinux.cfg
和 ldlinux.sys
。第二个是启动加载器可执行文件。syslinux.cfg
是程序配置文件。该文件的典型结构如下
default linux
append init=/sbin/init root=/dev/nfs
ip=:195.251.160.10:195.251.160.254:255.255.255.0:::'bootp'
nfsroot=195.251.160.10:/usr/local/linux/ws/\%s vga=0x318
prompt 1
timeout 30
readinfo 2
默认语句是要启动的内核名称,append 是要传递给内核的命令行。现在,您必须将您创建的内核复制到软盘并将其重命名为 'linux'。
要启动无盘客户端,其内核必须具有以下命令行选项
init=/sbin/init
:如果您的 init 程序在其他位置,只需更改路径。root=/dev/nfs
:一个别名,告诉内核它必须通过 nfs 挂载其根目录ip
:此命令行选项告诉内核如何获取其 IP 地址以及 NFS 服务器的地址nfsroot
:告诉内核挂载此目录作为其根目录。% 是主机 IP 地址的别名。vga
:如果您希望能够在帧缓冲模式下启动 X windows,请切换到帧缓冲模式。给定的模式代表 1024x768@16M 色。所有这些选项都在 /usr/src/linux/Documentation/nfsroot.txt
中详细讨论。阅读它并根据您的需要调整给定的命令行。
现在您已经创建了启动盘,您已准备好测试您构建的系统。启动 NFS 和 BOOTP 服务,并使用启动盘启动客户端。没有人能第一次就成功。所以请继续下一节!