Next Previous Contents

3. 伺服器的设定

3.1 编译核心

RARP 支援编译到核心中是个好方法. 如果在你不想在启动时传递额外的参数给核心, 你必须将他编译到核心中. 但如果客户端不在同一个子网路区段中, 这个方式便没有作用.

工作站的核心则必须至少有下列的支援:

如果在你不想在工作站开机时传递参数给核心, 你必须把根目录设备设定成 0:255. 做法是用 mknod /dev/nfsroot b 0 255 建立一个装置控制档. 有了这个档案後, 你便可以把核心内的根目录路径以 rdev <kernel-image> /dev/nfsroot 指定.

3.2 建立根目录档案系统

复制档案系统

警告: 这些指令可能可以正常作用, 但并不表示可以在其他环境下作用. 对於建立根目录档案系统的较佳方式请参考 Ofer Maor <ofer@hadar.co.il> 所写的 NFS-Root-Client mini howto.

决定了根目录的放置路径後, 可以用下面的指令建立 mkdir -p <路径>, 接著执行
tar cClf / - | tar xpCf <路径> -.

如果你不用 LILO 启动核心, 根目录路径必须置於 /tftpboot/<IP 位置>. 如果你不喜欢这个位置, 你可以修改核心原始码中最顶层的 Makefile, 找到类似下面这行并加以修改
NFS_ROOT = -DNFS_ROOT="\"/tftpboot/%s\""
如果你改了这个, 你必须重新编译核心.

根目录系统所需的改变

首先清除不需要的档案, 并且检查 /etc/rc.d 的指令稿. 下面是一些重点:

将档案系统分享出去

要将根目录系统分享给工作站的指令请参照 exports(5). 在改变设定档後, 你必须重新起动 nfsd 与 mountd. 在 RedHat 下, 你只要执行 /etc/rc.d/init.d/nfs stop ; /etc/rc.d/init.d/nfs start 就可以了.

设定 RARP

在网路上必须有一个 RARP 伺服器. 如果启动时同时没有设定 nfsroot 参数, 则 RARP 伺服器必须设在 NFS 伺服器上. 通常都将 RARP 伺服器设在 NFS 伺服器上. 要完成这个设定, 你的核心必须要有 RARP 支援.

并且必须执行下面的指令 (通常放在 /etc/rc.d 里面):

/sbin/rarp -s <ip 位置> <硬体位置>

其中

ip 位置

是工作站的 IP 位置, 而

硬体位置

则是工作站网路卡的乙太网路位置.

例如: /sbin/rarp -s 131.131.90.200 00:00:c0:47:10:12

你也可以使用符号名称来取代 IP 位置, 但伺服器必须能找到该名称所对应的 IP 位置. (设定在 /etc/hosts 中, 或是经由 DNS 查询)

数定 BOOTP

要设定 BOOTP, 你必须编辑 /etc/bootptab. 请参阅 bootpd(8) 以及 bootptab(5) 说明页.

找寻硬体位置

如果我不知道网路卡的硬体位置, 我该如何查询?


Next Previous Contents