1、原理和概念python
1.1什麼是PXElinux
PXE並非一種安裝方式,而是一種引導方式。進行PXE安裝的必要條件是要安裝的計算機中包含一個PXE支持的網卡(NIC),即網卡中必需要有PXE Client。PXE(Pre-boot Execution Environment)協議使計算機能夠經過網絡啓動。git
PXE協議分爲client和server端,PXE client在網卡的ROM中,當計算機引導時,BIOS把PXE client調入內存執行,由PXE client將放置在遠端的文件經過網絡下載到本地運行。vim
運行PXE協議須要設置DHCP服務器和TFTP服務器。DHCP服務器用來給PXE client(將要安裝系統的主機)分配一個IP地址,因此在配置DHCP服務器時須要增長相應的PXE設置。centos
在PXE client的ROM中已經存在了TFTP Client。PXE Client經過TFTP協議到TFTP服務器上傳下載所需的文件。api
1.2什麼是KickStart服務器
KickStart是一種無人值守的安裝方式。網絡
KickStart的工做原理是經過記錄典型的安裝過程當中所需人工干預填寫的各類參數,並生成一個名爲ks.cfg的文件,在其後的安裝過程當中(不僅侷限於生成KickStart安裝文件的機器)當出現要求填寫的參數的狀況時,安裝程序會首先去查找kickstar生成的文件,當找到合適的參數時,就採用找到的參數,當沒有找到合適的參數時,才須要安裝者手工干預。這樣,若是kickstart文件涵蓋了安裝過程當中出現的全部須要填寫的參數時,安裝者徹底能夠只告訴安裝程序從何處取ks.cfg文件,而後只需等待安裝完畢,安裝程序會根據ks.cfg中設置的重啓選項來重啓系統,並結束安裝。app
2、實驗環境socket
虛擬機:centos 6.4
實驗須要兩臺虛擬機:一臺配置,另外一臺實驗(無操做系統)
PXE+KickStart安裝的條件:
執行PXE+KickStart安裝所需的設備:
DHCP:用來給客戶機自動分配IP
TFTP:用來存儲PXE相關的文件,好比系統引導文件
FTP:用來存放系統安裝文件
KickStart:生成ks.cfg配置文件。
帶有一個PXE支持網卡的將安裝的主機
若是是virtualbox要到官網上下載擴展包
整個過程使用rpm安裝,安裝軟件包時請轉移到/var/ftp/pub/Package/下安裝
3、安裝步驟
1.掛載DVD光盤
虛擬機Settings-->Storage-->Attributes選擇你的光盤-->OK
# mount /dev/cdrom /mnt/
2.安裝vsftp並複製光盤的全部內容到/var/ftp/pub
# cd /mnt/Packages/
# rpm -ivh vsftpd-2.2.2-11.el6_3.1.x86_64.rpm
# cp –rf /mnt/* /var/ftp/pub/
# service vsftpd start
# chkconfig vsftpd on
3.安裝tftp-server和xinetd
# rpm -ivh xinetd-2.3.14-38.el6.x86_64.rpm
# rpm -ivh tftp-server-0.49-7.el6.x86_64.rpm
修改tftp的配置文件
# 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 ####注意這裏改成no
per_source = 11
cps = 100 2
flags = IPv4
}
# service xinetd start
# chkconfig xinetd on
4.安裝DHCP服務,同時修改配置文件
先設置一下本機的IP
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.1 #本機IP
GATEWAT=192.168.1.1
NETWORK=255.255.255.0
重啓網絡
#service network restart
安裝DHCP
# rpm -ivh dhcp-4.1.1-34.P1.el6.centos.x86_64.rpm
修改DHCP的配置文件:
# vim /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
ddns-update-style none;
next-server 192.168.1.1; #PXE服務器的IP
filename "pxelinux.0";
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.150 192.168.1.200; #動態分配IP段從150到200
#option broadcast-address 192.168.1.1;
option routers 192.168.1.1;
default-lease-time 600;
max-lease-time 7200;
}
# service dhcpd start
# chkconfig dhcpd on
5.配置支持PXE啓動
首先須要安裝syslinux包和相應的軟件包,來保證如下步驟不缺乏相應的文件
# rpm -ivh perl-Crypt-PasswdMD5-1.3-6.el6.noarch.rpm
# rpm -ivh perl-Digest-SHA1-2.12-2.el6.x86_64.rpm
# rpm -ivh syslinux-3.86.1.1.el6.x86_64.rpm
複製PXE啓動所需的文件
# mkdir /var/lib/tftpboot/pxelinux.cfg
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# cp /var/ftp/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
# cp /var/ftp/pub/image/pxeboot/initrd.img /var/lib/tftpboot/
# cp /var/ftp/pub/image/pxeboot/vmlinux /var/lib/tftpboot/
# cp /var/ftp/pub/isolinux/boot.msg /var/lib/tftpboot/
# cp /var/ftp/pub/isolinux/splash.jpg /var/lib/tftpboot/
# cp /var/ftp/pub/isolinux/vesamenu.c32 /var/lib/tftpboot
# chmod u+w /var/lib/tftpboot/pxelinux.cfg/default
修改default文件配置文件ks.cfg的存放路徑
# vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.4!
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 ks=ftp://192.168.1.1/pub/ks.cfg #ks.cfg的存放路徑
6.安裝kickstart,同時配置kickstart(若是你的系統沒有裝anaconda的話,請把下面的rpm包所有裝上)
#rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
createrepo-0.9.8-4.el6.noarch.rpm
device-mapper-multipath-libs-0.4.9-31.el6.x86_64.rpm
device-mapper-multipath-0.4.9-31.el6.x86_64.rpm
libhbaapi-2.2-10.el6.x86_64.rpm
libhbalinux-1.0.10-1.el6.x86_64.rpm
libconfig-1.3.2-1.1.el6.x86_64.rpm
lldpad-0.9.38-3.el6.x86_64.rpm
fcoe-utils-1.0.14-9.el6.x86_64.rpm
isomd5sum-1.0.6-1.el6.x86_64.rpm
iscsi-initiator-utils-6.2.0.872-10.el6.x86_64.rpm
makebootfat-1.4-10.el6.x86_64.rpm
pykickstart-1.74.1-1.el6.noarch.rpm
pyparted-3.4-2.el6.x86_64.rpm
python-cryptsetup-0.0.11-1.el6.x86_64.rpm
python-nss-0.8-3.el6.x86_64.rpm
python-pyblock-0.48-1.el6.x86_64.rpm
squashfs-tools-4.0-3.el6.x86_64.rpm
tigervnc-server-1.0.90-0.10.20100115svn3945.el6.x86_64.rpm
anaconda-yum-plugins-1.0-5.1.el6.noarch.rpm
anaconda-13.21.82-1.el6.x86_64.rpm
system-config-language-1.3.4-5.el6.noarch.rpm
system-config-kickstart-2.8.6.2-1.el6.noarch.rpm
參考:
http://wenku.baidu.com/link?url=G0IDbh8CFXBoU9hwAwvpaUsp_3GZH1doST054bf4OskdZ4rT7C1qVaYK2Bko7xmR5NBfHZzNyazuayiYrDQuK0n0WA1RzfIl-UUyHjcSHNy
通過上面的安裝,如今能夠在gnome環境下配置kickstart了
#system-config-kickstart
7.配置yum
安裝yum源,設置以下
# vim /etc/yum.repos.d/rhel.repo
[Packages]
name=Packages
baseurl=ftp://localhost/pub
gpgcheck=1
enable=1
8.注意關閉防火牆和selinux
# service iptables stop
# setenforce 0
若是沒有關閉防火牆和selinux會出現下面的錯誤:
PXE-E32:TFTP open timeout
9.客戶端安裝一臺空的虛擬機
即不須要鏡像安裝
在這臺虛擬機上Settings-->System-->Boot Order選擇Network上移到第一個-->OK
Network-->Attached to 選擇Bridged Adapter-->OK
點擊Show,安裝完之後把
在這臺虛擬機上Settings-->System-->Boot Order去掉Network-->OK