PXE(預啟動執行環境)是RPL的更新品。它們的不同之處在于RPL是靜态路由,而PXE是動态路由。其通信協定采用TCP/IP,與Internet連接配接高效而可靠。PXE最直接的表現是,在網絡環境下工作站可以省去硬碟,但又不是通常所說的無盤站的概念,因為使用該技術的PC在網絡方式下的運作速度要比有盤PC快3倍以上。當然使用PXE的PC也不是傳統意義上的Terminal終端,因為使用了PXE的PC并不消耗伺服器的CPU、RAM等資源,故伺服器的硬體要求極低。簡單說來,PXE伺服器就是DHCP伺服器+TFTP伺服器。
(1)用戶端開機後,PXE BootROM(自啟動晶片)獲得控制權之前執行自我測試,然後以廣播形式發出一個請求FIND幀。 (2)如果伺服器收到用戶端所送出的要求,就會送回DHCP回應,包括使用者端的IP位址、預設通信通道,以及開機映像檔案;否則伺服器會忽略這個要求。 (3)用戶端收到伺服器發回的響應後則會回應一個幀,以請求傳送啟動所需檔案,并把自己的MAC位址寫到伺服器端的Netnames.db檔案中。 (4)将有更多的消息在用戶端與伺服器之間應答,用于決定啟動參數。BootROM由TFTP通信協定從伺服器下載下傳開機映像文檔。用戶端使用TFTP協定接收啟動檔案後,将控制權轉交啟動塊以引導作業系統,完成遠端啟動
主要是三個服務配置:dhcpd(客戶機網絡配置)、tftp(系統啟動檔案)、nfs(系統安裝檔案)
1.伺服器虛拟機的網絡用dhcp自動分發就行
#ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:67:DC:25
inet addr:192.168.217.132 Bcast:192.168.217.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe67:dc25/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:137165 errors:0 dropped:0 overruns:0 frame:0
TX packets:93461 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:158195379 (150.8 MiB) TX bytes:7644725 (7.2 MiB)
#ping www.baidu.com
看是否可以ping通
2.伺服器安全機制(iptable、selinux)
service iptables stop
setenforce 0 (臨時)
3.dhcp安裝與配置
#yum install dhcp -y
配置檔案修改
#vim /etc/dhcp/dhcpd.conf
#表示dhcp伺服器和dns伺服器的動态資訊更新模式。這行必須要有dhcp伺服器才能啟動以來。
ddns-update-style interim;
#忽略用戶端更新
ignore client-updates;
#定義能夠PXE啟動
allow booting;
#定義支援bootp
allow bootp;
#定義名為pxeclients的類
class "pxeclients"{
#比對客戶機發送來的請求含有字元串0-9共10個字元是PXEClient才響應請求
match if substring(option vendor-class-identifier,0,9) = "PXEClient";
#載啟動文檔的檔案名
filename "RHEL6.4/pxelinux.0";
#TFTP Server的IP位址
next-server 192.168.217.132;
}
subnet 192.168.217.0 netmask 255.255.255.0 {
#設定預設路由為192.168.217.1
option routers 192.168.217.1;
#子網路遮罩
option subnet-mask 255.255.255.0;
#設定與格林威治時間的偏移值
option time-offset -18000; # Eastern Standard Time
#可配置設定IP範圍
range dynamic-bootp 192.168.217.100 192.168.217.200;
#預設租約
default-lease-time 216000;
#最大租約
max-lease-time 432000;
}
#service dhcpd start
#chkconfig dhcpd on
4.tftp安裝于配置
TFTP是用來下載下傳遠端檔案的最簡單網絡協定
#yum install tftp-server -y
修改tftp伺服器的配置, 将disable= yes改為disable=no(開啟tftp服務)
tftp伺服器的根目錄為/var/lib/tftpboot,安裝時會自動建立
#vim /etc/xinetd.d/tftp
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
}
Tftp服務是不需要單獨啟動的,是作為xinetd服務的一個附屬對象連帶啟動。
#service xinetd start
#chkconfig xinetd on
#netstat -a | grep tftp
顯示結果為
udp 0 0 *:tftp *:*
表明服務已經開啟,就表明tftp配置成功了。
5.安裝配置nfs
#yum install nfs-utils -y
#vim /etc/exports
/myiso 192.168.217.0/24(rw,wdelay,crossmnt,insecure,root_squash,no_subtree_check,fsid=0)
對于NFSv4的,有一個傑出的檔案系統,這是所有輸出檔案系統的根目錄。這是指定的與FSID = root或FSID = 0這兩個意思完全一樣的東西。
fsid=0的字段,配置多個ip時候失敗,單個的時候用戶端就可以挂載成功
#exportfs -a (全部挂載(或解除安裝)/etc/exports檔案内的設定,檢測)
# service rpcidmapd start
# service nfs restart
#service nfs start
#chkconfig nfs on
6.在/var/lib/tftpboot目錄中配置PXE啟動需要的檔案:
1)路徑與dhcp配置中一緻
mkdir -p /var/lib/tftpboot/RHEL6.4/pxelinux.cfg
2)把安裝CD光牒isolinux/isolinux.cfg複制并重命名為/var/lib/tftpboot/RHEL6.4/pxelinux.cfg/default(find / -name isolinux 裡面放的是啟動菜單)
3)下載下傳http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.10.tar.gz(或者直接yum安裝 yum install -y syslinux), 解壓,将syslinux-5.10/目錄下面的幾個檔案複制到/var/lib/tftpboot/RHEL6.4目錄下
Tips:syslinux是一個功能強大的引導加載程式,而且相容各種媒體。更加确切地說:SYSLINUX是一個小型的Linux作業系統,它的目的是簡化首次安裝Linux的時間,并建立修護或其它特殊用途的啟動盤。
syslinux-5.10/bios/core/pxelinux.0 (legcay(網絡啟動方式)啟動,它是legcay的啟動鏡像)
syslinux-5.10/com32/elflink/ldlinux/ldlinux.c32
syslinux-5.10/com32/lib/libcom32.c32
syslinux-5.10/com32/libutil/libutil.c32
syslinux-5.10/com32/menu/vesamenu.c32 (BIOS引導菜單工具)
4) 從安裝CD光牒複制檔案到/var/lib/tftpboot/目錄
#cd /media/RHEL_6.4\ x86_64\ Disc\ 1/isolinux
# cp initrd.img /var/lib/tftpboot/RHEL6.4/ (一個初始化檔案,一個最小的系統鏡像 )
# cp vmlinuz /var/lib/tftpboot/RHEL6.4/ (核心檔案)
# cp splash.jpg /var/lib/tftpboot/RHEL6.4/ (安裝時的背景圖,不複制這個檔案也可以,不過背景是黑的)
7.拷貝安裝需要的鏡像檔案
#cd ..
#cp -pr images/ /myiso/
#包安裝要的redhat6.4 iso鏡像拷貝到 /myiso
8.在空的虛拟機上安裝 RHEL 6.4 作業系統
若出現PXE-E32:TFTP open timeout
則檢測a.伺服器網絡是否通,
b.第2步有沒有做(selinux和iptable),
c.在/var/lib/tftpboot裡建立的檔案名是否一緻
在選擇語言之後,出現如下界面,選擇NFS檔案安裝
這一步前會進行網卡的啟動
要等待一會出現如下界面,之後的配置就是普通安裝過程