3 分鐘設好 PXE Boot on FreeBSD

用了個奇怪的標題…(汗)

  1. 安裝 isc-dhcpd
  2. 打開 inetd
    # echo ‘inetd_enable=”YES”‘ >> /etc/rc.conf
  3. 打開 tftpd
    # vi /etc/inetd.conf
    拿掉 tftpd 前面的註解
    # /etc/rc.d/inetd start
  4. 下載 SYSLinux 並解開
    http://syslinux.zytor.com/download.php
  5. 建立 tftpd 的根目錄
    # mkdir /tftpboot
  6. 複製 pxelinux.0, memdisk, menu.c32 到 /tftpboot
    # cd syslinux-3.31
    # cp pxelinux.0 /tftpboot
    # cp com32/modules/menu.c32 /tftpboot
    # cp memdisk/memdisk /tftpboot
    找不到的話可以用 find 找
  7. 設定 dhcpd.conf
    allow booting;
    allow bootp;   
    option domain-name "example.org";  
    option domain-name-servers 10.0.0.1;    
    subnet 10.0.0.0 netmask 255.255.255.0 {
            range 10.0.0.128 10.0.0.200;
            option routers 10.0.0.1;
            next-server 10.0.0.1;
            filename "pxelinux.0";  
    }
    
  8. 打開 dhcpd
    # echo ‘dhcpd_enable=”YES”‘ >> /etc/rc.conf
    # /usr/local/etc/rc.d/dhcpd start
  9. 設定開機選單
    # mkdir /tftproot/pxelinux.cfg
    # vi /tftproot/pxelinux.cfg/default
  10. # 預設用 menu.c32 這個核心來啟動,即出現選單
    DEFAULT menu.c32 
    # 不要用 prompt 的方式,即啟用選單
    PROMPT 0
    # 不要該使用者有選擇權
    # 例如更改啟動參數或直接離開選單
    ALLOWOPTIONS 0 
    # 選單的提示時間,50 指 5 秒
    TIMEOUT 50 
    
    # 選單的標題
    MENU TITLE PXELinux Menu 
    
    # 名稱
    LABEL freebsd54
    # 選單上顯示的名稱 
    MENU LABEL BSD
    # 用來啟動影像檔的核心,pxelinux提供 
    kernel memdisk 
    # 要載入的影像檔及參數
    # 此例為將 bsd 的 bootonly CD 
    # 所做成的 PXE 影像檔 (註一)
    append initrd=fbsd61.img c=812 h=255 s=63 
    
    LABEL local
    # MENU DEFAULT 是指預設選項
    MENU DEFAULT LOCAL 
    # 直接以硬碟開機
    LOCALBOOT 0 
    
    LABEL dos
    MENU LABEL DOS
    kernel memdisk
    # 將磁片做成影像檔後,直接放進來就可以用了
    # 不用加參數,下面的也都是直接用磁片所做成的影像檔
    append initrd=dos.img 
    
    LABEL ghost2003
    MENU LABEL ghost2003
    kernel memdisk
    append initrd=ghost2003.img 
    

參考資料:
http://forum.rackred.com/showthread.php?t=2 (註一)
http://blog.rackred.com/2006/05/25/pxe-boot-freebsd-6x/
http://syslinux.zytor.com/pxe.php
http://phorum.study-area.org/viewtopic.php?t=40863