PXE安装操作系统
1. Redhat_8.0操作系统安装
1.1. 安装方式:ISO光盘安装
1.2. 安装方式:PXE网络安装
1.2.1. 安装环境:vmware
- 1台Redhat_8.0已经通过光盘镜像安装好redhat8.0操作系统。主机名为:Workstation
- 新建4台虚拟机,选择PXE方式安装操作系统。4台主机名分别为servera、serverb、serverc、serverd
- Workstation上分别安装dhcp服务、ftp服务、YUM等等。
|
|
Workstation |
servera |
获取内容 |
|
1 |
Dhcp服务 |
获取IP地址 |
IP地址 |
|
2 |
Tftp-server |
获取引导文件boot |
Pxelinux.0 |
|
3 |
Tftp-server |
获取内核和初始化ram文件 |
Linux+initram |
|
4 |
http、ftp、nfs |
本笔记选择ftp方式安装 |
|
|
5 |
Kickstart |
获取自动安装文件ks |
|
图表 8‑1
- 文件路径
Pxelinux.0 :syslinux/pxelinux.0 //需要安装syslinux安装包
Linux : iso
Initram : iso
1.2.2. 安装步骤
1.2.2.1. 虚拟机全新安装redhat8.0操作系统。
- 光盘安装操作系统步骤省略。
- 修改主机名为:Workstation
# hostnamectl set-hostname Workstation

