*2011-02-14 10:23 修正部份資料,TFTP 改用 tftp-hpa 解決 TFTP Timeout 的問題!
*2011-02-05 10:25 修正部份資料,新增改用 NFS 來開機,快多了!
*2011-02-04 10:50 修正部份資料,改用 Ports 裡的 Syslinux 解決了開機不會倒數的問題
這是我這次實作的環境,簡略說明一下好了
平常管理電腦教室時,我們希望做到大量佈署安裝的效果,只要管理好 Source 機器,把新的 Image 扔到 Server 上就可以很方便同步給所有 Client
為了達到這效果,我選用了國人所開發的 Clonezilla,也就是所謂的再生龍 ~ 不過我是把 Clonezilla Live 光碟內的東西放進 PXE Server 來開機
在這裡面我安裝了 DHCP , TFTP , PXE , Clonezilla , NFS 這幾個服務
[ 安裝 DHCP Server ]
# cd /usr/ports/net/isc-dhcp31-server
# make install clean
這是我的配置設定,在 /usr/local/etc/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style none;
default-lease-time 86400;
max-lease-time 172800;
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
option domain-name-servers 168.95.1.1,168.95.192.1;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.200;
option subnet-mask 255.255.255.0;
# add for pxe boot
filename "pxelinux.0";
next-server 192.168.0.2;
# option root-path "/tftpboot/";
}
接下來在 /etc/rc.conf 加入這幾行
#
# DHCP
#
dhcpd_enable="YES"
dhcpd_ifaces="em0"
dhcpd_flags="-q"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
好了之後就可以啟動 DHCP Server 了
# /usr/local/etc/rc.d/isc-dhcpd start
[ 安裝 TFTP Server ]
先建立 tftp 啟動的目錄
# mkdir /tftpboot
到 Ports 安裝 tftp-hpa
# cd /usr/ports/ftp/tftp-hpa/
# make install clean
直接編輯 /etc/inetd.conf 找到 tftp 附近,加入下面一行
tftp dgram udp wait root /usr/local/libexec/in.tftpd in.tftpd -v -s /tftpboot
在 /etc/rc.conf 加入一行即可
inetd_enable="YES"
最後我們來啟動它
# /etc/rc.d/inetd start
[ 安裝 PXE Server ]
接下來要來設定 PXE 環境,首先我們先要安裝 SYSLinux 這個東東
# cd /usr/ports/sysutils/syslinux
# make install clean
安裝好之後,我們要 copy 3 個檔案出來到 /tftpboot 的目錄裡
# cd /usr/local/share/syslinux
# cp pxelinux.0 /tftpboot
# cp menu.c32 /tftpboot
# cp memdisk /tftpboot
接下來要建立一個目錄 pxelinux.cfg,並且在裡面產生一個檔案 default
# cd /tftpboot
# mkdir pxelinux.cfg
# cd pxelinux.cfg
# touch default
default 的檔案內容如下
DEFAULT menu.c32
PROMPT 0
ALLOWOPTIONS 0
#開機選單為 5 秒,可自行調整
TIMEOUT 50
#選單的 Menu
MENU TITLE PXEBoot Menu
#第一個選單內容,預設定從 Local Disk 開機
label Local Disk
MENU DEFAULT LOCAL
LOCALBOOT 0
#第二個選單內容,選這個將從 PXE Server 透過 HTTP 方式將 Clonezilla Live Image 下載至電腦開機
label Clonezilla
MENU LABEL Clonezilla
MENU PASSWD clonezilla
TEXT HELP
This mode will allow you run Clonezilla to Backup/Restore OS!
ENDTEXT
kernel vmlinuz
append initrd=initrd.img boot=live config noswap nolocales edd=on nomodeset prompt ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="NONE" ocs_live_batch="no" ocs_lang="zh_TW.UTF-8" vga=791 ip=frommedia nosplash netboot=nfs nfsroot=192.168.0.2:/clonezilla
#第三個選單內容,加入SPFDISK ( 這個 IMG 我是從 EZGhost 光碟裡面找來的 )
label SPFDISK
MENU LABEL SPFDISK
MENU PASSWD spfdisk
kernel ./memdisk
append initrd=./tools/spfdisk.img
注意 append 那段是一整行喔,要連續輸入 ! 不要分行嘿 !
PXE 就弄到這裡收工了
[ 把 Clonezilla Live 放進 PXE ]
首先我們要先去下載 Clonezilla Live,目前我所使用的版本是 clonezilla-live-1.2.6-59-i686.iso ... 根據國網的說明,版本要 1.2.0-25 之後才可以放在 PXE 上面
下載回來之後把這個 ISO 檔放到 Server 上面,我們要裡面一些檔案 copy 到 PXE 開機讀取的地方
# mdconfig -a -t vnode -f /path/to/clonezilla-live-1.2.6-59-i686.iso
# mkdir /mnt/clonezilla
# mount -r -t cd9660 /dev/md0 /mnt/clonezilla/
# cp /mnt/clonezilla/live/initrd.img /tftpboot
# cp /mnt/clonezilla/live/vmlinuz /tftpboot
把 Clonezilla Live 的檔案 Copy 出來到 /clonezilla,等等我們用 NFS 開機時就會從這讀取檔案
# mkdir /clonezilla
# cd /clonezilla
# cp -r /mnt/clonezilla/* .
相關的參數就在我們剛才設定的 default 檔案裡,而不同的版本參數可能會有所不同,此時請參考 Clonezilla Live 解開目錄 syslinux/syslinux.cfg 這個檔案
[ 設定 NFS Server ]
首先先去 /etc/rc.conf 加入這三行
#
# NFS
#
rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_enable="YES"
然後設定一下 NFS 所要分享的路徑,在 /etc 下面建一個 exports,內容如下
第一個 /clonezilla 目錄是用來存放我們開機要載入的相關檔案,第二個 /clonezillaimage 是用來存放未來要放的 image,當然路徑都可以自己訂
/clonezilla /clonezillaimage -maproot=root -network 192.168.0.0 -mask 255.255.255.0
啟動我們相關服務吧 ! ( 或重開機也可以 )
# /etc/rc.d/rpcbind start
# /etc/rc.d/mountd start
# /etc/rc.d/nfsd start
確認一下 NFS 是否有順利起來,若有看到分享出來的就 OK 了
# showmount -e
Exports list on localhost:
/clonezillaimage Everyone
/clonezilla Everyone
[ Client PC 透過 Network 開機 ]
找一台網卡有支援 PXE 開機的 PC 開看看,若沒有問題的話應該可以透過 PXE boot 看到選單,只要選 Clonezilla 就可以用再生龍囉 !
[ 後續說明 ]
目前的進度是將上述環境都弄好,後續概述一下
原則上就是用 Clonezilla Live 做 Source 機的 Image,把做好的 Image 放到 FreeBSD 上,看是要用 Samba or SSH or NFS 的方式來掛載都可以
這樣就可以達到大量佈署電腦教室管理的成效了 !
[ 參考資料 ]
Fancy World - [note]PXE on FreeBSD
Jui-Nan Lin’s Blog - 3 分鐘設好 PXE Boot on FreeBSD
不自量力 の Weithenn - 【FreeBSD】DHCP-發放 IP 資訊給 Lan User
留言列表