PXEBOOT配置
有关PXE启动的备忘录。
項目値開発機VMware Workstation v16.2.5サーバーのOSDebian 12サーバーのIPアドレス192.168.1.1DHCP払出IPアドレス192.168.1.16~31ルーターのIPアドレス192.168.1.254
请根据各自的环境调整各个设定值。
引入工作
引入软件包
sudo apt-get install isc-dhcp-server tftpd-hpa apache2
编辑设置文件 de
ISC DHCP服务器的配置文件 /etc/default/isc-dhcp-server
sudo sed -i.org /etc/default/isc-dhcp-server \
-e '/DHCPDv4_CONF/ s/^#//' \
-e '/DHCPDv4_PID/ s/^#//' \
-e '/INTERFACESv4/ s/".*"/"ens160"/'
/tftpd-hpa的配置设置在/etc/default/目录下。
sudo sed -i.org /etc/default/tftpd-hpa \
-e '/TFTP_DIRECTORY/ s%".*"%"/var/lib/tftp"%'
/etc/dhcp/dhcpd.conf的配置
sudo cp -p /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.org
cat <<- '_EOT_' | sed 's/^ *//g' | sudo tee "/etc/dhcp/dhcpd.conf"
option arch code 93 = unsigned integer 16;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.16 192.168.1.31;
option domain-name-servers 192.168.1.1;
option domain-name "workgroup";
option routers 192.168.1.254 ;
option broadcast-address 192.168.1.255;
default-lease-time 3600;
max-lease-time 86400;
# option time-servers ntp.nict.jp;
# option subnet-mask 255.255.255.0;
# option netbios-dd-server 192.168.1.1;
group {
next-server 192.168.1.1;
if option arch = 00:07 or option arch = 00:09 {
filename "bootnetx64.efi";
} else {
filename "pxelinux.0";
}
# MAC address: xx:xx:xx:xx:xx:xx
host Client01 { hardware ethernet xx:xx:xx:xx:xx:xx; }
host Client02 { hardware ethernet xx:xx:xx:xx:xx:xx; }
host Client03 { hardware ethernet xx:xx:xx:xx:xx:xx; }
}
}
_EOT_
创建目录
sudo mkdir -p /var/lib/tftp
在中文中,PXEBOOT的维护。
cd /var/lib/tftp/
sudo curl -L -# -R -S -o "debian_stable_netboot.tar.gz" "https://deb.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz"
sudo tar -xzf debian_stable_netboot.tar.gz
sudo rm debian_stable_netboot.tar.gz
sudo ln -s debian-installer/amd64/bootnetx64.efi .
sudo ln -s debian-installer/amd64/grubx64.efi .
sudo ln -s debian-installer/amd64/grub .
重新启动服务
sudo systemctl restart tftpd-hpa.service isc-dhcp-server.service apache2.service
sudo systemctl status tftpd-hpa.service isc-dhcp-server.service apache2.service
执行示例
从以下链接中下载自动配置文件,并将Debian12安装在/dev/nvme0n1上。
https://github.com/office-itou/Linux/tree/master/pxeboot
https://github.com/office-itou/Linux/tree/master/pxeboot
编辑设置文件
编辑syslinux.cfg文件
OLD_IFS="${IFS}"
IFS= INS_STR=$(
cat <<- '_EOT_' | sed -e 's/^ //g' | sed -z -e 's/\n/\\n/g' | sed -e 's/\\n$//'
label auto
menu label ^Automated install
kernel debian-installer/amd64/linux
append auto=true url=https://raw.githubusercontent.com/office-itou/Linux/master/pxeboot/preseed/debian/preseed_server.cfg priority=critical vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet
_EOT_
)
IFS="${OLD_IFS}"
sudo sed -i.org debian-installer/amd64/boot-screens/syslinux.cfg\
-e "/^timeout /a \\${INS_STR}"
编辑 grub.cfg
OLD_IFS="${IFS}"
IFS= INS_STR=$(
cat <<- '_EOT_' | sed -e 's/^ //g' | sed -z -e 's/\n/\\n/g' | sed -e 's/\\n$//'
menuentry 'Automated install' {
set background_color=black
linux /debian-installer/amd64/linux auto=true url=https://raw.githubusercontent.com/office-itou/Linux/master/pxeboot/preseed/debian/preseed_server.cfg priority=critical vga=788 --- quiet
initrd /debian-installer/amd64/initrd.gz
}
_EOT_
)
IFS="${OLD_IFS}"
sudo sed -i.org debian-installer/amd64/grub/grub.cfg\
-e "/^play /a \\${INS_STR}"