Ubuntu-PXE部署
适用于各版本的Ubuntu桌面版和服务器版
一、
宿主机:win11
虚拟化工具:vmware17
使用vmware部署三台虚拟机
虚拟机1:作为pxe服务端,配置双网卡,不同网段,分别提供uefi和leagcy的pxe服务
虚拟机2:pxe客户端,uefi安装
虚拟机3:pxe服务端,leagcy安装
为了测试,关闭vmware自身nat和仅主机的dhcp服务
文中提交的资料链接:
https://wwvx.lanzoul.com/b02nh7wwte 密码:ysir
ubuntu-pxe-bak.tar.gz 在openeuler2003sp3测试的数据
syslinux-6.03.zip pxe引导文件
二、
虚拟机1配置
环境:openEuler-20.03-LTS-SP3-x86_64-dvd.iso
测试系统:ubuntu-22.04-desktop-amd64.iso
网卡ip
ip1 192.168.88.23/24 对应nat模式
ip2 192.168.89.23/24 对应仅主机模式
#安装pxe部署所需服务
yum install httpd dhcp xinetd tftp-server -y
xinetd配置
说明:disable=no,开启tftp-server
vim /etc/xinetd.d/tftp

service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
dhcpd配置
说明:两个网段,192.168.88.0段提供uefi-pxe服务,192.168.89.0段提供bios-pxe服务
具体各项说明问百度

