1.PXE原理及流程
html
嚴格來講,PXE 並非一種安裝方式,而是一種引導的方式。當計算機引導時,BIOS把 PXE Client 調入內存中執行,而後由 PXE Client 將放置在遠端的文件經過網絡下載到本地運行。linux
流程:支持PXE的電腦開機(預先打開網卡PXE功能,網絡引導)---> DHCP給該電腦一個IP地址,並指明下一跳tftp文件服務器 ---> 服務器去tftp服務器上(/tftpboot 文件夾下面)下載到一個叫作pxelinux.0的文件,並拿到pxelinux.cfg文件夾下的default配置文件 ---> 根據該配置文件加載內核等操做,同時該配置文件中能夠指明ks.cfg文件的地址,這樣實現全程無人化安裝!windows
2.PXE+Kickstart所須要安裝的服務及其做用
centos
DHCP:爲PXE客戶端配置網絡並指明tftp服務器的地址;
bash
TFTP:爲PXE客戶端提供系統啓動所需文件;
服務器
文件服務器:爲客戶端提供系統安裝所須要文件,如FTP、NFS、HTTP等;
網絡
3.安裝配置DHCP服務app
yum install dhcp -y cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
修改/etc/dhcp/dhcpd.conf配置文件爲一下內容:dom
ddns-update-style interim; ignore client-updates; allow booting; allow bootp; subnet 192.168.202.0 netmask 255.255.255.0 { option routers 192.168.202.2; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.202.2; option time-offset -18000; # Eastern Standard Time range dynamic-bootp 192.168.202.60 192.168.202.100; default-lease-time 21600; max-lease-time 43200; next-server 192.168.202.129; #指定tftp server服務器的地址 filename "pxelinux.0"; #指定Bootstrap文件 }
啓動DHCP服務並添加開機自啓動:
socket
service dhcpd start chkconfig dhcpd on
4.安裝配置tftp服務
yum install tftp* -y
修改/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 #將yes改成no便可 per_source = 11 cps = 100 2 flags = IPv4 }
啓動tftp服務並添加開機自啓動:
service xinetd start chkconfig xinetd on
5.設置PXE啓動文件
安裝syslinux獲取PXE引導安裝主程序文件pxelinux.0:
yum install syslinux -y cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot
掛載鏡像文件並輔助PXE啓動文件:
mount /dev/cdrom /mnt #掛載鏡像文件 mkdir /var/lib/tftpboot/pxelinux.cfg cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #開機引導菜單 cp /mnt/p_w_picpaths/pxeboot/initrd.img /var/lib/tftpboot/ cp /mnt/p_w_picpaths/pxeboot/vmlinuz /var/lib/tftpboot/ cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot #圖形化安裝菜單
修改/var/lib/tftpboot/pxelinux.cfg/default文件:
#default vesamenu.c32 default ks #更改默認啓動的是label ks標記的內核 prompt 1 #顯示'boot:'提示符,爲0時不顯示,直接啓動default參數指定的內容 timeout 600 #設置超時時間 display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.5! menu color border 0 #ffffffff #00000000 menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color scrollbar 0 #ffffffff #00000000 label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img label vesa menu label Install system with ^basic video driver kernel vmlinuz append initrd=initrd.img xdriver=vesa nomodeset label rescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescue label ks kernel vmlinuz append ks=ftp://192.168.202.129/pub/ks/ks.cfg initrd=initrd.img #告訴系統從哪裏獲取ks文件 label local menu label Boot from ^local drive localboot 0xffff label memtest86 menu label ^Memory test kernel memtest append -
注意:若是ISO鏡像文件直接經過解壓複製到系統中,安裝過程當中將會出現如下錯誤:
Unable to read package metadata, This may be due ro a missing repodata directory.Please ensure that your install tree has bee correctly generated.
出現這個錯誤的主要緣由是repodata文件夾下的那些文件缺乏擴展名,因此必須使用UltraISO等專業工具提取iso鏡像文件內容。
6.安裝配置FTP服務
yum install vsftpd -y
拷貝系統安裝鏡像文件到文件服務器:
cp -rf /mnt/* /var/ftp/pub
注意:iso鏡像文件也能夠在windows中用UltraISO等工具提取文件在複製到文件服務器中來。
啓動ftp服務器並添加開機自啓動:
service vsftpd start chkconfig vsftpd on
7.生成ks文件
安裝system-config-kickstart軟件包:
yum install system-config-kickstart -y system-config-kickstart &> /dev/null & #開始進行圖形化配置
配置完成後將ks.cfg文件保存至/var/lib/tftpboot/pxelinux.cfg/default文件中指定的ks文件路徑下。
注:system-config-kickstart界面不支持LVM的建立,若是須要建立LVM,能夠直接手動編輯生成的配置文件。
8.測試無人值守方式安裝系統
配置一臺新的虛擬機,修改BIOS設置爲從網絡啓動系統便可。
參考資料:
http://www.cnblogs.com/mchina/p/centos-pxe-kickstart-auto-install-os.html
http://jiechao2012.blog.51cto.com/3251753/1153353
http://instance.iteye.com/blog/1687413
http://blog.csdn.net/Andy_YF/article/details/7749282
http://www.linuxidc.com/Linux/2013-07/87456p2.htm