预启动安装系统
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作
于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动
操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)
或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执
行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系
统。PXE可以引导多种操作系统
如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系统等。
自动安装原理
1.客户机从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP
2.DHCP服务器返回分给客户机IP
3.客户机向本网络中的TFTP服务器索取文件
4.客户机取得bootstrap文件后之执行引导文件完成引导
5.然后读取配置文件,通过TFTP服务器加载内核和文件系统
6.进入安装画面, 此时可以通过选择HTTP、FTP、NFS方式进行安装
PXE网络安装必需的4个要素:
1.客户机的网卡必须为PXE网卡
2.网络中必须要有DHCP和TFTP服务器,当然这两个服务器可以是同一台物理主机
3.所安装的操作系统必须支持网络安装
4.必须要有FTP,HTTP,NFS至少一个服务器,当然也可以和DHCP和TFTP服务器同为一台物理主机
一、配置pxe环境
1.获取IP,DNS,GATEWAY
配置dhcp # pxe的IP,DNS,GATEWAY都是由dhcp服务提供的
[root@pxe-server ~]# yum install -y dhcp
[root@pxe-server ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
7 option domain-name "westos.com";
8 option domain-name-servers 172.25.254.125;
30 subnet 172.25.254.0 netmask 255.255.255.0 {
31 range 172.25.254.20 172.25.254.30;
32 option routers 172.25.254.78; 33 }
[root@pxe-server ~]# systemctl restart dhcp
2.获取启动软件
[root@pxe-server ~]# yum whatprovides */pxe* # 查找提供pxe服务的软件
[root@pxe-server ~]# yum install -y syslinux-4.05-12.el7.x86_64
[root@pxe-server ~]# yum search tftp # pxe依赖tftp协议进行共享
[root@pxe-server ~]# rpm -ql syslinux # 查看pxe程序的配置文件
[root@pxe-server ~]# rpm -ql tftp-server # 查看TFTP-server安装包所生成的文件
[root@pxe-server ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot # 把将要下载的文件放置于该共享目录中
[root@pxe-server ~]# yum install -y xinetd # 新一代进程守护程序,用它对tftp服务进行控制
[root@pxe-server ~]# chkconfig # 查看系统服务的状态
[root@pxe-server ~]# systemctl start xinetd
[root@pxe-server ~]# vim /etc/xinetd.d/tftp # 激活 tftp 服务
14 disable = no
[root@pxe-server ~]# systemctl restart xinetd
[root@pxe-server ~]# chkconfig
[root@pxe-server ~]# systemctl start tfrp
[root@pxe-server ~]# vim /etc/dhcp/dhcpd.conf
33 next-server 172.25.254.125; # 指定tftp服务的地址
34 filename "pxelinux.0"; # 指定pxe引导程序的文件名
[root@pxe-server ~]# systemctl restart dhcpd
[root@pxe-server ~]# systemctl stop firewalld
3.测试(用另外一个虚拟机测试)
[root@foundation78 ~]# virt-manager
[root@foundation78 ~]# virah start base2
[root@foundation78 ~]# virt-viewer base2 # 查看到已经在base2这主机上进行安装了
在pxe服务器上,我们现在来创建配置文件
[root@pxe-server ~]# cd /var/lib/tftpboot/
[root@pxe-server tftpboot]# mkdir pxelinux.cfg
[root@pxe-server tftpboot]# ls
pxelinux.0 pxelinux.cfg
在真机上,查看镜像,因为安装时是从镜像安装的,所以需要从镜像中导入所有的安装的文件
[root@foundation78 iso]# cd /var/www/html/
[root@foundation78 html]# cd rhel7.3/isolinux/
[root@foundation78 isolinux]# ls
boot.cat grub.conf isolinux.bin memtest TRANS.TBL vesamenu.c32boot.msg initrd.img isolinux.cfg splash.png upgrade.img vmlinuz
[root@foundation78 isolinux]# scp * [email protected]:/var/lib/tftpboot/
在pxe服务器上
[root@pxe-server tftpboot]# ls
boot.cat initrd.img pxelinux.0 TRANS.TBL vmlinuzboot.msg isolinux.bin pxelinux.cfg upgrade.imggrub.conf memtest splash.png vesamenu.c32
[root@pxe-server tftpboot]# cp isolinux.cfg pxelinux.cfg/
[root@pxe-server tftpboot]# cd pxelinux.cfg/
[root@pxe-server pxelinux.cfg]# ls
isolinux.cfg
[root@pxe-server pxelinux.cfg]# mv isolinux.cfg default # 重命名
[root@pxe-server pxelinux.cfg]# ls
default
[root@pxe-server pxelinux.cfg]# ll
total 4-r--r--r--. 1 root root 3166 Dec 8 12:46 default[
root@pxe-server pxelinux.cfg]# chmod u+w default
[root@pxe-server pxelinux.cfg]# vim default
64 append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.3\x20Server.x86_64
测试
现在我们来修改配置文件
[root@pxe-server pxelinux.cfg]# vim default
64 append initrd=initrd.img repo=http://172.25.254.78/rhel7.3
测试安装,可以成功安装,但是还要自己配置语言,分区等等,所以我们来设置自动配置
[root@pxe-server pxelinux.cfg]# yum install -y httpd
[root@pxe-server pxelinux.cfg]# yum install -y system-config-kickstart.noarch
[root@pxe-server pxelinux.cfg]# system-config-kickstart
[root@pxe-server pxelinux.cfg]# cd /var/www/html/
[root@pxe-server html]# vim ks.cfg # 配置安装的软件包
50 %packages
51 @base # base组
52 @core
53 @fonts
54 @gnome-desktop
55 @input-methods # 输入法
56 @x11
57
58 lftp
59 vnc
60 %end
[root@pxe-server html]# ksvalidator ks.cfg # 检测语法
[root@pxe-server html]# vim /var/lib/tftpboot/pxelinux.cfg/default
64 append initrd=initrd.img repo=http://172.25.254.78/rhel7.3 ks=http://172.25.254.125/ks.cfg # 指定从该yum安装
[root@pxe-server html]# systemctl start httpd
安装测试,测试成功
二、修改安装界面
[root@pxe-server html]# cd /var/lib/tftpboot/
[root@pxe-server tftpboot]# file feng.png # 查看图片的大小为490 x 306
feng.png: PNG image data, 490 x 306, 8-bit/color RGBA, non-interlaced
默认背景图是640x480,所以我们需要修改图片的大小
[root@pxe-server tftpboot]# yum whatprovides */convert # 查询修改图片大小的软件
[root@pxe-server tftpboot]# yum install ImageMagick-6.7.8.9-10.el7.x86_64 -y
[root@pxe-server tftpboot]# ls
[root@pxe-server tftpboot]# convert -resize 640x480! feng.png fengfeng.png # 强制修改图片大小,!表示强制
[root@pxe-server tftpboot]# file fengfeng.png # 查看图片大小修改成功
fengfeng.png: PNG image data, 640 x 480, 8-bit/color RGBA, non-interlaced
[root@pxe-server tftpboot]# vim dpxelinux.cfg/efault
2 timeout 100 # 设定等待时间为10s
10 menu background fengfeng.png # 替换安装背景图片
62 menu label AUTH INSTALL # 设定安装时的语言提示
65 menu default # 设定默认指定位置