一 实验环境要求
1. 一台提供dhcp服务的虚拟机A,一台等待安装系统的虚拟机B,它们在同一自定义虚拟网段内(如VMnet3)。
2. B的网卡支持网络引导,A上同时还提供了tftp(提供安装引导程序所需文件)和http(提供kickstart配置文件和安装树)服务html
二 原理
B依赖A的dhcp服务提供ip/netmask,顺便获取tftp服务所在主机ip和pxelinux.0文件在tftp服务上的位置,这个位置一样也是获取启动系统安装引导界面所需文件的位置。在isolinux的配置文件中指定kickstart配置文件位置(能够经过http服务提供),这个位置同时也是安装树所在目录。linux
三 所需的主要文件说明
1.须要放到tftp服务的工做目录下的文件:express
pxelinux.0: 由syslinux程序提供,功能至关于bootloader,它取代了文件isolinux.bin,用于启动安装引导界面。文件位于/usr/share/syslinux/目录下 vmlinuz,initrd.img: 安装引导系统isolinux本身运行时所需内核和initrd文件。文件位于安装光盘下的images/pxeboot/目录下 boot.msg, vesamenu.c32, splash.jpg: 展现安装引导菜单所需文件。文件位于安装光盘下的isolinux/目录下 isolinux.cgf: isolinux的配置文件,须要修改其中内容,指定ks文件所在位置。文件位于安装光盘下的isolinux/目录下 /var/lib/tftpboot/ ├── boot.msg ├── initrd.img ├── pxelinux.0 ├── pxelinux.cfg │ └── default ├── splash.jpg ├── vesamenu.c32 └── vmlinuz
2.须要放到http网站目录下的文件:centos
ks.cfg: kickstart配置文件,须要本身编写 安装树: 也就是安装系统选定的安装光盘中的rpm包 /var/www/html ├── centos(把光盘绑定到这个目录,以提供安装树) └── ks.cfg
四 配置过程
1.安装tftp服务端包:tftp-server。
它受xinetd服务控制,监听端口为udp:69。安装好后会自动建立目录/var/lib/tftpdboot。
启动服务:bash
chkconfig tftp on service xinetd restart
2.配置dhcp服务
主要在subnet中加入两行:网络
next-server 192.168.1.10; #提供tftp服务的主机,这里就在虚拟机A上 filename "pxelinux.0"; #tftp服务上的,用于安装时提供bootloader功能的文件名
3.往/var/lib/tftpboot目录中复制所需文件
光盘中的文件isolinux.cgf须要放到目录/var/lib/tftpboot/pxelinux.cfg/下,并重命名为default,而后修改其中的配置内容:app
append initrd=initrd.img ks=http://192.168.1.10/ks.cfg #指明kickstart配置文件所在位置
其它文件直接复制就行。less
4.安装httpd服务
安装好httpd后,在网站根目录下建立文件夹centos,而后把光盘绑定到这个文件夹:yii
mkdir /var/www/html/centos mount --bind /media/cdrom /var/www/html/centos
5.编写kickstart配置文件,并放到http网站根目录/var/www/html/下。
这里是centos6的kickstart配置文件格式,与centos5不兼容:post
# Kickstart file automatically generated by anaconda. #version=DEVEL install cdrom lang en_US.UTF-8 keyboard us # Kickstart file automatically generated by anaconda. #version=DEVEL install #cdrom url --url=http://192.168.1.10/centos lang en_US.UTF-8 keyboard us network --onboot yes --device eth0 --bootproto dhcp --noipv6 rootpw --iscrypted $6$TYALPiNmQ0Bjyii3$XHu9ghpQiu0AxnfWBgp8/DykuCNhG00TfNaTeaHgI17JozWOszBbLyF9xFp8w07lZ4QrkK6oAlvICuk.tIeHc. reboot firewall --disabled authconfig --enableshadow --passalgo=sha512 selinux --disabled timezone --utc Asia/Shanghai bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work clearpart --all zerombr text part /boot --fstype=ext4 --size=200 part pv.008002 --size=20480 volgroup vg0 --pesize=8192 pv.008002 logvol / --fstype=ext4 --name=root --vgname=vg0 --size=10240 logvol swap --name=swap --vgname=vg0 --size=2048 logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=6000 logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=2048 #repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100 %packages @core @server-policy @workstation-policy %end %post echo -e 'Learning Service\nhttp://www.abc.com\n' >> /etc/issue sed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab %end
6.关闭iptables,selinux服务,重启dhcpd,httpd服务,启动虚拟机B后就能够看到安装菜单,默认等待60秒后就会自动进入安装过程,直到安装完成,并自动重启展现登陆界面。