系統安裝咱們通常可採用如下方式:光盤、U盤、PXE網絡等,當咱們大批量安裝系統時,網絡是很是有效率的選擇。Linux系統同樣,除了支持光盤引導安裝外,還支持基於PXE的網絡引導與安裝。PXE只是網絡安裝的引導方式,自動化的核心依賴於kickstart/autoyast/autounattend等生成的自動應答文件。java
tftpd32+Centos6.5_x64+kickstart+hfs+syslinux4.05python
1.1 在windows服務器上,建立一個文件夾,做爲TFTP服務器的工做目錄,本測試環境是windows10, 目錄是D:\Centos6.5。 從syslinux程序中複製pxelinux.0文件到這個目錄;複製syslinux中的vesamenu.c32到D:\Centos6.5中。linux
1.2 複製Centos6.5鏡像中的全部文件到D:\Centos6.5目錄中; ios
複製D:\Centos6.5\ioslinux目錄(或者D:\Centos6.5\p_w_picpaths\pxeboot)裏文件 initrd.img,vmlinuz到上層目錄(D:\Centos6.5);vim
複製D:\Centos6.5\ioslinux目錄裏boot.msg文件到上層目錄(D:\Centos6.5);windows
1.3 在D:\Centos6.5目錄中建立pxelinux.cfg目錄,複製Centos6.5鏡像中的文件 ISOLINUX.CFG到pxelinux.cfg文件夾中,重命名爲default。服務器
若是你要爲全部的服務器安裝D:\Centos6.5,請將ISOLINUX.CFG改名爲default。若是你要爲指定的服務器安裝,請記下服務器的MAC地址(服務器上可能有多個網卡,須要記下經過網卡引導的網卡的MAC地址),並複製ISOLINUX.CFG文件,重命名爲「序號+MAC地址」,其中序號用0一、0二、03代替,表示第1臺、第2臺服務器的順序,在序號與MAC地址之間,用短橫線代替,例如,第1臺服務器的MAC地址是F48E38873878,則文件名爲01-F4-8E-38-87-38-78微信
若是你是手動填寫相關信息,請忽略步驟1.5。網絡
若是選擇自動應答,還須要修改default,添加: ks=http://192.168.40.1/Centos6.5/ks.cfg ksdevice=eth0,app
default 內容以下:
default vesamenu.c32 #prompt 1 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 ks=http://192.168.40.1/Centos6.5/ks.cfg ksdevice=eth0 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 local menu label Boot from ^local drive localboot 0xffff label memtest86 menu label ^Memory test kernel memtest append -
1.4 設置TFTP,打開tftpd,設置D:\Centos6.5爲根目錄。設置IP地址的起始地址(地址應該與服務器的地址在同一網段,而且在服務器的地址以後),設置以下,紅色部分是要填寫的。
1.5 設置hfs服務。將自動應答文件ks.cfg放在D:\Centos6.5目錄下。
內容以下:
#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install #cdrom url --url=http://192.168.40.1/Centos6.5 # Network #network --bootproto=dhcp --device=eth0 # Root password rootpw hundsun@1 # System authorization information auth --useshadow --passalgo=sha512 # Use text mode install text firstboot --disable # System keyboard keyboard us # System language lang en_US.UTF-8 # SELinux configuration selinux --disabled # Installation logging level logging --level=info # Reboot after installation reboot # System timezone timezone Asia/Shanghai # System bootloader configuration bootloader --location=mbr --append="rhgb quiet crashkernel=auto" # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Partition #autopart part /boot --fstype=ext4 --size=500 part / --fstype="ext4" --size=8192 part swap --fstype="swap" --size=1024 # Packages %packages @base @chinese-support @client-mgmt-tools @core @debugging @basic-desktop @desktop-debugging @desktop-platform @directory-client @fonts @general-desktop @graphical-admin-tools @input-methods @internet-browser @java-platform @legacy-x @network-file-system-client @perl-runtime @print-client @remote-desktop-clients @server-platform @server-policy @x11 pax python-dmidecode oddjob wodim sgpio genisop_w_picpath mtools abrt-gui certmonger pam_krb5 krb5-workstation libXmu perl-DBD-SQLite %end
1.6 設置防火牆容許TFTP經過防火牆或者直接關閉防火牆。
1.7 開啓網絡安裝,新建虛擬機類型選擇Centos6,設置完成後從網卡啓動,進入安裝,步驟略。
其實和上面的步驟同樣,作了一樣的事情。
2.1 安裝dhcp、tftp-server、syslinux、xinetd
yum install dhcp tftp-server syslinux xinetd
2.2 掛載Centos6.5 ISO到/mnt
mount /dev/cdrom /mnt
2.3 修改vim /etc/dhcp/dhcpd.conf
ddns-update-style interim; allow booting; allow bootp; class "pxeclients" { match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"; next-server 192.168.10.78; filename = "pxelinux.0"; } subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.100 192.168.10.110; }
2.4啓用tftp,修改/etc/xinetd.d/tftp中的disable = yes爲disable = no
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 }
2.5 複製pxelinux.0到tftp根目錄
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
2.6 新建目錄/var/lib/tftpboot/pxelinux.cfg
mkdir /var/lib/tftpboot/pxelinux.cfg
2.7 複製Centos ISO中的文件isolinux.cfg到/var/lib/tftpboot/pxelinux.cfg/下並更名default
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
修改default文件,具體同上。
2.8 複製Centos ISO中的所有文件到/var/lib/tftpboot/下
複製/mnt/isoinux目錄裏文件 initrd.img,vmlinuz,boot.msg到/var/lib/tftpboot/目錄中;
cp -a /mnt/* /var/lib/tftpboot/
cp /mnt/isoinux/{initrd.img,vmlinuz,boot.msg} /var/lib/tftpboot/
2.9 複製syslinux中的vesamenu.c32到/var/lib/tftpboot/中。
cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/
2.10 重啓dhcp、xinetd服務
systemctl restart dhcpd
systemctl restart xinetd
2.11 自定義安裝腳本,安裝httpd,此文件能夠放在任何能夠經過url訪問到的地方。 編輯腳本ks.cfg
內容同上面。
在windows下測試時,遇到以下錯誤:
「unable to read package metadata.this may be due to a missing repodata directory . please ensure that your install tree has been correctly generated ……」
解決方法:
目錄repodata下面的文件缺乏擴展名,補全擴展名。
緣由:在windows下,Centos光盤目錄repodata下,文件顯示不出擴展名,複製過來的文件也相應缺乏擴展名,可是在linux下面顯示正常的。