网络拓扑图
服务器配置(安装介质)
安装TFTP服务器
安装tftp
yum install tftp-server
在/etc/xinet.d/tftp配置文件中
disabled = yes -> disabled = no
server_args = -s /var/lib/tftpboot #tftp的根目录
在防火墙中允许tftp服务的进入连接
firewall-cmd --add-service=tftp
BIOS客户端配置PXE服务器
获得pxelinux.0文件
从镜像源中Packages目录中拷贝
syslinux-version-architecture.rpm通过以下命令获得文件内容
mount -o loop,ro /mount/point/CentOS***.iso /path/to/mountpoint/ cp /path/to/mountpoint/Packages/syslinux-version-architecture.rpm destdir/ cd destdir/ rpm2cpio syslinux-version-architecture.rpm | cpio -dimv cp destdir/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux #获得我们需要的pxelinux.0文件创建安装目录(即/pxelinux)
将pxelinux.0 vesamenu.c32 initrd.img vmlinuz拷贝到/pxelinux的根目录下
mkdir /var/lib/tftpboot/pxelinux/ cp /path/to/mountpoint/{vesamenu.c32,initrd.img,vmlinuz} /var/lib/tftpboot/pxelinux/ #拷贝启动引导所需的文件在/pxelinux目录下创建/pxelinux.cfg目录
在/pxelinux.cfg目录下创建default(isolinux.cfg)文件,目录结构如下
+-- pxelinux | +-- initrd.img | +-- vesamenu.c32 | +-- pxelinux.cfg | | +-- default | +-- vmlinuz | +-- pxelinux.0
安装DHCP服务器
安装dhcp
yum install dhcp dhcp-devel
在/etc/dhcp/dhcpd.conf写入如下配置:
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
option architecture-type code 93 = unsigned integer 16;
subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.254;
range 10.0.0.2 10.0.0.253;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 10.0.0.1; #tftp address
if option architecture-type = 00:07 {
filename "uefi/shim.efi";
} else {
filename "pxelinux/pxelinux.0"; # tftp 目录下pxelinux的文件名
}
}
}
配置FTP服务器(安装源)
安装ftp服务器
yum install vsftpd
将ISO镜像中的Packages拷贝到/var/ftp/pub/目录下
mkdir /var/ftp/pub/centos/
mount -o loop,ro /path/to/image/CentOS*.iso mount-point/
cp -r mount-point/* /var/ftp/pub/centos/
cp mount-point/.treeinfo /var/ftp/pub/centos/
将kickstart脚本文件拷贝到/var/ftp/pub/目录下
cp /root/anaconda-ks.cfg /var/ftp/pub/kickstarts/ks.cfg
在pxelinux目录下的default文件中声明kickstart和repo库的位置
label linux_autoinst
menu label Install CentOS 7 x86_64 auto # 安装选项
menu default # 默认安装选项
kernel vmlinuz
append initrd=initrd.img inst.repo=ftp://10.0.0.1/pub/centos/ ks=ftp://10.0.0.1/pub/kickstarts/ks.cfg
环境相关
启动服务
systemctl start tftp
systemctl start vsftpd
systemctl start dhcpd
使服务开机启动
systemctl enable xinetd
systemctl enable vsftpd
systemctl enable dhcpd
关闭防火墙
systemctl disable firewalld # 关闭防火墙
setenforce 0 # 关闭selinux
环境要求
物理机
DHCP服务器与安装机需要在同一个交换机下
虚拟机
vmware保证两个虚机之间通过host-only网卡模式连接
virtualbox保证两个虚机之间通过桥接模式连接
错误处理
安装前
virtualbox
需要手动修改启动引导选项
重启dhcp服务失败
options选项中有未使用的参数
dhcp tftp服务器要在同一网段下
分配的ip也要和dhcp在同一网段
若tftp服务不稳定
则使用
yum -y install xinetd接管tftp服务
安装时
No space left on device
虚拟机的内存设置过小导致
安装包时出错
记住出错的包名,可能package中有重复的包(但版本不一致)
未解决package中的依赖关系
#使用以下命令解决依赖关系 rpm --initdb --dbpath /tmp/testdb rpm --test --dbpath /tmp/testdb -Uvh *.rpm
本文档详细介绍了使用PXE进行网络安装系统的步骤,包括配置TFTP服务器、在BIOS中设置PXE启动、安装DHCP服务器、搭建FTP安装源,以及环境要求和错误处理。关键操作涉及安装tftp、配置dhcp服务,确保服务器与客户端在同一网络环境中,并提供kickstart自动化安装脚本。
1321

被折叠的 条评论
为什么被折叠?



