1. 程式人生 > >通過PXE網絡安裝Centos6.5

通過PXE網絡安裝Centos6.5

linux pxe 網絡安裝 tftp kickstart

說明

系統安裝我們一般可采用以下方式:光盤、U盤、PXE網絡等,當我們大批量安裝系統時,網絡是非常有效率的選擇。Linux系統一樣,除了支持光盤引導安裝外,還支持基於PXE的網絡引導與安裝。PXE只是網絡安裝的引導方式,自動化的核心依賴於kickstart/autoyast/autounattend等生成的自動應答文件。


軟件準備

tftpd32+Centos6.5_x64+kickstart+hfs+syslinux4.05


一.基於windows宿主機+VMware Workstation12

步驟

1.1 在windows服務器上,創建一個文件夾,作為TFTP服務器的工作目錄,本測試環境是windows10, 目錄是D:\Centos6.5。 從syslinux程序中復制pxelinux.0文件到這個目錄;復制syslinux中的vesamenu.c32到D:\Centos6.5中。


1.2 復制Centos6.5鏡像中的所有文件到D:\Centos6.5目錄中;

復制D:\Centos6.5\ioslinux目錄(或者D:\Centos6.5\images\pxeboot)裏文件 initrd.img,vmlinuz到上層目錄(D:\Centos6.5);

復制D:\Centos6.5\ioslinux目錄裏boot.msg文件到上層目錄(D:\Centos6.5);


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地址”,其中序號用01、02、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,

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 [email protected]
# 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
genisoimage
mtools
abrt-gui
certmonger
pam_krb5
krb5-workstation
libXmu
perl-DBD-SQLite
%end



1.6 設置防火墻允許TFTP通過防火墻或者直接關閉防火墻。


1.7 開啟網絡安裝,新建虛擬機類型選擇Centos6,設置完成後從網卡啟動,進入安裝,步驟略。


技術分享


二.基於Centos6.8_x64+VMware Workstation12

其實和上面的步驟一樣,做了同樣的事情。


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下面顯示正常的。

技術分享


技術分享

本文出自 “技術成就夢想” 博客,請務必保留此出處http://pizibaidu.blog.51cto.com/1361909/1949689

通過PXE網絡安裝Centos6.5