PXE是数据中心常用的部署工具,本文介绍PXE部署实操。分为硬件接线和软件配置两部分说。
【硬件接线】
数据中心的网络可能有多种规划及用途,用作PXE Boot的网络可和业务及管理网分开,单独规划,PXE Server和PXE Client在同一个网段。
【软件配置】
1. 关闭防火墙
ufw disable
2. 搭建HTTP服务器
apt install apache2
cp <你的镜像文件所在路径>/ubuntu-22.04.4-live-server-amd64.iso /var/www/html/
mkdir /var/www/html/Ubuntu_22.04/
mount /var/www/html/ubuntu-22.04.4-live-server.iso /var/www/html/Ubuntu_22.04/
3. 搭建TFTP服务器
apt install tftpd-hpa
4. 配置UEFI PXE启动项
mkdir /srv/tftp/UEFI
cp /var/www/html/Ubuntu_22.04/casper/{vmlinuz,initrd} /srv/tftp/UEFI/
cd ~
5. 签名shim-signed
apt download shim-signed
dpkg -x shim-signed*deb shim
cp shim/usr/lib/shim/shimx64.efi.signed.latest /srv/tftp/UEFI/bootx64.efi
6. 签名grub-efi-amd64-signed
apt download grub-efi-amd64-signed
dpkg -x grub-efi-amd64-signed*deb grub
cp grub/usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed /srv/tftp/UEFI/grubx64.efi
7. 签名grub-common
apt download grub-common
dpkg -x grub-common*deb grub-common
cp grub-common/usr/share/grub/unicode.pf2 /srv/tftp/UEFI/
8. 创建配置文件
mkdir /srv/tftp/grub
vim /srv/tftp/grub/grub.
内容如下:
set default="0"
set timeout=-1
if loadfont unicode;then
set gfxmode=auto
set locale_dir=$prefix/locale
set lang=en_US
fi
terminal_output gfxterm
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30; then
clear
fi
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep"]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
set linux_gfx_mode=keep
export linux_gfx_mode
menuentry 'Ubuntu 22.04 IPv4' {
gfxmode $linux_gfx_mode
linux /UEFI/vmlinuz root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://PXE Server IP/ubuntu-22.04.4-live-server-amd64.iso
initrd /UEFI/initrd
}
menuentry 'Ubuntu 22.04 IPv6' {
gfxmode $linux_gfx_mode
linux /UEFI/vmlinuz root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://PXE Server IP/ubuntu-22.04.4-live-server-amd64.iso
initrd /UEFI/initrd
}
9. 搭建 DHCP 服务器, 安装isc-dhcp-server
apt install isc-dhcp-server
10. 配置PXE Server 网络端口
vim /etc/netplan/01-network-manager-all.yaml
11. 配置PXE Client网络端口
12. 配置dhcpd
vim /etc/default/isc-dhcp-server
添加PXE Server网络端口
13. 配置/etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
14. 启动dhcp服务
systemctl restart dhcpd
systemctl status dhcpd
至此,支持IPv4的UEFI PXE Boot的配置完成。可以尝试修改PXE Client从网络启动,并测试是否能正常启动http、tftp等获取grub及kernel文件进行安装。