17.5. 無磁碟作業

Contributed by Martin Renters .

有了netboot.com/netboot.rom 這兩個檔案,客戶端不需要磁碟機就能經由網路啟動並執行FreeBSD, 而且從2.0版開始就可以使用本地交換區,同時仍然能以NFS做為交換區。

目前支援的乙太網路卡有:Western Digital/SMC 8003, 8013, 8216與相容卡;NE1000/NE2000與相容卡(必須重新編譯)

17.5.1. 安裝步驟

  1. 找一部機器作為伺服器,這部機器的磁碟必須有足夠的空間存放 FreeBSD 2.0,並且提供bootp、tftp和NFS服務。經過測試的機器:

    • 執行HP-UX 9.04(以上)的HP9000/8xx(pre 9.04無法使用)

    • Sun/Solaris 2.3。(需要先取得bootp)

  2. 設定bootp服務提供客戶端IP、閘道(gateway)和子網路遮罩(netmask)。

        diskless:\
                :ht=ether:\
                :ha=0000c01f848a:\
                :sm=255.255.255.0:\
                :hn:\
                :ds=192.1.2.3:\
                :ip=192.1.2.4:\
                :gw=192.1.2.5:\
                :vm=rfc1048:
  3. 設定TFTP服務(與bootp服務同一臺伺服器)提供啟動資訊給客戶端, 檔名的格式是 cfg.X.X.X.X (或/tftpboot/cfg.X.X.X.X), 其中X.X.X.X是客戶端的IP位址。 檔案的內容可以是任何有效的netboot指令,在2.0中, netboot有下列的指令:

    help顯示說明
    ip X.X.X.X顯示/設定客戶端IP位址
    server X.X.X.X顯示/設定bootp/tftp伺服器的位址
    netmask X.X.X.X顯示/設定子網路遮罩
    hostname name顯示/設定主機名稱
    kernel name顯示/設定kernel名稱
    rootfs ip:/fs顯示/設定根檔案系統(root filesystem)
    swapfs ip:/fs顯示/設定交換區檔案系統(swap filesystem)
    swapsize size顯示/設定交換區檔案系統(swap filesystem)
    diskboot使用磁碟開機
    autoboot繼續執行啟動程序
    trans on|off開啟/關閉transceiver功能
    flags bcdhsv設定啟動旗標

    一個典型的設定檔:

        rootfs 192.1.2.3:/rootfs/myclient
        swapfs 192.1.2.3:/swapfs
        swapsize 20000
        hostname myclient.mydomain

    一個使用本地交換區的設定檔:

        rootfs 192.1.2.3:/rootfs/myclient
        hostname myclient.mydomain
  4. 確定你將NFS伺服器裡做為根(及交換區)檔案系統的目錄開放給客戶端, 並且讓客戶端能以root的身份存取這些檔案系統,一個用於FreeBSD的典型 /etc/exports檔如下:

        /rootfs/myclient -maproot=0:0 myclient.mydomain
        /swapfs -maproot=0:0 myclient.mydomain

    HP-UX則是:

        /rootfs/myclient -root=myclient.mydomain
        /swapfs -root=myclient.mydomain
  5. 如果使用NFS(完全無磁碟作業),請用dd 指令為客戶端建立交換檔。如果在swapfs指令 加了參數/swapfs,並且指定大小為20000, 就像上面的範例,客戶端的交換檔檔名就是 /swapfs/swap.X.X.X.X, 而X.X.X.X則是客戶端的IP位址。例如:

        # dd if=/dev/zero of=/swapfs/swap.192.1.2.4 bs=1k count=20000

    此外,當客戶端開始使用交換檔之後, 交換檔裡可能會被存放敏感的資料, 所以記得為交換檔設定讀取及寫入的權限,防止未經許可的存取:

        # chmod 0600 /swapfs/swap.192.1.2.4
  6. 在客戶端做為根檔案系統的目錄中(如上例中的 /rootfs/myclient)將根檔案系統解開。

    • HP-UX系統:HP9000/800系列的伺服器應該執行HP-UX 9.04 或更新的版本,較舊的版本無法在NFS上建立設備檔。

    • /rootfs/myclient中解開 /dev時, 注意某些系統(HPUX)不會建立設備檔,不過FreeBSD沒有問題。 因此在第一次啟動時必須進入單一使用者模式 (在啟動時按Control-C鍵), cd /dev然後執行 sh ./MAKEDEV all指令來修正這個問題。

  7. 在客戶端執行netboot.com指令或是用 netboot.rom檔案製作EPROM。

17.5.2. 共享//usr檔案系統

雖然我正讓每個客戶端共享個別的/usr/檔案系統,但是目前並沒有公認正確的做去, 如果任何人對於共享//usr 檔案系統有更好的建議,請通知我或FreeBSD documentation project mailing list

17.5.3. 編譯netboot

如果要使用NE1000/2000,必須修改 /sys/i386/boot/netboot/Makefile 中的組態並且重新編譯。請參考檔案中的註解。