说明
系统安装我们一般可采用以下方式:光盘、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 内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
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目录下。
内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
#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
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
1
2
3
4
5
6
7
8
9
10
11
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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下面显示正常的。
本文转自pizibaidu 51CTO博客,原文链接:http://blog.51cto.com/pizibaidu/1949689,如需转载请自行联系原作者