1.2.2.2. 配置YUM库
- 虚拟机挂在光盘
- 创建文件夹:# Mkdir /home/redhat_8.0/
- 挂在光盘镜像:# mount /dev/sr0 /mnt
- # 拷贝光盘所有文件到新的目录:cp /mnt/* /home/redhat_8.0/
- 配置YUM文件
[root@ Workstation ~]# cd /etc/yum.repos.d/
[root@ Workstation yum.repos.d]# mv redhat.repo redhat.repo.bak
[root@ Workstation yum.repos.d]# vim redhat.repo
[redhat_BaseOS]
name=BaseOS
baseurl=file:///home/redhat_8.0/BaseOS
gpgcheck=1
gpgkey=file:///home/redhat_8.0/RPM-GPG-KEY-redhat-release
enabled=1
[redhat_AppStream]
name=AppStream
baseurl=file:///home/redhat_8.0/AppStream
gpgcheck=1
gpgkey=file:///home/redhat_8.0/RPM-GPG-KEY-redhat-release
enabled=1
配置完成后保存退出:wq
- 测试yum是否正常:[root@ Workstation yum.repos.d]#yum repolist all
1.2.2.3. 安装dhcp服务
- 查看dhcp服务名称:
[root@R Workstation ~]# yum search dhcp
Yum库里找到安装包:dhcp-server.x86_64
- 查看服务安装包可用版本:
[root@ Workstation ~]# yum list dhcp-server
- 查看服务器已经安装的包:
[root@ Workstation ~]# rpm -qa dhcp*
-qa:可以使用“*”通配符查看
-ql:不可以使用“*”通配符查看,必须写完成名称
-qc:不可以使用“*”通配符查看,必须写完成名称
- 安装dhcp服务包
[root@Workstation ~]# yum install -y dhcp-server
- 确认命令是否执行成功:返回值为0表示命令执行成功
[root@Workstation ~]# echo $?
0
- 执行rpm命令查看安装包状态及配置文件
rpm -qa dhcp*
rpm -ql dhcp-server
rpm -qc dhcp-server
- 查看配置文件
cat /etc/dhcp/dhcpd.conf
根据配置文件提示内容将原始配置文件备份,并复制新的配置文件
mv dhcpd.conf dhcpd.conf.bak
cp /usr/share/doc/dhcp-server/dhcpd.conf.example dhcpd.conf
- 编辑新的配置文件,只保留如下行:
allow bootp;
allow booting;
option domain-name "localdomain";
option domain-name-servers 192.168.179.2;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.179.0 netmask 255.255.255.0{
range 192.168.179.10 192.168.179.20;
filename "/pxelinux.0";
next-server 192.168.179.2;
}
文件中“allow bootp”“allow booting”需要man查找“dhcpd.conf”文件获得
“option routers 192.168.179.2; ”:man查找“dhcpd.conf”文件获得,并直接指明tftp服务器IP地址
“filename “?”;” :需要安装syslinux包获得。
- Man 查看dhcpd.conf配置,并查找“bootp”,启动协议
[root@Workstation ~]# man -k dhcp
dhcpd.conf (5) - dhcpd configuration file
[root@Workstation ~]# man dhcpd.conf
a.输入“/bootp”,按“n”键查找,直到找到:
“allow bootp;” “allow booting;”复制在dhcpd.conf配置文件首行,表示所有地址池都生效。
b.输入“/server”,按“n”键查找,直到找到:
filename "XncdHMX";
next-server 192.168.179.2;
#这两条致命tftp地址及tftp文件,文件名称需要单独查找,参照tftp文件路径。
1.2.2.4. 安装tftp安装包
[root@Workstation ~]# yum search tftp
[root@Workstation ~]# yum list tftp-server
[root@Workstation ~]# rpm -qa tftp*
[root@Workstation ~]# yum install -y tftp*
[root@Workstation ~]# yum list tftp-server
[root@Workstation ~]# rpm -qa tftp*
[root@Workstation ~]# rpm -ql tftp-server
[root@Workstation ~]# rpm -qc tftp-server
- 启动tftp服务
[root@Workstation ~]# systemctl enable --now tftp
- 创建pxelinux.cfg文件夹
[root@Workstation ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
- 启动dhcp服务
[root@Workstation ~]# systemctl enable --now dhcpd.service
- 查看防火墙是否放行相应服务
[root@Workstation ~]# firewall-cmd --list-all
- 防火墙放行dhcp服务,并立即生效。
[root@Workstation ~]# firewall-cmd --permanent --add-service={dhcp,tftp}
Success
[root@Workstation ~]# firewall-cmd --reload
success
1.2.2.5. 安装syslinux安装包及组件包
[root@Workstation ~]# yum search syslinux
[root@Workstation ~]# yum list syslinux
[root@Workstation ~]# rpm -qa syslinux
[root@Workstation ~]# yum install -y syslinux
[root@Workstation ~]# yum install -y syslinux-tftpboot.noarch
[root@Workstation ~]# yum list syslinux
[root@Workstation ~]# rpm -qa syslinux
[root@Workstation ~]# rpm -ql syslinux
[root@Workstation ~]# rpm -qc syslinux
- 安装完成后,查找与PXE有关的文件
[root@Workstation ~]# rpm -ql syslinux | grep -i pxe
/usr/share/doc/syslinux/pxechn.txt
/usr/share/doc/syslinux/pxelinux.txt
- 查看pxelinux.txt文件,根据文件步骤,生成pxelinux.0文件
此处提到/tftpboot 目录,因为目前还没有安装tftp服务,所有还没有生成此路径,下面安装tftp服务,并要求将“default”文件放到“/tftproot/pxelinux.cfg”目录下
/mybootdir/pxelinux.cfg/default
- 查看syslinux-tftpboot全部文件,全部文件都在”/tftpboot”文件夹下
[root@Workstation ~]# rpm -ql syslinux-tftpboot | grep -i pxelinux.0
/tftpboot/pxelinux.0
- 需要将tftp服务的的默认路径/var/lib/tftpboot更改为/tftpboot
- Ftft服务没有配置文件,需要修改服务文件
[root@Workstation ~]# yum search tftp
[root@Workstation ~]# rpm -ql tftp-server
[root@Workstation ~]# vim /usr/lib/systemd/system/tftp.service
ExecStart=/usr/sbin/in.tftpd -s /tftpboot
[root@Workstation ~]# systemctl restart tftp
Warning: The unit file, source configuration file or drop-ins of tftp.service changed on disk. Run 'systemctl daemon-reload' to reload units.
[root@Workstation ~]# systemctl daemon-reload
- /tftpboot重新创建pxelinux.cfg文件夹
[root@Workstation ~]# mkdir /tftpboot/pxelinux.cfg
- 拷贝需要的文件
isolinux.cfg文件里提到的提到vmlinuz,initrd.img,vesamenu.c32,boot.msg 4个文件。
isolinux.cfg= default=启动菜单
[root@Workstation ~]# cd /home/redhat_8.0/
[root@Workstation redhat_8.0]# cp isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@Workstation redhat_8.0]# cp isolinux/{vesamenu.c32,boot.msg} /tftpboot/
[root@Workstation redhat_8.0]# cp images/pxeboot/{vmlinuz,initrd.img} /tftpboot/
- 修改default启动文件
[root@Workstation ~]# cd /tftpboot/pxelinux.cfg/
[root@Workstation pxelinux.cfg]# chmod 744 default
[root@Workstation pxelinux.cfg]# ll default
-rwx------. 1 root root 3159 Mar 24 00:03 default
[root@Workstation pxelinux.cfg]# vim default
label linux
menu label ^Install Red Hat Enterprise Linux 8.0.0
menu default
kernel vmlinuz
append initrd=initrd.img inst.stage2=ftp://192.168.179.132 quiet
label check
menu label Test this ^media & install Red Hat Enterprise Linux 8.0.0
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-8-0-0-BaseOS-x86_64 rd.live.check quiet
- 重启servera
l 确定servera可以获取IP地址
l 确定servera可以连接到tftp server
l 确定出现如下安装界面,且默认选项为“install red hat ………”
- 至此,dhcp服务、tftp服务、启动文件都已经修改完成,接下来配置ftp服务,ftp服务提供操作系统进行的下载。
- 安装服务
1.2.2.6. 安装FTP服务
[root@Workstation ~]# yum search ftp
[root@Workstation ~]# yum list vsftpd
[root@Workstation ~]# rpm -qa vsftpd
[root@Workstation ~]# yum install -y vsftpd
[root@Workstation ~]# yum list vsftpd
[root@Workstation ~]# rpm -qa vsftpd
[root@Workstation ~]# rpm -qc vsftpd
[root@Workstation ~]# rpm -ql vsftpd
- 编辑配置文件
[root@Workstation ~]# vim /etc/vsftpd/vsftpd.conf
l 查找匿名用户根目录
[root@Workstation ~]# man vsftpd.conf
搜索“anon_root”
发现没有默认的匿名用户根目录
l 启用匿名用户并创建匿名用户根目录
anonymous_enable=YES
anon_root=/home/redhat_8.0/
- 启动服务
[root@Workstation ~]# systemctl enable --now vsftpd
- 防火墙放行服务
[root@Workstation ~]# firewall-cmd --permanent --add-service=ftp
success
[root@Workstation ~]# firewall-cmd --reload
success
[root@Workstation ~]# firewall-cmd --list-all
- 关闭防火墙
由于未知原因,防火墙上放行服务后还是无法访问FTP,关闭防火墙后正常,暂时关闭,后续再考虑具体原因。
[root@Workstation ~]# systemctl stop firewalld.service
- 至此,servera已经识别到操作系统镜像,接下来制作ks文件,实现自动化安装。
1.2.2.7. 制作kickstart文件,实现自动化安装
- Ks文件生成方式:建议使用目标镜像手动安装一台机器操作系统,从本系统的/root目录获取anaconda-ks.cfg文件。
[root@Workstation ~]# ls /root/anaconda-ks.cfg
- 根据需求修改anaconda-ks.cfg
- 将ks文件拷贝到ftp上,并重命名为ks.cfg
[root@localhost ~]# scp anaconda-ks.cfg root@192.168.179.132:/home/redhat_8.0/ks1.cfg
- 编辑default文件,添加ks文件路径
[root@Workstation ~]# vim /tftpboot/pxelinux.cfg/default
Append initrd=initrd.img inst.stage2=ftp://192.168.179.132 inst.ks=ftp://192.168.179.132/ks.cfg quiet
- 至此,serverb、serverc、serverd测试可以实现全自动化安装操作系统。
浙公网安备 33010602011771号