*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

Freebsd上架设PXE Boot服务及CloneZilla

Clonezilla Live對Windows系統的備份與還原

arrow
arrow
    全站熱搜

    Bojack 發表在 痞客邦 留言(2) 人氣()