我們知道RH中的Kickstart可以實現RedHat光盤啟動后的自動安裝,如果把ks.cfg及RPM安裝文件考到一臺HTTP或NFS服務器上,就可以實現網絡自動安裝,但還是需要RedHat的啟動盤來啟動機器,但加上DHCP、TFTP和PXElinux及支持PXE的網卡,噢,那就可以實現遠程啟動了。也就是說,有了上面的條件,你只要給一臺支持PXE的客戶機上電,然后再打入一個設置好的命令就可以安裝好一RedHat臺機器了。
實現上面安裝的過程是這樣的:PXE網卡啟動------DHCP服務器------獲得IP------從TFTP上下載pxelinux.0、vmlinuz、initrd------啟動系統------通過PEXlinux去HTTP下載ks.cfg文件-----跟據ks.cfg去HTTP下載RPM包及安裝系統------完成安裝。
具體實現的過程是這樣的:
1、 配制一個HTTP服務器(當然也可以是NFS、FTP)及kickstart文件:
1) 如何配HTTP我就不說了,配好后,在HTTP的DocumentRoot目錄下(一般為/var/www/html)建一個rh9目錄,用于放RedHat9的安裝文件。把RedHat9******張安裝盤的RedHat目錄及下面的內容全部考到這個目錄下,把第二、第三張盤的RPMS目錄下的rpm包考到rh9/RedHat/RPMS目錄下,完成安裝文件的考貝。service httpd restart開啟HTTP服務。可以在瀏覽器內打入:http://192.168.168.6/rh9看一下,是不是能看到RedHat目錄。
2) 用redhat-config-kickstart命令做一個ks.cfg文件,注意在“安裝方法”選項中 選HTTP,在“HTTP服務器:”中打入HTTP服務器的IP地址,在“HTTP目錄:”中打入rh9,其它的我就不多說了。做好后把這個ks.cfg文件考到HTTP服務器的DocumentRoot/rh9目錄下。
3) 在一臺機器上做一下測試(注意:因為是自動安裝,這臺機器的上的數據可能全部被格掉喔)。用光盤啟動機器,在boot:提示符下打入:linux ks=http://192.168.168.6/rh9/ks.cfg,看一下是不是能實現自動安裝,如果能,OK我們一半的工作已經做好了。
2、 配制DHCP、TFTP、和PXElinux。(當然這些服務可以和HTTP放在一臺服器上)
1) 做一臺TFTP服務器太容易了,用rpm –qa | grep tftp看一下tftp有沒安裝,沒有的話安裝一下。用chkconfig tftp on 打開xinetd代理的tftp服務。
2) 做一臺DHCP服務器,這是關鍵。下面是我的dhcp.conf文件:
ddns-update-style interim;
ignore client-updates;
allow booting; #定義可以PXE 8) 8) 啟動
allow bootp; #定義支持boottp
subnet 192.168.168.0 netmask 255.255.255.0 {
option routers 192.168.168.230; #定義默認網關
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.168.6; #定義nameServer
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.168.12 192.168.168.254;
default-lease-time 21600;
max-lease-time 43200;
# Group the PXE bootable hosts together 定義可以PEX啟動的主機的組
group {
# PXE-specific configuration directives...
next-server 192.168.168.6; #TFTPServer的IP
filename "/pxelinux.0";#pxelinux loader文件位置
# You need an entry like this for every host
# unless you're using dynamic addresses #可PEX啟動的主
#機的IP與MAC地址的邦定
host wy {
hardware ethernet 00:00:E2:89:9B:DB;
fixed-address 192.168.168.128;
}
}}
紅色的部分為在DHCP中支持TFTP及PXElinux的所要添加的部分。service dhcpd restart 開啟DHCP服務。
3) 配制PEXlinux。要遠程啟動機器,就必須要有PXElinux這個由syslinux、isolinux派生出來的,支持PXE的bootloader,它可以實現遠程通過PEX啟動一臺機器。把/usr/lib/syslinux/pxelinux.0考到/tftpboot目錄下,把RedHat9******張安裝光盤上/image/pxeboot/initr.img和vmlinux也考到/tftpboot目錄下。在/tftpboot建一個pxelinux.cfg目錄,用于放syslinux的配制文件。Sysconfig的配制文件有現成的可用,在rh9******張安裝光盤isolinux/下有一個isolinux.cfg文件,把它考成/tftpboot/default,把isolinux/*.msg考到/tftpboot下(RedHat的安裝光盤的Loader就是個isolinux,呵呵)。對default(也就是isolinux.cfg)作一下修改,下面是我的default文件:
default local
prompt 1
timeout 30
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
F7 snake.msg
label local
localboot 0
label linux
kernel vmlinuz
append initrd=initrd.img devfs=nomount ramdisk_size=9216
label text
kernel vmlinuz
append initrd=initrd.img text devfs=nomount ramdisk_size=9216
label expert
kernel vmlinuz
append expert initrd=initrd.img devfs=nomount ramdisk_size=9216
label ks
kernel vmlinuz
append ks initrd=initrd.img devfs=nomount ramdisk_size=9216
label nofb
kernel vmlinuz
append initrd=initrd.img devfs=nomount nofb ramdisk_size=9216
label lowres
kernel vmlinuz
append initrd=initrd.img lowres devfs=nomount ramdisk_size=9216
label autoinstall
kernel vmlinuz
append ks=http://192.168.168.6/rh9/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=9216 nofb
紅色的部份是我加的,用于實現本地硬盤啟動或支持kickstart的PXE網絡自動安裝。
cat一下/tftpboot/boot.msg文件:
splash.lss
- To Local boot 02Red Hat07 Linux , type:
0f;07.
- To install or upgrade 02Red Hat07 Linux in graphical mode,
press the 0f linux;07 key.
- To install or upgrade 02Red Hat07 Linux in text mode, type:
0flinux text ;07.
- To Auto Install 02Red Hat07 Linux , type:
0flinux autoinstall ;07.
- Use the function keys listed below for more information.
02[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]07
紅色行是我加入的,用于顯示Local boot 和autoinstall選項。
3、 OK,到現在服務器端的配制已經基本完成了,讓我們來試一下。用一臺支持PXE的機器加電啟動,按F12,一般機器啟動時會有提示(請進入BIOS看一下,確認網卡或主板的PXE功能已經打開),選擇LAN啟動,看到了什么? “DHCP…………………FFFFFFFFFFFFF”接著一個和光盤啟動的差不多的畫面,是吧?按一下F2試一下,F2的選項是不是也出來了。打入linux rescue 試試,是不是進入了rescue模式?HOHO~~,以后客戶機啟不來還要用光盤來重啟進rescue模式嗎?當然不用了,把安裝光盤扔了吧,哈哈。
再重啟機器,按F12,選擇LAN,在PXE啟動安裝界面的boot:提示符下打入linux autoinstall試試?HOHO~~,一個多小時后,一臺新的rh9就這么安裝好了。是不是很方便呢?
4、 參考文檔:/usr/share/doc/syslinux-1.75/pxelinux.doc
/usr/share/doc/syslinux-1.75/isolinux.doc
/usr/share/doc/syslinux-1.75/syslinux.doc
/usr/share/doc/dhcp-3.0pl1/README
/usr/share/doc/httpd-2.0.40/README
/usr/share/doc/pxe-0.1/README
5、***后,感謝我的RHCE老師simon cheng,是他給了我提示和幫助,雖然有時我問他10個不同的問題,他回答我9個是同一個答案:See readme :)
6 ks.cfg文件
install
url --url http://192.168.168.35/rh7
lang en_US
langsupport --default en_US.iso885915 zh_CN.GB18030 zh_TW.Big5 en_US.iso885915
keyboard us
mouse generic3ps/2 --device psaux
skipx
rootpw --iscrypted $1$驜N/衢KL$RKxVATP6iXeJ5T9mwFiUn/
firewall --disabled
authconfig --enableshadow --enablemd5
timezone Asia/Shanghai
bootloader --useLilo
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all
part / --fstype ext3 --size=512
part /usr --fstype ext3 --size=4000
part swap --size=1024
part /var --fstype ext3 --size=512
part /home --fstype ext3 --size=1 --grow
%packages
@ Printing Support
@ Classic X Window System
@ X Window System
@ GNOME
@ Sound and Multimedia Support
@ Network Support
@ Dialup Support
@ Messaging and Web Tools
@ Everything
kernel-smp
%post
/usr/sbin/useradd cxbaby
chfn -f 'cxbaby' cxbaby
/usr/sbin/usermod -p '$1$挽.z礧翕$Xd2eupp3vJyRdvUyGxDvd/' cxbaby
雙眼皮的豬
回復于:2003-10-31 09:27:47
挺好....俺幫你頂一下....
eagerlinuxer
回復于:2003-11-06 23:09:53
有沒有通過linux平臺下的DHCP+HTTP+TFTP實現win2000、freeBSD的PXE啟動的網絡安裝的方法?這樣在機房放一臺這樣的機器,就不用跑機房去重新安裝機器了,呵呵。還請各位高手多多指點。
platinum
回復于:2003-11-07 08:37:46
我也在一直研究PXE方式!!
可惜找不到答案,網中人的網站上有相關文章,我也看了,他寫的無盤是“準無盤”,即必須本地要有硬盤,你可以看看。
bluejesica
回復于:2006-07-26 17:18:20
修改boot.img文件的時候,這個文件本來是2進制的,那些07什么的怎么輸才能生效?
sonicpice
回復于:2006-08-03 16:49:45
引用:原帖由 bluejesica 于 2006-7-26 17:18 發表
修改boot.img文件的時候,這個文件本來是2進制的,那些07什么的怎么輸才能生效?
兄臺,樓主沒有修改boot.img啊,只是改了一下msg文件,用于在啟動后的界面上顯示提示信息。
fandy
回復于:2006-08-04 08:43:59
強烈支持中!
bluejesica
回復于:2006-08-04 10:08:24
哦,我寫錯了,是boot.msg文件
YaoFei
回復于:2006-08-04 19:17:46
工作只作了一半。
提示一下:研究一下RH的安裝程序 anacon的命令行參數,把適當的參數寫到pxelinux.cf/default 文件里的vmlinuz 后面,可以完全自動。
用NFS方式比較好,只要把iso 文件放在NFS共享出來的目錄里就好
南非蜘蛛
回復于:2006-08-04 21:28:35
用ks也有5年左右了,如果有興趣把ks玩漂亮的,******研究一下這個
http://syslinux.zytor.com/pxe.php
原文鏈接:
http://linux.chinaunix.net/bbs/viewthread.php?tid=191900
轉載請注明作者名及原文出處
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/4329/showart_460066.html