博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在CentOS 7上安装PXE服务器
阅读量:6041 次
发布时间:2019-06-20

本文共 5445 字,大约阅读时间需要 18 分钟。

hot3.png

作者:张瑞旗 / 腾科IT教育集团RHCA讲师

PXE,即Preboot eXecute Environment的缩写,译作“启动前运行环境”,以“服务器/客户端”模式工作,可以让我们通过网络启动一台没有安装过操作系统的电脑,并协助其安装操作系统。安装了这种环境、能提供网络安装操作系统功能的服务器,就是PXE服务器。

安装过操作系统的都知道,安装过程中,我们需要不时地回答安装程序提出的问题,脱不开身。以前使用光盘安装操作系统的,还需要守到最后,根据提示及时更换光盘。要是公司新开一个办公室,一次要安装几十台甚至上百台电脑,还要这样一台一台地安装,那可真得累个半死。

本文将在VMware Worksation上运行的一台Linux CentOS 7安装成PXE服务器,并创建另外一台虚拟机充当客户端主机,验证一下网络安装操作系统的过程。现在能搜索到的教程,大多是Linux 6时代的攻略和命令,不忍卒读,于是,我就整理出这篇在Linux CentOS 7上安装PXE服务器的文章来。好了,废话少说,我们直奔主题。

要想在CentOS 7上安装PXE服务器,要完成以下任务:

1、    安装dhcp、tftp、vsftpd服务器等软件
2、    设置IP地址,比如说:192.168.1.1
3、    关闭SELinux、firewalld
4、    配置dhcpd、tftp
5、    将CentOS 7映像文件部署到FTP服务器的输入目录中

具体步骤

第01步

安装dhcpd、tftp、syslinux、wget和vsftpd

yum install -y dhcp tftp tftp-server syslinux wget vsftpd

第02步

关闭SELinux和防火墙

手动修改/etc/selinux/config,确保SELINUX=disabled
setenforce 0
systemctl disable firewalld
systemctl stop firewalld
poweroff

第03步

在VMWARE中将虚拟机的网络适配器设置为“桥接模式”。

第04步

这时候已经不需要上网了,所以可以为CentOS 7随意设置IP地址。

nmcli con show
nmcli con modi ens32 ipv4.method manual ipv4.addresses 192.168.1.1/24
#我的网卡接口id是ens32。于是将它的IP设为192.168.1.1。
nmcli con up ens32
nmcli con show
ip a
#确认192.168.1.1已经成功设置。

第05步

设置dhcp服务器。

vim /etc/dhcp/dhcpd.conf
确保配置文件内容如下:

 ddns-update-style interim; ignore client-updates; authoritative; allow booting; allow bootp; allow unknown-clients; # A slightly different configuration for an internal subnet. subnet 192.168.1.0 netmask 255.255.255.0 {   range 192.168.1.2 192.168.1.253;   option domain-name-servers 192.168.1.1;   option domain-name "server1.example.com";   option routers 192.168.1.1;   option broadcast-address 192.168.1.255;   default-lease-time 600;   max-lease-time 7200;    # PXE SERVER IP   next-server 192.168.1.1; #  DHCP server ip   filename "pxelinux.0"; }

至此,上文的filename所指的pxelinux.0目前还没有部署到位。最终它的位置是/tftpboot/pxelinux.0,但不要在这里使用路径,仅使用这个名称就好。上面的每一行结尾都是一个分号(;)。

第06步

为xinetd配置TFTP服务器,即将tftp服务交给xinetd来管理。

vim /etc/xinetd.d/tftp
/etc/xinetd.d/tftp的内容如下:

service tftp{     socket_type             = dgram     protocol                = udp     wait                    = yes     user                    = root     server                  = /usr/sbin/in.tftpd     server_args             = -s /tftpboot     disable                 = no     per_source              = 11     cps                     = 100 2     flags                   = IPv4 }

我们要将tftp服务的位置挪到/tftpboot中,将有个程序仍然认为它的路径在/var/lib/tftpboot中,所以,要改回来。
vim /usr/lib/systemd/system/tftp.service
将ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot
修改为:ExecStart=/usr/sbin/in.tftpd -s /tftpboot
看,只有这样,才能与/etc/xinetd.d/tftp中的相应内容保持一致。

第07步

设置TFTP服务器网络启动文件。首先要创建一个路径/tftpboot。

mkdir /tftpboot
chmod 777 /tftpboot

 cp -v /usr/share/syslinux/pxelinux.0 /tftpboot

 cp -v /usr/share/syslinux/menu.c32 /tftpboot
 cp -v /usr/share/syslinux/memdisk /tftpboot
 cp -v /usr/share/syslinux/mboot.c32 /tftpboot
 cp -v /usr/share/syslinux/chain.c32 /tftpboot

再创建两个路径:

mkdir /tftpboot/pxelinux.cfg
mkdir /tftpboot/netboot/

第08步

将CentOS的ISO文件发布到FTP的文件夹中。要做到这一点,必须要有一个CentOS 7的ISO文件。我要把它以虚拟光盘的形式挂载到虚拟机中。操作步骤如下图所示:

点击屏幕右下方光盘图标,在短菜单中选择“连接到主机”

