依據 Linux 的 PXE (透過 syslinux + bootonly.iso) 的說明 https://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-server 與 nfs-common
- Apache (Web) 服務 套件名稱 apache2
- FTP 服務 套件名稱 vsftpd
FressBSD 8 是個分界點,PXE 設定會不一樣,這邊就分開討論.
-
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 差不多.
TFTProot@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
設定上沒有錯誤就可以開始安裝畫面.
設定成 harddisk 時則不能開機.LABEL 1 linux memdisk append initrd=bootonly.iso harddisk raw
-
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.
這幾版的 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 提供的 PXE 前導程式 pxeboot 方式請參考 https://benjr.tw/95202
2 thoughts on “FreeBSD Pxeboot & install (syslinux)”