在上一篇文章中,我们已经配置了DHCP服务器和TFTP服务器,并且准备了所需的Ubuntu 22.04 Desktop的内核和初始化文件。在这一篇中,我们将配置PXE无人值守安装Ubuntu 22.04 Desktop的过程。
- 下载Ubuntu 22.04 Desktop的ISO镜像。
- 使用
mkisofs
工具创建一个可启动的ISO镜像。
sudo mkisofs -D -R -V "UBUNTU22.04" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /var/www/html/ubuntu22.04.iso /home/ubuntu-installer/ubuntu-22.04-desktop/
- 将ISO镜像挂载至某个目录,并复制内容至TFTP根目录下的相应Ubuntu版本目录中。
sudo mount -o loop /var/www/html/ubuntu22.04.iso /mnt
sudo cp -rT /mnt /var/lib/tftpboot/ubuntu22.04
sudo umount /mnt
- 修改
isolinx
目录下的isolinux.cfg
文件,添加自动安装选项。
menu title UBUNTU 22.04
label autoinstall
menu label ^Autoinstall Ubuntu 22.04
kernel vmlinuz
append initrd=initrd.lz inst.stage2=hd:LABEL=UBUNTU22.04 inst.ks=ftp://192.168.1.100/ubuntu22.04/autoinstall.ks
- 创建自动应答文件
autoinstall.ks
。
# ubuntu22.04-autoinstall.ks
d-i debian-installer/locale string en_US
d-i debian-installer/keymap select us
d-i debian-installer/screen-layout select headless
d-i debian-installer/audio-cdplay select skip
d-i debian-installer/reboot select skip
d-i debian-installer/enable-non-free boolean true
d-i clock-setup/utc boolean true
d-i time/zone string UTC
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string lvm
d-i partman-auto-lvm/guided_size string min-max
d-i partman-auto/purge_lvm_from_machine boolean true
d-i pkgsel/upgrade select full_upgrade
d-i pkgsel/language-packs string en
d-i pkgsel/update-policy select unattended-upgrades
d-i preseed/late_command string \
in-target apt-get install -y openssh-server; \
in-target systemctl enable ssh; \
in-target systemctl start ssh
d-i debian-installer/exit select finish
- 将自动应答文件
autoinstall.ks
上传到FTP服务器的Ubuntu 22.04目录下。
sudo cp /home/ubuntu-installer/autoinstall.ks /var/lib/tftpboot/ubuntu22.04/
- 确保TFTP服务器的权限设置正确,使其可以读取Ubuntu安装文件。
sudo chmod -R 755 /var/lib/tftpboot/ubuntu22.04
sudo chown -R nobody:nogroup /var/lib/tftpboot/ubuntu22.04
- 重启网络服务或者直接重启TFTP服务器。
sudo system