lsblk查看光盘挂载的路径,
如sr0    /run/media/root/CentOS 7 x86_64
mkdir -p /var/ftp/pub
cp -r /run/media/root/'CentOS 7 x86_64'/* /var/ftp/pub
“CentOS 7 x86_64”要用引号括起来,否则会出错。

第09步

将启动时需要使用的镜像文件拷贝到目录位置。

cp /var/ftp/pub/images/pxeboot/vmlinuz /tftpboot/netboot/
cp /var/ftp/pub/images/pxeboot/initrd.img /tftpboot/netboot/

第10步

创建一个kickstart,即无人值守安装文件,名字叫ks.cfg。

vim /var/ftp/pub/ks.cfg
其内容如下:
 

#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use NFS installation media url --url="ftp://192.168.1.1/pub/" rootpw --plaintext 123456#root的密码设为123456 # Use graphical install graphical firstboot disable # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux disabled # Installation logging level logging level=info# System timezone timezone Asia/Shanghai # System bootloader configuration bootloader location=mbr clearpart --all --initlabel part swap --asprimary --fstype="swap" --size=1024 part /boot --fstype xfs --size=200 part pv.01 --size=1 --grow volgroup rootvg01 pv.01 logvol / --fstype xfs --name=lv01 --vgname=rootvg01 --size=1 --grow%packages @core wget %end %post %end

保存后,用ksvalidator检查一下是否有语法错误。

ksvalidator /var/ftp/pub/ks.cfg

这个kickstart文件,一般分为三个部分,分别用“%pre %end”、“%packages %end”、“%post %end”来界定。上面这个文件中的%pre %end部分的界定符号省略了,只剩下后面两个。

第11步

创建一个pxe菜单

vim /tftpboot/pxelinux.cfg/default
default的内容如下:

 default menu.c32 prompt 0 timeout 30 MENU TITLE Togogo.net Linux Training LABEL centos7_x64 MENU LABEL CentOS 7 X64 KERNEL /netboot/vmlinuz APPEND  initrd=/netboot/initrd.img inst.repo=ftp://192.168.1.1/pub ks=ftp://192.168.1.1/pub/ks.cfg

最后这个APPEND写成一行,中间不要断行。

第12步

systemctl enable dhcpd

systemctl enable tftp
systemctl enable vsftpd
将以上服务设为开机自动启动。

systemctl restart vsftpd

systemctl restart dhcpd
systemctl restart tftp
重新启动以上服务。

验证

在VMware中创建一个新的虚拟机,以充当验证PXE服务器的客户机。将其网络适配器的网络连接设为“桥接模式”。

 
然后启动这台虚拟机。于是,我们就能看到,这台虚拟机可以在无人干预的情况下安装CentOS Linux的Minimal,即最小化安装。

这个菜单设置的是等待3秒就开始安装。没安装之前,“CentOS 7 x64”菜单项还在高亮的时候,按下Tab键,就会看到如下的字样:

> vmlinuz initrd=initrd.img inst=ftp://192.168.1.1/pub ks=ftp://192.168.1.1/pub/ks.cfg

不正是我在第11步设置的菜单项吗?

 

后记

这个过程可能会遇到的困难是将PXE客户机与PXE服务器放到同一个网段中。如果我们在家里上网,物理网卡的IP地址可能是192.168.1.X,那就可以完全按照上面的步骤进行。

如果物理网卡的IP地址是192.168.0.X,甚至是别的什么,那就手动修改网卡的IP,把它变成192.168.1.X。因为,VMware的桥接设置,会让“PXE客户机”获取192.168.1.0/24这个网段的IP地址,正好跟“PXE服务器”相同。
 

转载于:https://my.oschina.net/u/589241/blog/3059255

你可能感兴趣的文章
宁夏助“云”升腾正当时
查看>>
云安全企业ObsidianSecurity获A轮融资950万美元
查看>>
德国数据中心服务公司T-Systems获BayernLB等超1亿欧元融资
查看>>
看Google怎样玩转可再生能源
查看>>
乌云停摆危机幕后:“正面黑客”究竟是什么人?
查看>>
ARM同IMEC展开合作:推动7nm芯片工艺发展
查看>>
三星出局 传台积电独家代工苹果未来两代A10、A11芯片
查看>>
传输技术大跃进!物联网市场今年破兆
查看>>
沃达丰2017年商用NB-IoT技术 核心网和无线网升级开始
查看>>
概念火热 智能家居究竟是否值得改装?
查看>>
华为年报透露员工收入:2016年平均薪酬近60万
查看>>
从标签切入,数字营销公司Tealium 完成3500万美元E轮融资
查看>>
调查︱董事会常常指责IT团队在网络攻击后不作为
查看>>
国家控制进度了:对能源局最新“领跑者”政策的解读
查看>>
Android自动获取短信验证码
查看>>
内存好日子又到头了,DDR3/DDR4要涨价
查看>>
安装BugFree 3.0.2时出现的问题
查看>>
开启DevOps评估之旅:DevOps能否为企业带来价值?
查看>>
微软急疯了?部分用户称PC自动升级到Win10
查看>>
2016年11款最佳企业级云管理工具:如何管理云计算的使用和成本?
查看>>