2. 自定义PXE环境
- pxe服务器
- 硬件基本信息
- CPU大于4核
- 内存大于4G
- 硬盘大于50G
- 系统基本信息
- 系统版本:centos7.4
- selinux:关闭
- Firewalld:关闭
- yum源:阿里云的yum源
- 硬件基本信息
- client服务器
- 硬件基本信息
- CPU大于4核
- 内存大于4G
- 硬盘大于50G
- 支持网络启动
- 硬件基本信息
2.1. PXE环境中配置
承接之前的文章,继续进行操作
- 通过网络启动,到达装机界面
- 按alt+ctrl+F2,进入命令界面
- 安装dmidecode命令
rpm -i http://192.168.17.128/iso/centos8u1/BaseOS/Packages/dmidecode-3.2-3.el8.x86_64.rpm --nodeps
-
测试dmidecode成功
2.2. 自定义PXE环境
也就是将dmidecode命令集成到img文件中。
2.2.1. 定位PXE环境的文件
因为最后一个加载的是install.img,猜测是这个文件。
[root@pxe01 ~]# tail /var/log/httpd/access_log
192.168.17.101 - - [02/May/2020:00:32:20 +0800] "GET /centos8-pxe/vmlinuz HTTP/1.0" 200 8106744 "-" "gPXE/1.0.0"
192.168.17.101 - - [02/May/2020:00:32:20 +0800] "GET /centos8-pxe/initrd.img HTTP/1.0" 200 62113500 "-" "gPXE/1.0.0"
192.168.17.129 - - [02/May/2020:00:32:36 +0800] "GET /iso/centos8u1/.treeinfo HTTP/1.1" 200 1520 "-" "curl/7.61.1"
192.168.17.129 - - [02/May/2020:00:32:36 +0800] "GET /iso/centos8u1/images/install.img HTTP/1.1" 200 533405696 "-" "curl/7.61.1"
192.168.17.129 - - [02/May/2020:00:32:44 +0800] "GET /iso/centos8u1/images/updates.img HTTP/1.1" 404 230 "-" "curl/7.61.1"
192.168.17.129 - - [02/May/2020:00:32:44 +0800] "GET /iso/centos8u1/images/product.img HTTP/1.1" 404 230 "-" "curl/7.61.1"
2.2.2. 解压文件
- 解压install.img文件
mount -t squashfs -o loop /var/www/html/iso/centos8u1/images/install.img /mnt/install_img/
[root@pxe01 ~]# mkdir /mnt/install_img
[root@pxe01 ~]# mount -t squashfs -o loop /var/www/html/iso/centos8u1/images/install.img /mnt/install_img/
[root@pxe01 ~]# ls /mnt/install_img/
LiveOS
[root@pxe01 ~]# tree /mnt/install_img/
/mnt/install_img/
└── LiveOS
└── rootfs.img
1 directory, 1 file
[root@pxe01 ~]# rsync -a /mnt/install_img/ /tmp/install/
[root@pxe01 ~]# ls /tmp/install/
LiveOS
- 解压rootfs.img
mount -t ext4 -o loop /tmp/install/LiveOS/rootfs.img /mnt/rootfs_img/
[root@pxe01 ~]# file /tmp/install/LiveOS/rootfs.img
/tmp/install/LiveOS/rootfs.img: Linux rev 1.0 ext4 filesystem data
[root@pxe01 ~]# mkdir /mnt/rootfs_img
[root@pxe01 ~]# mount -t ext4 -o loop /tmp/install/LiveOS/rootfs.img /mnt/rootfs_img/
[root@pxe01 ~]# ls /mnt/rootfs_img/
bin boot dev etc firmware lib lib64 lost+found mnt modules proc root run sbin sys tmp usr var
2.2.3. 添加dmidecode
- 将rpm包解压到目录中
rpm2cpio dmidecode-3.2-3.el8.x86_64.rpm | cpio -idmv
[root@pxe01 ~]# cd /mnt/rootfs_img/
[root@pxe01 rootfs_img]# wget http://192.168.17.128/iso/centos8u1/BaseOS/Packages/dmidecode-3.2-3.el8.x86_64.rpm
[root@pxe01 rootfs_img]# ls usr/sbin/dmidecode
ls: cannot access usr/sbin/dmidecode: No such file or directory
[root@pxe01 rootfs_img]# rpm2cpio dmidecode-3.2-3.el8.x86_64.rpm | cpio -idm
451 blocks
[root@pxe01 rootfs_img]# ls usr/sbin/dmidecode
usr/sbin/dmidecode
2.2.4. 压缩制作install.img文件
- 生成新的rootfs.img
umount 就可以,最终/tmp/install/LiveOS/rootfs.img
就是我们做好的。
[root@pxe01 ~]# umount /mnt/rootfs_img/
[root@pxe01 ~]# ls /mnt/rootfs_img/
[root@pxe01 ~]# mount -t ext4 -o loop /tmp/install/LiveOS/rootfs.img /mnt/rootfs_img/
[root@pxe01 ~]# ls /mnt/rootfs_img/usr/sbin/dmidecode
/mnt/rootfs_img/usr/sbin/dmidecode
[root@pxe01 ~]# umount /mnt/rootfs_img/
- 生成新的install.img
安装squashfs-tools工具
mksquashfs . ../squashfs.img
[root@pxe01 ~]# yum install squashfs-tools
[root@pxe01 ~]# cd /tmp/install/
[root@pxe01 install]# mksquashfs . ../squashfs.img
[root@pxe01 install]# cd
[root@pxe01 ~]# umount /mnt/install_img/
[root@pxe01 ~]# mount -t squashfs -o loop /tmp/squashfs.img /mnt/
[root@pxe01 ~]# ls /mnt/
LiveOS
[root@pxe01 ~]# umount /mnt/
2.2.5. 搭建自己的装机环境
- 将iso里面的images文件夹拷贝到我们的pxe文件夹中
[root@pxe01 ~]# cp /var/www/html/iso/centos8u1/.treeinfo /var/www/html/centos8-pxe/.treeinfo
[root@pxe01 ~]# cp -R /var/www/html/iso/centos8u1/images /var/www/html/centos8-pxe/images
- 替换install.img 文件
[root@pxe01 iso]# cp /tmp/squashfs.img /var/www/html/centos8-pxe/images/install.img
- 设置启动时进入的stage2路径
文件路径: /var/lib/tftpboot/pxelinux.cfg/default
inst.stage2=http://192.168.17.128/centos8-pxe
2.3. 测试更改的PXE环境
生效
2.4. 解决的问题
- 无盘环境(PXE环境)下驱动与工具的问题
在PXE环境下添加驱动和其它需要的工具