DHCP+TFTP+PXE自動網路引導Linux+NFS/FTP/HTTP Push多個Linux作業系統
原理:
1)用戶端PXE網卡啟動
2)從DHCP伺服器獲得IP
3)從TFTP伺服器上下載pxelinux.0、default
4)根據設定檔default指定的vmlinuz、initrd.img啟動系統核心,並下載指定的ks.cfg檔案
5)跟據ks.cfg去(HTTP/FTP/NFS)伺服器下載RPM包並安裝系統
6)完成安裝
· DHCP:
- [root@rhel6 ~]# cat /etc/dhcp/dhcpd.conf
- ddns-update-style none;
- option routers 192.168.1.119;
- option subnet-mask 255.255.255.0;
- option domain-name "xfcy.org";
- option domain-name-servers 192.168.1.119;
- default-lease-time 21600;
- max-lease-time 43200;
- subnet 192.168.1.0 netmask 255.255.255.0 {
- range 192.168.1.101 192.168.1.200;
- # TFTP Server
- filename "pxelinux.0";
- next-server rhel6.xfcy.org;
- host vm.xfcy.org {
- hardware ethernet 00:0c:29:c0:a7:99;
- fixed-address 192.168.1.19;
- }
- }
- [root@rhel6 tftpboot]# /etc/init.d/dhcpd restart
- Shutting down dhcpd: [ OK ]
- Starting dhcpd: [ OK ]
·TFPT:
- [root@rhel6 ~]# rpm -qa | egrep 'tftp|xinetd'
- tftp-0.49-7.el6.x86_64
- xinetd-2.3.14-33.el6.x86_64
- tftp-server-0.49-7.el6.x86_64
- [root@rhel6 ~]# cat /etc/xinetd.d/tftp
- # default: off
- service tftp
- {
- socket_type = dgram
- protocol = udp
- wait = yes
- user = root
- server = /usr/sbin/in.tftpd
- server_args = -s /var/lib/tftpboot
- disable = no
- per_source = 11
- cps = 100 2
- flags = IPv4
- }
- [root@rhel6 ~]# chkconfig xinetd on
- [root@rhel6 ~]# /etc/init.d/xinetd restart
- Stopping xinetd: [ OK ]
- Starting xinetd: [ OK ]
- [root@rhel6 ~]# netstat -lnup | grep :69
- udp 0 0 0.0.0.0:69 0.0.0.0:* 2751/xinetd
- [root@rhel6 ~]# yum -y install syslinux
- [root@rhel6 ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg/
- [root@rhel6 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
- [root@rhel6 ~]# cp /media/isolinux/initrd.img /var/lib/tftpboot/
- [root@rhel6 ~]# cp /media/isolinux/vmlinuz /var/lib/tftpboot/
- [root@rhel6 ~]# cp /media/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
- [root@rhel6 ~]# ls -R /var/lib/tftpboot/
- /var/lib/tftpboot/:
- boot.msg initrd.img pxelinux.0 pxelinux.cfg vmlinuz
- /var/lib/tftpboot/pxelinux.cfg:
- default
- [root@rhel6 ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
- default rhel6_nfs
- prompt 1 #顯示"boot: " 提示進行選擇以下lable
- timeout 100 #10s 的逾時後進入default所定義的lable
- display boot.msg #以boot.msg進行文本提示(與以下的*.msg檔案結合,非必選項)
- F1 boot.msg
- F2 options.msg
- F3 general.msg
- F4 param.msg
- F5 rescue.msg
- #可通過以下3種方式下載ks.cfg檔案,通過default定義lable或在timeout時間之內選擇lable即可
- label rhel6_nfs #通過NFS方式
- kernel vmlinuz
- append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=nfs:192.168.1.119:/var/ftp/pub/ks.cfg
- label rhel6_ftp #通過FTP方式
- kernel vmlinuz
- append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=ftp://192.168.1.119/pub/ks.cfg
- label rhel6_http #通過HTTP方式
- kernel vmlinuz
- append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=http://192.168.1.119/pub/ks.cfg
- label rescue #用於rescue模式
- kernel vmlinuz
- append load_ramdisk=1 initrd=initrd.img rescue