PXE
简介:
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。
PXE启动过程:
客户端个人电脑开机后, 在 TCP/IP Bootrom 获得控制权之前先做自我测试。
1、安装必要的服务
yum install dhcp tftp-server.x86_64 httpd syslinux -y
这里的sylinux服务于pxe的引导加载程序
systemctl stop firewalld
开启tftp服务
vim /etc/xinetd.d/tftp
systemctl restart xinetd.service
2、把镜像中isolinux/ 目录下的所有东西都拷贝到 /var/lib/tfpboot/
cd /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 .
cp isolinux.cfg pxelinux.cfg/default
mkdir pxelinux.cfg
注:这里有几个需要注意的文件
vmlinux 系统内核文件
initrd.img 初始化镜像文件
isolinux.cfg 该文件里是系统启动时默认的一些设置
3、配置dhcp服务
systemctl start dhcpd
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
next-server 172.25.254.200; 找172.25.254.200的主机获取ip
filename="pxelinux.0"; 启动时读取pxelinux.0文件
systemctl restart dhcpd
4、打开虚拟机管理界面virt-manager,启动测试
选择一台虚拟机,并选择网卡启动
启动虚拟机,获取的ip为172.25.254.180
5、更改默认的启动配置
vim pxelinux.cfg/default
timeout 100
menu background xuwei.png
menu title PRISON BREAK
这里是安装不了的,系统启动时会读取下面的文件
vmlinux 系统内核文件
initrd.img 初始化镜像文件
[root@server tftpboot]# vim pxelinux.cfg/default
65 append initrd=initrd.img repo=http://172.25.254.68/rhel7.0
之后就能安装
6、pxe配合kickstart全自动安装系统
yum install system-config-kickstart -y
system-config-kickstart 打开图形界面配置
保存ks.cfg 到/var/www/html
vim /ks.cfg 编辑ks.cfg
%packages
@base
lftp
%end
%post
cat >>/etc/yum.repos.d/yyum.repo <
name=rhel7
baseurl=http://172.25.254.68/rhel7.0
gpgcheck=0
enable=1
EOF
rm -rf /etc/sysconfig/network-scripts/ifcfg-eth0
cat >>/etc/sysconfig/network-scripts/ifcfg-eth0 <
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.100
PREFIX=24
EOF
systemctl restart network
yum install httpd -y
yum install start httpd
systemctl enable httpd
systemctl stop firewalld
echo 172.25.254.100> /var/www/html/index.html
%end
保存推出之后
[root@server tftpboot]# vim pxelinux.cfg/default
65 append initrd=initrd.img repo=http://172.25.254.68/rhel7.0 ks=http://172.25.254.68/ks.cfg
ks脚本写在哪,这里的地址要对应,我的在68主机,所以之前要配置好httpd服务
测试:自动装系统