您的位置:首页 > 运维架构 > Linux

CentOS6.5实现PXE+Kickstart无人值守安装操作系统

2015-08-23 21:11 579 查看
1.PXE原理及流程

严格来说,PXE 并不是一种安装方式,而是一种引导的方式。当计算机引导时,BIOS把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。
流程:支持PXE的电脑开机(预先打开网卡PXE功能,网络引导)---> DHCP给该电脑一个IP地址,并指明下一跳tftp文件服务器 ---> 服务器去tftp服务器上(/tftpboot 文件夹下面)下载到一个叫做pxelinux.0的文件,并拿到pxelinux.cfg文件夹下的default配置文件 ---> 根据该配置文件加载内核等操作,同时该配置文件中可以指明ks.cfg文件的地址,这样实现全程无人化安装!

2.PXE+Kickstart所需要安装的服务及其作用

DHCP:为PXE客户端配置网络并指明tftp服务器的地址;

TFTP:为PXE客户端提供系统启动所需文件;

文件服务器:为客户端提供系统安装所需要文件,如FTP、NFS、HTTP等;

3.安装配置DHCP服务
yum install dhcp -y
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf
修改/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.2;
option subnet-mask              255.255.255.0;
option domain-name-servers      192.168.202.2;
option time-offset              -18000; # Eastern Standard Time
range dynamic-bootp 192.168.202.60 192.168.202.100;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.202.129;    #指定tftp server服务器的地址
filename "pxelinux.0";    #指定Bootstrap文件
}
启动DHCP服务并添加开机自启动:

service dhcpd start
chkconfig dhcpd on
4.安装配置tftp服务
yum install tftp* -y
修改/etc/xinetd.d/tftp配置文件如下:
service tftp
{
socket_type             = dgram
protocol                = udp
wait                    = yes
user                    = root
server                  = /usr/sbin/in.tftpd
server_args             = -s /var/lib/tftpboot
disable                 = no    #将yes改为no即可
per_source              = 11
cps                     = 100 2
flags                   = IPv4
}
启动tftp服务并添加开机自启动:
service xinetd start
chkconfig xinetd on
5.设置PXE启动文件

安装syslinux获取PXE引导安装主程序文件pxelinux.0:
yum install syslinux -y
cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot
挂载镜像文件并辅助PXE启动文件:
mount /dev/cdrom /mnt    #挂载镜像文件
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #开机引导菜单
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot #图形化安装菜单
修改/var/lib/tftpboot/pxelinux.cfg/default文件:
#default vesamenu.c32
default ks    #更改默认启动的是label ks标记的内核
prompt 1    #显示'boot:'提示符,为0时不显示,直接启动default参数指定的内容
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
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 ks
kernel vmlinuz
append ks=ftp://192.168.202.129/pub/ks/ks.cfg initrd=initrd.img
#告诉系统从哪里获取ks文件
label local
menu label Boot from ^local drive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append -
注意:如果ISO镜像文件直接通过解压复制到系统中,安装过程中将会出现以下错误:
Unable to read package metadata, This may be due ro a missing repodata directory.Please ensure that your install tree has bee correctly generated.

出现这个错误的主要原因是repodata文件夹下的那些文件缺少扩展名,所以必须使用UltraISO等专业工具提取iso镜像文件内容。
6.安装配置FTP服务
yum install vsftpd -y
拷贝系统安装镜像文件到文件服务器:

cp -rf /mnt/* /var/ftp/pub
注意:iso镜像文件也可以在windows中用UltraISO等工具提取文件在复制到文件服务器中来。
启动ftp服务器并添加开机自启动:
service vsftpd start
chkconfig vsftpd on
7.生成ks文件

安装system-config-kickstart软件包:
yum install system-config-kickstart -y
system-config-kickstart &> /dev/null &    #开始进行图形化配置
配置完成后将ks.cfg文件保存至/var/lib/tftpboot/pxelinux.cfg/default文件中指定的ks文件路径下。
注:system-config-kickstart界面不支持LVM的创建,如果需要创建LVM,可以直接手动编辑生成的配置文件。
8.测试无人值守方式安装系统
配置一台新的虚拟机,修改BIOS设置为从网络启动系统即可。

参考资料:
/article/4778228.html
/article/4507296.html
http://instance.iteye.com/blog/1687413
http://blog.csdn.net/Andy_YF/article/details/7749282
http://www.linuxidc.com/Linux/2013-07/87456p2.htm
/article/7286786.html
http://cwtea.blog.51cto.com/4500217/834991/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: