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