3,407 瀏覽數

FreeBSD Pxeboot & install (syslinux)

依據 Linux 的 PXE (透過 syslinux + bootonly.iso) 的說明 http://benjr.tw/83 來試試看 FreeBSD Pxeboot & install

這次的 PXE Server 是裝在 Ubuntu 14.04 Desktop 的版本 上, 所需套件如下:
遠端連線 所需套件

  • SSH 服務 套件名稱 openssh-server

PXE 所需套件

  • tftp 服務 套件名稱 tftpd-hpa
  • DHCP 服務 套件名稱 isc-dhcp-server

安裝分享目錄 所需套件

  • NFS 服務 套件名稱 nfs-kernel-servernfs-common
  • Apache (Web) 服務 套件名稱 apache2
  • FTP 服務 套件名稱 vsftpd

FressBSD 8 是個分界點,PXE 設定會不一樣,這邊就分開討論.

  1. FreeBSD 8

    設定方式跟 Linux 的 PXE boot 類似,參考了 IT 水電工 ,主要是透過 syslinux + bootonly.iso 的方式來架設 freebsd8 pxe server

    首先先來看看這 bootonly.iso 是什麼? 在 FreeBSD 官方網站 https://www.freebsd.org/where.html 除了可以安裝的光碟外,還有 bootonly.iso 檔案,不過這光碟只能開機,也可以當 LiveCD 但是你要把它安裝到硬碟時還需要額外的安裝檔案,所以這很適合用於 PXE 開機來使用.

    設定跟一般 Linux PXE 差不多.

    TFTP

    root@benjr:~# # cat /etc/default/tftpd-hpa
    TFTP_USERNAME="tftp"
    TFTP_DIRECTORY="/var/lib/tftpboot"
    TFTP_ADDRESS="[::]:69"
    TFTP_OPTIONS="--secure"
    

    DHCP

    root@benjr:~# cat /etc/dhcp/dhcpd.conf
    default-lease-time 6000;
    max-lease-time 72000;
    option domain-name-servers 168.95.1.1;
    ddns-update-style none;
    ignore client-updates;
    allow booting;
    allow bootp;
    subnet 172.16.0.0 netmask 255.255.255.0 {
    range 172.16.0.10 172.16.0.20;
    #option broadcast-address 172.16.0.255;
    option routers 172.16.0.1;
    option subnet-mask 255.255.255.0;
    next-server 172.16.0.1;
    filename "pxelinux.0";
    }
    

    PXELinux

    root@benjr:~# cat /var/lib/tftpboot/pxelinux.cfg/default
    default 0
    TIMEOUT 300
    PROMPT 1
    display msgs/boot.msg
    
    label 0
    localboot 1
    
    LABEL 1
    kernel memdisk
    append iso initrd=bootonly.iso
    

    網路上查到關於 pxelinux.cfg/default 的方式,只差在 append ,下面幾種設定都可以 PXE 開機.

    # vi /var/lib/tftpboot/pxelinux.cfg/default
      LABEL 1
      linux memdisk
      initrd bootonly.iso
      append iso raw
    
      LABEL 1
      linux memdisk
      append initrd=bootonly.iso iso raw
    
      LABEL 1
      linux memdisk
      append initrd=bootonly.iso iso bigraw
    

    設定上沒有錯誤就可以開始安裝畫面.
    freeBSD_bootonly05
    設定成 harddisk 時則不能開機.

      LABEL 1
      linux memdisk
      append initrd=bootonly.iso harddisk raw
    
  2. FreeBSD 9 , 10

    利用剛剛的方式在 FreeBSD 9 , 10 開機後會遇到下面的錯誤訊息.

    mounting root: waiting for device /dev/iso9660/10_3_RELEASE_AMD64_B0 ...
    Mounting from cd9660:/dev/iso9660/10_3_RELEASE_AMD64_b0 fail with error 19.
    

    freeBSD_bootonly02
    freeBSD_bootonly03
    這幾版的 bootonly.iso 光碟一定會去讀取光碟,但我們從 PXE 開機,並沒有光碟存在,所以 PXE 開機後就無法繼續下去了.

    Trying to mount root from cd9600:/dev/iso9660/10_3_RELEASE_AMD64_B0 [ro]...
    mountroot: waiting for device /dev/iso9600/10_3_RELEASE_AMD64_BO [ro]...
    

    網路上都推薦修改過的 bootonly.iso – mfsbsd http://mfsbsd.vx.sk/ ,該光碟是從原本的 FreeBSD bootonly.iso 光碟改成可以從網路開機的 LiveCD.

    設定方式與剛剛 FreeeBSD 8 類似.只是 pxelinux.cfg/default 檔案改成如下.

    # vi /var/lib/tftpboot/pxelinux.cfg/default
    default 0
    TIMEOUT 300
    PROMPT 1
    display msgs/boot.msg
    
    label 0
    localboot 1
    
    LABEL 1
    kernel memdisk
    append iso initrd=mfsbsd-10.3-RELEASE-amd64.iso
    

    開機後需要輸入預設的 Root password : mfsroot
    進入會進入 LiveCD 的環境,直接執行 # bsdinstall 即可進入安裝畫面.

    # bsdinstall
    

    freeBSD_bootonly04

另外一種方式是透過 FreeBSD 提供的 PXE 前導程式 pxeboot 方式請參考 http://benjr.tw/95202

2 Replies to “FreeBSD Pxeboot & install (syslinux)”

  1. 自動參照通知: FreeBSD Pxeboot 常見問題 – Benjr.tw

  2. 自動參照通知: FreeBSD Pxeboot & install (pxeboot) – Benjr.tw

發表迴響