什么是PXE
- PXE,全名 Pre-boot Execution Environment,预启动执行环境;
- 通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;
- 由 Intel 和 Systemsoft 公司于 1999 年 9 月 20 日公布的技术;
- Client/Server 的工作模式;
- PXE 客户端会调用网际协议 (IP)、用户数据报协议(UDP)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP) 等网络协议;
- PXE 客户端 (client) 这个术语是指机器在 PXE 启动过程中的角色。一个 PXE 客户端可以是一台服务器、笔记本电脑或者其他装有 PXE 启动代码的机器(我们电脑的网卡)。
原理
(1) 客户端PXE网卡启动
(2) 从DHCP服务器获得IP
(3) 从TFTP服务器上下载pxelinux.0、default
(4) 根据配置文件default指定的vmlinuz、initrd.img启动系统内核,并下载指定的ks.cfg文件
(5) 跟据ks.cfg去(HTTP/FTP/NFS)服务器下载RPM包并安装系统
(6)完成安装
步骤
1、安装vsftpd服务
# yum install vsftpd
# rpm -ql vsftpd
# systemctl restart vsftpd.service
# chkconfig vsftpd on
# chkconfig --list | grep vsftpd(检测服务是否运行成功)
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom
# cp -r /mnt/cdrom/. /var/ftp/ (把光盘上所有文件拷贝到ftp的根目录)
# du -sh /var/ftp
2、安装dhcp服务并配置
# yum install dhcp
# rpm -ql dhcp
# vim /etc/dhcp/dhcpd.conf
该配置文件内容为空,在底行模式下读取样例文件
:r /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample
然后修改后内容如下:
option domain-name "itecs.cn"; option domain-name-servers 222.222.222.222, 114.114.114.114; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.80.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.80.101 192.168.80.200; option subnet-mask 255.255.255.0; option routers 192.168.80.254; }
# service dhcpd
# service dhcpd configtest
# systemctl restart vsftpd.service
# chkconfig dhcpd on
3、安装tftp-server
安装tftp-server ,(yum -y install tftp-server)并修改配置文件/etc/xinetd.d/tftp
# default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot #指定tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件 disable = no #disable设为no表示启用该服务 per_source = 11 #每一个来源最多可以建立11个连接 cps = 100 2 #每秒连接数,达到100个就等待2秒 flags = IPv4 }
4、启动xinetd服务,(service xinetd start),准备Linux内核、初始化镜像文件。(内核vmliunz,镜像文件initrd.img)
5、准备pxe引导程序,安装syslinux ,yum -y install syslinux
6、安装并启用DHCP服务(yum -y install dhcp),配置主配置文件/etc/dhcp/dhcp.conf
option domain-name "itecs.cn"; option domain-name-servers 222.222.222.222, 114.114.114.114; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.80.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.80.101 192.168.80.200; option subnet-mask 255.255.255.0; option routers 192.168.80.254; next-server 192.168.80.100; filename "pxelinux.0"; }
7、配置kickstart安装文件
可以使用某台CentOS 7的/root/anaconda-ks.cfg作为模板手动修改,也可以使用system-config-kickstart命令配置ks.cfg文件:
在某台CentOS 7系统上安装所需包:
# yum -y install system-config-kickstart
在某台CentOS 7系统上运行图形界面进行设置:
# system-config-kickstart
载入/root/anaconda-ks.cfg作为模板:文件->打开文件,选择/root/anaconda-ks.cfg,在此界面上进行配置并保存后,放到服务端/tftpboot/ks.cfg。
8、进一步配置PXE远程安装服务器,使其能够实现kickstart无人值守安装。(需提前准备启动菜单文件)
1)安装应答文件,(yum -y install system-config-kickstart)并打开
2) 启用自动应答文件
实验过程中遇到的问题
1、CentOS - Yum安装软件时被PackageKit锁定
PackageKit是一个离线更新服务,基本没啥用途,应该永久禁用。修改/etc/yum/pluginconf.d/langpacks.conf
,将enabled=1
改为enabled=0