# minimal sample /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.88.0 netmask 255.255.255.0 {
range 192.168.88.110 192.168.88.120;
option routers 192.168.88.2;
option domain-name-servers 1.1.1.1, 8.8.8.8;
# option domain-name "mydomain.example";
}
subnet 192.168.89.0 netmask 255.255.255.0 {
range 192.168.89.110 192.168.89.120;
option routers 192.168.89.2;
option domain-name-servers 1.1.1.1, 8.8.8.8;
# option domain-name "mydomain.example";
}
# pxe client, uefi64
host uefi-client {
hardware ethernet 00:0c:29:55:C6:3F;
fixed-address 192.168.88.25;
next-server 192.168.88.23;
filename "efi64/syslinux.efi";
}
# pxe client, bios
host bios-client {
hardware ethernet 00:0c:29:fd:4f:2e;
fixed-address 192.168.89.25;
next-server 192.168.89.23;
filename "bios/lpxelinux.0";
}
准备必要的文件
说明:uefi和bios-pxe启动引导文件
cd root
wget https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.gz
mkdir syslinux
unzip -q -O syslinux
mkdir /var/lib/tftpboot/{efi,bios}
cd syslinux
cp efi/syslinux.efi com32/menu/* com32/libutil/libutil.c32 com32/elflink/ldlinux/ldlinux.e64 com32/lib/libcom32.c32 /var/lib/tftpboot/efi64
cp core/lpxelinux.0 com32/menu/* com32/libutil/libutil.c32 com32/elflink/ldlinux/ldlinux.c32 com32/lib/libcom32.c32 /var/lib/tftpboot/bios/
cd /var/lib/tftpboot
mkdir bios/pxelinux.cfg/ efi64/pxelinux.cfg
vim bios/pxelinux.cfg/default

DEFAULT menu.c32
PROMPT 0
MENU TITLE PXE Boot Menu
MENU COLOR TABMSG 37;40 #80ffffff #00000000
MENU COLOR HOTSEL 30;47 #40000000 #20ffffff
MENU COLOR SEL 30;47 #40000000 #20ffffff
MENU COLOR SCROLLBAR 30;47 #40000000 #20ffffff
MENU WIDTH 80
MENU MARGIN 22
MENU PASSWORDMARGIN 26
MENU ROWS 6
MENU TABMSGROW 15
MENU CMDLINEROW 15
MENU ENDROW 24
MENU PASSWORDROW 12
MENU TIMEOUTROW 13
MENU VSHIFT 6
NOESCAPE 1
ALLOWOPTIONS 0
MENU AUTOBOOT Starting Local System in # seconds
LABEL bootlocal
MENU LABEL ^Local Boot
LOCALBOOT 0
TIMEOUT 30
TOTALTIMEOUT 3000
LABEL UbuntuDesktop-22.04-live BIOS
MENU default
MENU LABEL Ubuntu 22.04 Desktop Live CD
KERNEL http://192.168.89.23/vmlinuz
INITRD http://192.168.89.23/initrd
APPEND root=/dev/ram0 ramdisk_size=400000 boot=casper ip=dhcp netboot=url url=http://192.168.89.23/ubuntu-22.04-desktop-amd64.iso
cp bios/pxelinux.cfg/default efi/pxelinux.cfg/default
vim efi/pxelinux.cfg/default

修改ip
....
....
LABEL UbuntuDesktop-22.04-live UEFI
MENU default
MENU LABEL Ubuntu 22.04 Desktop Live CD
KERNEL http://192.168.88.23/vmlinuz
INITRD http://192.168.88.23/initrd
APPEND root=/dev/ram0 ramdisk_size=400000 boot=casper ip=dhcp netboot=url url=http://192.168.88.23/ubuntu-22.04-desktop-amd64.iso
提前传输镜像到/root
cp /root/ubuntu-22.04-desktop-amd64.iso /var/www/html
mkdir /var/www/html/ubuntu2204
cd /var/www/html/
mount ubuntu-22.04-desktop-amd64.iso ubuntu2204
cp ubuntu2204/casper/{initrd,vmlinuz} ./
服务管理
systemctl enable –now httpd dhcpd xinetd
systemctl disable –now firewalld
配置完成,文件目录展示
/var/lib/tftpboot目录

/var/www/html目录

虚拟机配置图
pxe-服务端

pxe-客户端1

pxe-客户端2

问题记录:
1、ueif和bios启动方式
使用uefi引导时,需要修改虚拟机固件
修改固件步骤:新建虚拟机-编辑虚拟机设置-选项-高级-固件类型,可选择方式有BIOS和UEFI
2、镜像大小
本次使用的ubuntu-22.04-desktop-amd64.iso大小为3.4G
在配置/var/lib/tftpboot/bios/pxelinux.cfg/default文件时,
其中amdisk_size=400000设置为4G,需大于3.4G
APPEND root=/dev/ram0 ramdisk_size=400000 boot=casper ip=dhcp netboot=url url=http://192.168.88.23/ubuntu-22.04-desktop-amd64.iso
3、pxe客户端内存需更大,包含ramdisk_size=40000,故比4G还要大,测试时5.7G可以启动,更小的内存需要测试
4、dhcp配置中,设置了只有特定mac地址才能pxe启动,如下图,只有mac为00:0c:29:55:C6:3F,才能pxe-uefi启动,获取固定ip192.168.88.25
# pxe client, uefi64
host uefi-client {
hardware ethernet 00:0c:29:55:C6:3F;
fixed-address 192.168.88.25;
next-server 192.168.88.23;
filename "efi64/syslinux.efi";
}
dhcp.conf配置中pxe客户端硬件地址获取
类似如hardware ethernet 00:0c:29:55:C6:3F;
查看vmware虚拟机下的日志文件
vmware.log文件搜索关键词 ethernet

5、关闭vmware自身提供的dhcp服务
vmware-编辑-虚拟机网络编辑器

6、补充一份,不指定固定mac,所有dhcp ip均可pxe部署
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.88.0 netmask 255.255.255.0 {
range 192.168.88.110 192.168.88.120;
option routers 192.168.88.2;
option domain-name-servers 1.1.1.1, 8.8.8.8;
next-server 192.168.88.23;
filename "efi64/syslinux.efi";
}
subnet 192.168.89.0 netmask 255.255.255.0 {
range 192.168.89.110 192.168.89.120;
option routers 192.168.89.2;
option domain-name-servers 1.1.1.1, 8.8.8.8;
next-server 192.168.89.23;
filename "bios/lpxelinux.0";
}
7、本此演示的pxe安装,不包含自动安装
演示效果:
uefi

bios

后记:ubuntu-server版自动安装
本文来自博客园,作者:赛博狗尾草,转载请注明原文链接:https://www.cnblogs.com/gpysir/p/18951462
浙公网安备 33010602011771号