附件腳本下載:
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /pub/2011/11/21/腳本部署CentOS 6.0的PXE+DHCP+TFTP+kickstart安裝環境/
先看看腳本的內容:
#!/bin/bash
yum -y install tftp-server system-config-kickstart dhcp syslinux
echo "/mnt *(ro)" >> /etc/exports
service nfs restart
chkconfig nfs on
setenforce 0
service iptables stop
先安裝相應的dhcp,tftp等軟件包,並且把CentOS的安裝文件設置成NFS共享,並且關閉防火牆和selinux
cat >> /etc/dhcp/dhcpd.conf << EOF
option domain-name-servers 192.168.0.254;
max-lease-time 7200;
authoritative;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.253;
next-server 192.168.0.254;
filename "pxelinux.0";
}
EOF
#sed -i 's/DHCPDARGS=/DHCPDARGS=eth1/' /etc/sysconfig/dhcpd
service dhcpd restart
chkconfig dhcpd on
然後就是修改DHCP的配置文件了,注釋掉的這行是對哪個網絡接口提供DHCP服務,這個就看你個人需要了。
chkconfig iptables off
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
這幾行就是把防火牆設置為開機不啟動,並且創建相應的啟動文件所需的目錄,並且把相應的文件拷貝到相應的位置。
cat >> /var/lib/tftpboot/pxelinux.cfg/default << EOF
default auto
prompt 1
timeout 10
label linux
kernel vmlinuz
append initrd=initrd.img
label auto
menu default
kernel vmlinuz
append ks=http://192.168.0.254/ks.cfg initrd=initrd.img
label rescue
kernel vmlinuz
append initrd=initrd.img rescue
label local
localboot 1
EOF
這幾行就是創建默認的啟動選項文件,default auto代表默認從auto啟動,timeout 10代表默認停留十秒供你選擇。
sed -i '/disable/c\\tdisable\t\t\t= no' /etc/xinetd.d/tftp
service xinetd restart
chkconfig xinetd on
這幾行就是把tftp設置為啟動狀態。
下面是執行腳本之後,啟動另外一台沒有系統的機器的情況:
650) this.width=650;" border=0>
機器啟動的時候,發現硬盤裡面沒有操作系統,光驅裡面也沒有引導光盤,這個時候,它開始用網卡的PXE功能啟動,它先發送廣播包,來獲得IP地址,DHCP服務器會分配給他一個IP地址,並且告訴它去192.168.0.254上的TFTP服務器上下載pxelinux.0這個引導文件。