Diskless Nodes HOW-TO document for Linux

作者: Robert Nemkin [MAILTO] [email protected]

譯者: 謝崑中 HSIEH Kun-Chung

v0.0.3版, 1996年 9月12日 最新版本:v22.7, 23 May 2002

轉為 Wiki: Ping (ping 'at' pingyeh 'dot' net), 2003 年 11 月 27 日


本文件在敘述如何設立一個無磁碟 Linux 機器。著作權為 Robert Nemkin 所有。著作權條款依照 GPL。我想要謝謝 Bela Kis [MAILTO] [email protected] 將這份文件翻譯成為英文。



  1. 修改
  2. 如何設立一個無磁碟的 Linux 機
  3. 相關文章
  4. 硬體
  5. 基本概念
    1. 設定個人電腦
    2. 在伺服器上設定 bootpd
    3. 在伺服器上建構 bootpd
    4. 瞭解 tftp
    5. 在遠端伺服器上設定一個小型的 Linux 建構
    6. 建構 tftp 伺服器
    7. 最後工作
  6. 記憶體以及磁碟空間要求; 速度
  7. 可能的錯誤
  8. 本文件中的錯誤以及更詳細的解說

1. 修改

2. 如何設立一個無磁碟的 Linux 機

本文件在敘述如何設立一個無磁碟 Linux 機器。有時候我們可能需要在一個既無硬碟 亦無軟碟機的個人電腦上執行 Linux 。如果有個網路, 其他的 Unix 系統有著 bootp, tftp, NFS 伺服器,而我們又有一個 eprom 燒錄機,那麼我們有辦法在建立一個無任何磁碟機的 Linux系統了。

3. 相關文章

4. 硬體

在本文所提到的都是以下面的建構來做的

5. 基本概念

基本概念如下:個人電腦會經由 bootp 協定從啟動伺服器中來取得它的 IP 位址。 用 0.0.0.0 為初始 IP 位址,而它的核心程式會經由 tftp 協定。

跳過區段的啟動 (經由路由器router) 並不是個簡單問題,所以,不是將伺服器以及無磁碟機的機器放置在同一個網路 區段,就只有建構一個 UDP 輔助位址在你的 router 到伺服器的位址上。細節請參考你的 router 產器手冊。

以下是我們的步驟

5.1. 設定個人電腦

取得 nfsboot 套件 (可從你較喜歡的 linux mirror 鏡射站的 /pub/Linux/system/Linux-boot 目錄取得)。它包含了一個給 wd8013卡可直接燒錄用的 booteprom 映像檔。

還有其他方法可以準備個人電腦部份:

如果你選擇的是第二者,你必須使用 dd 命令來將這個映像檔寫入一張軟碟片裏。

這個映像檔包含了 bootp 以及 tftp 客戶端程式。 你也需要準備一個 linux 核心程式碼,它含有 nfs-root 選項。

隨便你要不要建構區塊設備 (軟碟機或硬碟機) 的支援,但你必須建構 tcp/ip 支援、 wd 乙太網路卡支援、 nfs 檔案系統支援。然後重新編譯核心程式。

5.2. 在伺服器上設定 bootpd

它可以在 bootpd-2.4.tar.gz套件中找到 (可從你較喜歡的 linux mirror 鏡射站的 /pub/Linux/system/Network/boot.net 目錄內)。取得這個套件, 編譯並安裝它。如果你其他的 Unix 機器也是用 Slackware Linux 的,那麼標準的供應版本就 有 bootpd 了,所以你可以跳過這部份。 daemon 可以直接發出命令來執行

或是使用 inetd,但你需修改:

5.3. 在伺服器上建構 bootpd

由先, bootpd 有個叫 bootptab 的建構檔,它通常被放在 /etc 內。你必須修改 它,加上你的無磁碟機器的閘道 IP 位址、 dns 伺服器,以及乙太網路位址(es)。 範例如下 /etc/bootptab:

global.prof 是 host 項目的一般樣本,其中

之後,每一台機器應該有下面這行

5.4. 瞭解 tftp

TFTP (Trivial File Transfer Protocol) 是一個檔案傳輸協定,就像 ftp 一樣,但 它比比較簡化,因此可以容易地在 EPROM 裏來編碼。 TFTP 的使用方法有二種:

幾乎每一個 Unix 實作都包含 tfpt 伺服器,也許你並不需要自己安裝一個。

5.5. 在遠端伺服器上設定一個小型的 Linux 建構

這包含 Slackware供應版內的 a, ap, n, 及 x 部份。要安裝更多的套件也可以;但 是上面的套件已足夠一個無磁碟 X 終端機的需求了。首先你需要一個已在運轉的 Linux 系統。在遠端機器裏找一個磁碟空間並 export 它成為可讀寫並掛上它到 Linux 機器的檔案系統上的某一處 (例如 /mnt)。開始 Linux 設定並改變root 選項從 / 變為 /mnt。然後設立如上面所說的套件,如果你只是要執行一個無磁碟的 Linux 那 麼就不需要做其他改變。另一方面,如果你計畫使用超過一個以上的無磁碟機器, 那麼上面的設定就需要些許的修改,因為有些檔案以及目錄必須只有機器本身使用。 我們可以以移開 /usr 目錄(它包含非私人的資料)的方式跳過這個問題, 然後建立一個分開的子目錄給每一個無磁碟機器。例如,如果 /export/linux/machine1 被掛在 /mnt 上,那麼在初始設定後目錄結構會像這樣

改變後你會有

現在為其他的機器建立目錄。從現在開始我們假設你的無磁碟機器分別叫做 machine1、machine2、 machine3等等; 使用以下的 bash 命令手稿來設立其他的目錄

然後做下列的 export:

如下

下面範列是依照 SunOs 4.1.3 的 exports 檔案的語法來做:

請不要忘了執行 exportfs -a

5.6. 建構 tftp 伺服器

現在該是建構 tftp 伺服器的時候了。如果你不需要一個安全的 tftp 那很簡單, 因為你的客戶端已經可以從 /export 目錄來啟動。

如果一個安全的 tftp 被採用,那麼你可以在 /tftpboot 目錄下做個完整的 /export/linux 目錄結構。 (用一個實體核心程式及連結給其他機器的符號連結), 或是讓 /export 目錄成為安全的 tftpd 的根目錄。或者如果你有一另外的 tftpboot 目錄,那麼,同樣地,你只需要原來的目錄結構,然後用一個實體核心程式來 符號連結其他機器) 。 你可以執行下列命令來完成這個設定:

然後執行下面:

5.7. 最後工作

最後,你必須插入

的第一行。在這裏 machinex 指的是 machine1, machine2等等。

6. 記憶體以及磁碟空間要求; 速度

我只在 Slackware 2.3上測試過;對於其他的供應商(Linux)套件或版本,下面的數字可能會不同。

7. 可能的錯誤

8. 本文件中的錯誤以及更詳細的解說

譯者按: 若您發現本文件內容有翻譯不順暢或錯誤的地方,請您來信告訴我,以做更正,謝謝。

[WWW] [email protected]

last edited 2004-12-25 08:45:55 by PingYeh