首先說明,本文內容九成九是從 ( Garlic ) 貼過來的,
我只是記錄一下幹過這件事~~然後再加上一些我在實作時的記錄。
好~~內文正式開始:
PXE Server ~~ 搞起來的話,要安裝新的 Server 就不再是費時的工作了。
這個是 Garlic 教的,主要都是照Garlic的步驟,但~~雖然裝起來了,
還是不太清楚是怎麼一回事…。
反正就先記錄一下吧。
大概的觀念就是 Client 開機時透過網路 DHCP 取得 IP ,
然後 TFTP -> PXE ,選擇安裝項目,結束。
首先 PXE Server 要安裝 DHCP 及 TFTP 還有 NFS
# zypper in dhcp
# zypper in dhcp-server
# zypper in tftp
# zypper in nfs-utils
接著設定開機就啟動
# chkconfig nfsserver 35
# chkconfig dhcpd 35
然後因為 PXE Server 主要是拿來安裝用的,
所以一定要有很多的安裝光碟的 ISO 檔。
現在就來將這些 ISO 檔設定成開機就自動 Mount 。
# vi /etc/fstab
/home/PXE/linux/ISO/SLES-11-DVD-x86_64-GM-DVD1.iso /home/PXE/linux/SLES/SLES11_1 iso9660 defaults,loop,ro 0 0
/home/PXE/linux/ISO/SLE-11-SDK-DVD-x86_64-GM-Media1.iso /home/PXE/linux/SLES/SLES11_SDK_1 iso9660 defaults,loop,ro 0 0
/home/PXE/linux/ISO/SLE-11-SDK-DVD-x86_64-GM-Media2.iso /home/PXE/linux/SLES/SLES11_SDK_2 iso9660 defaults,loop,ro 0 0
(記得 mount 的目錄要先建好,然後下面內容放在檔案最後面比較好)
有了上面這些 ISO ,就要再設定 NFS,這樣子Client 在安裝時才能掛載。
# vi /etc/exports
/home/PXE/linux 10.0.0.0/8(ro,no_root_squash,async)
/home/PXE/linux/SLES/SLES11 10.0.0.0/8(ro,no_root_squash,async)
/home/PXE/linux/SLES/SLES11_SDK_1 10.0.0.0/8(ro,no_root_squash,async)
/home/PXE/linux/SLES/SLES11_SDK_2 10.0.0.0/8(ro,no_root_squash,async)
接著來設定 DHCP Server
# vi /etc/dhcpd.conf
其中 server-name, next-server 我是指到 tftp server 的 ip 去, filename 那個也是和 pxe 有關的設定
( By Garlic )
option domain-name "chingwei.net";
option domain-name-servers 10.2.17.104;
default-lease-time 3600;
max-lease-time 72000;
ddns-update-style none; ddns-updates off;
log-facility local7;
subnet 10.0.0.0 netmask 255.0.0.0 {
option routers 10.2.255.254;
option subnet-mask 255.255.0.0;
range dynamic-bootp 10.10.1.100 10.10.1.199;
server-name "10.10.1.1";
next-server 10.10.1.1;
filename "pxelinux.0";
}
# vi /etc/sysconfig/dhcpd
調整以下這行 (看你想要讓 eth0, eth1, ..... 來取得 ip)
DHCPD_INTERFACE="ANY" # 設成 ANY 就是都可以
( By Garlic )
然後是 TFTP Server
# vi /etc/xinetd.d/tftp (把 disable 從 yes 改成 no)
# mkdir /tftpbook
# /etc/init.d/xinetd restart
接著就是 PXE Server 的設定了
# cp /usr/share/syslinux/pxelinux.0 /tftpboot
# mkdir /tftpboot/pxelinux.cfg
# vi /tftpboot/pxelinux.cfg/default
default harddisk
# hard disk
label harddisk
localboot 0x80
# SLES11
label sles11
kernel install-linux/sles11/kernel
append initrd=install-linux/sles11/initrd ramdisk_size=65536
install=nfs://10.10.1.1/home/linux/SLES11_1
autoyast=nfs://10.10.1.1/home/linux/autoyast/esxi_sles11_s.xml
textmode=1
# rescue
label rescue
kernel linux
append initrd=initrd splash=silent rescue=1 showopts
# mediacheck
label mediachk
kernel linux
append initrd=initrd splash=silent mediacheck=1 showopts
# bios test
label firmware
kernel linux
append initrd=biostest,initrd splash=silent install=exec:/bin/run_biostest showopts
# memory test
label memtest
kernel memtest
implicit 1
gfxboot bootlogo
display message
prompt 1
timeout 600
# vi /tftpboot/message
Welcome to SUSE Linux Enterprise Server 11!
0fTo start the installation enter 'linux' and press .07
Available boot options:
harddisk - Boot from Harddisk (this is default)
sles11 - SuSE Linux Enterprise Server
nolapic - Installation - Local APIC Disabled
failsafe - Installation - Safe Settings
rescue - Rescue System
firmware - Firmware Test
memtest - Memory Test
'noacpi', 'nolapic', or 'failsafe' may be necessary on some tricky hardware.
Have a lot of fun...
# mkdir -p /tftpboot/install-linux/sles11
利用 mount -o loop sles11_disk1.iso /mnt, 把 mnt/boot/x86_64/loader 下面的 linux, initrd copy 到 /tftpboot/install-linux/sles11 下面的 kernel, initrd
接下來找到同網段的 server, 用網路開機, dhcp 起來後, 會看到一個要安裝什麼的選單 (就是剛才編輯的那個 message file), 打 sles11 後, 就會利用剛才寫在 default 檔案裏面的 boot option 去開機, 因為裏面寫的是 nfs install + autoyast, 所以就沒我們的事了, 過 20 分鐘再回來看, 應該就全部裝完了
以上內容 9成9 ( By Garlic ),我只是記錄一下幹過這件事~~
補充:
在 Client 可以下 showmount -e 10.10.1.1
看10.10.1.1 上有那些可以mount。
然後要Mount 就執行:
mount 10.10.1.1:/home/SLES11 /tmp/a
若要系統於開機時自動掛載 nfs 的檔案系統,可於 Client 端的 /etc/fstab 做如下設定:
# vi /etc/fstab
10.10.1.1:/home/sles11 /mnt/nfs nfs defaults 0 0