1,环境介绍
1.1,ks文件及本地网卡需手动配置
1.2,环境采用10.10.10.3作为PXE服务器,10.10.10.11-10.10.10.253 作为地址池,掩码24
2,部署环境准备,关闭防火墙及Selinux
systemctl stop firewalld
systemctl disable firewalld
setenfore 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
3,安装本次部署需要的服务软件包
yum install -y dhcp tftp-server httpd
4,配置dhcp服务,用于客户端获取ip
cat > /etc/dhcp/dhcpd.conf << END
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.11 10.10.10.253;
default-lease-time 3600;
filename "OpenEuler_arm/grubaa64.efi";
# 如果是x86,则文件名称为"grubx64.efi "
next-server 10.10.10.3;
}
END
systemctl restart dhcpd
5,配置HTTP服务器,用于客户端获取安装源及ks.cfg自动化安装配置。
5.1 安装源
mkdir -p /var/www/html/OpenEuler_arm
cp -ar /mnt/iso/* /var/www/html/OpenEuler_arm/
5.2 配置ks文件
mkdir -p /root/anaconda-ks.cfg /var/www/html/ks
cp /root/anaconda-ks.cfg /var/www/html/ks/ks_OpenEuler_arm.cfg
chmod +r /var/www/html/ks/ks_OpenEuler_arm.cfg
5.3 ks文件注意修改处
# 第1个地方,源-
# Use CDROM installation media
#cdrom
url --url=http://10.10.10.3/OpenEuler_arm
# 第2个地方,安装方式-
# Use graphical install
#graphical
text
# 第3个地方-格全盘-
#clearpart --none --initlabel
clearpart --all --initlabel
# 第4个地方-修改分区大小-
# Disk partitioning information
part /boot --fstype="xfs" --ondisk=sda --size=1024
part pv.252 --fstype="lvmpv" --ondisk=sda --size=29695
volgroup centos --pesize=4096 pv.252
logvol / --fstype="xfs" --size=28667 --name=root --vgname=centos
logvol /nas --fstype="xfs" --size=1024 --name=nas --vgname=centos
第5个地方-
%post
#中间可以加一些安装后配置,
%end
第6个地方,加入reboot,安装完成后自动重启-
reboot
6,配置xftp-server服务
6.1,拷贝pxe需要的临时启动文件
cd /var/lib/tftpboot
mkdir OpenEuler_arm
cp /mnt/iso/images/pxeboot/initrd.img /var/lib/tftpboot/OpenEuler_arm/
cp /mnt/iso/images/pxeboot/vmlinuz /var/lib/tftpboot/OpenEuler_arm/
cp /mnt/iso/EFI/BOOT/grub.cfg /var/lib/tftpboot/OpenEuler_arm/
cp /mnt/iso/EFI/BOOT/grubaa64.efi /var/lib/tftpboot/OpenEuler_arm/
# 如果是x86,则拷贝"grubx64.efi "
cp /mnt/iso/EFI/BOOT/grubx64.efi /var/lib/tftpboot/OpenEuler_arm/
6.2,启动菜单文件修改,不同iso可能不同[本文已OpenEuler_arm为例]
[root@pxes-efi OpenEuler_arm]# ll
total 69052
-r-xr-xr-x 1 root root 2641920 Mar 16 18:28 grubaa64.efi
-r--r--r-- 1 root root 1913 Mar 17 02:38 grub.cfg
-r--r--r-- 1 root root 57574632 Mar 16 18:27 initrd.img
-r-xr-xr-x 1 root root 10481819 Mar 16 18:27 vmlinuz
[root@pxes-efi OpenEuler_arm]# vim grub.cfg
set default="0" //第一处修改:默认选择菜单0,即安装非测试
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set timeout=20 //第二处修改:设置菜单界面等待时长,如果稳定,可以设置短一些,这样提高pxe效率
### END /etc/grub.d/00_header ###
search --no-floppy --set=root -l 'openEuler-22.03-LTS-aarch64'
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Install openEuler 22.03-LTS' --class red --class gnu-linux --class gnu --class os {
linux OpenEuler_arm/vmlinuz ro inst.geoloc=0 console=ttyAMA0 console=tty0 rd.iscsi.waitnet=0 inst.ks=http:/10.10.10.3/ks/ks_OpenEuler_arm.cfg // 第三处修改:前面的console为显示屏显示参数,这里主要是追加 inst.ks的key和value;
initrd OpenEuler_arm/initrd.img // 第四处修改:指定initrd位置及文件位置为"OpenEuler_arm/initrd.img";
}
// 第五处:其实以下内容可以删除,但是个人习惯仅修改有用部分,所以在实验中,下文做了保留;
menuentry 'Test this media & install openEuler 22.03-LTS' --class red --class gnu-linux --class gnu --class os {
linux /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=openEuler-22.03-LTS-aarch64 rd.live.check inst.geoloc=0 console=tty0 smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 video=efifb:off video=VGA-1:640x480-32@60me fpi_to_tail=off
initrd /images/pxeboot/initrd.img
}
submenu 'Troubleshooting -->' {
menuentry 'Install openEuler 22.03-LTS in basic graphics mode' --class red --class gnu-linux --class gnu --class os {
linux /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=openEuler-22.03-LTS-aarch64 nomodeset inst.geoloc=0 console=tty0 smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 video=efifb:off video=VGA-1:640x480-32@60me fpi_to_tail=off
initrd /images/pxeboot/initrd.img
}
menuentry 'Rescue the openEuler system' --class red --class gnu-linux --class gnu --class os {
linux /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=openEuler-22.03-LTS-aarch64 rescue console=tty0 smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 video=efifb:off video=VGA-1:640x480-32@60me fpi_to_tail=off
initrd /images/pxeboot/initrd.img
}
}
7,重启服务,并配置http和tftp开机自启
# 注意dhcp建议不要开机自启,避免干扰到同网段别的服务器。
systemctl restart dhcpd
systemctl restart httpd
systemctl restart tftp.socket
systemctl enable httpd
systemctl enable tftp.socket
8,FAQ
8.1,VMvare虚拟机仅主机模式与主机通信问题可能原因:
8.2,VMvare,新建pxec-客户端,配置efi启动方法
虚拟机设置 >> 选项 >> 高级 >> 固件类型 >> UEFI(E)。