如何使用PXE自動安裝Linux
1,在VMware中安裝了一個CentOS63(CentOS6.4系統,IP : 192.168.202.131)
2,在VMware中創建了一個CentOS65(空機器,未裝操作系統)
3,CentOS鏡像文件掛載在CentOS63的/media/CentOS_6.4_Final位置
操作步驟:
一,配置DHCP
1,安裝dhcpd
yum install dhcp
2,修改dhcp配置文件/etc/dhcp/dhcpd.conf
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.131;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.202.131;
filename "pxelinux.0";
}
3,啟動dhcpd
chkconfig --add dhcpd
service dhcpd start
使用命令可以看到dhcpd綁定了多個端口
[root@localhost init.d]# netstat -anp | grep dhcpd
raw 0 0 0.0.0.0:1 0.0.0.0: 7 3266/dhcpd
unix 2 [ ] DGRAM 18034 3266/dhcpd
註意:第2行raw表示綁定在ICMP協議上,協議號為1
二,配置TFTP
4,安裝TFTP
yum install tftp-server
5,修改tftpd配置文件/etc/xinetd.d/tftp,ftp根目錄為/var/lib/tftpboot
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
}
6,啟動tftp服務(端口69)
/etc/init.d/xinetd restart
三,配置引導內核
7,下載pxe引導配置文件
yum install syslinux
cp rpm -ql syslinux | grep ‘/pxelinux.0‘
/var/lib/tftpboot
8,拷貝網絡啟動的內核文件
cp /media/CentOS_6.4_Final/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /media/CentOS_6.4_Final/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
修改default文件:
default linux
prompt 1
timeout 60
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 ks=http://192.168.202.131/ks.cfg initrd=initrd.img
四,配置kickstart
9,安裝nginx,根目錄/usr/local/nginx/html
yum install nginx
chkconfig --add nginx
service nginx start
10,拷貝操作系統源文件
mkdir /usr/local/nginx/html/dvd
cp -R /media/CentOS_6.4_Final/* /usr/local/nginx/html/dvd/
11,下載kickstart
yum install system-config-kickstart
cp /root/anaconda-ks.cfg /usr/local/nginx/html/ks.cfg
chmod 755 /usr/local/nginx/html/ks.cfg (不分配權限,外部無法通過http訪問,會報403)
修改ks.cfg:
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
Firewall configuration
firewall --disabled
Install OS instead of upgrade
install
Use text install
text
Use network installation
url --url="http://192.168.202.131/dvd"
Root password
rootpw --iscrypted $1$.IvWB.Gl$E4fI4Ez4Z8HyHRCZW5Btr0
System authorization information
auth --useshadow --passalgo=sha512
Run the Setup Agent on first boot
firstboot --reconfig
System keyboard
keyboard us
System language
lang zh_CN.UTF-8
SELinux configuration
selinux --enforcing
Installation logging level
logging --level=info
System timezone
timezone Asia/Shanghai
Network information
network --bootproto=dhcp --device=eth0 --onboot=yes
System bootloader configuration
bootloader --location=mbr
Clear the Master Boot Record
zerombr
Partition clearing information
clearpart --all
Disk partitioning information
part /boot --fstype="ext4" --size=200
part swap --fstype="swap" --size=1000
part / --fstype="ext4" --grow --size=1
Reboot after installation
reboot
%packages
@base @core
br/>@core
%end
五,驗證
12,修改CentOS65虛擬配置文件CentOS65.vmx,增加一行bios.bootDelay= "10000",即表示在啟動bios的時候停留10秒(否則你根本來不及按任何鍵的)
給CentOS65加電(打開Power),按Esc選擇從Network啟動
Good luck!!!!
如何使用PXE自動安裝Linux