ก่อนหน้านี้ฉันได้ตั้งค่าการบูต PXE ของ Ubuntu LiveCD โดยแยก ISO ไปยัง NFS mount และคัดลอก vmlinuz.efi และ initrd.gz จากแคสเปอร์ไปยังไดเรกทอรี tftpboot ด้วยเวทมนตร์การเขียนสคริปต์ iPXE
สิ่งนี้ทำงานได้อย่างไม่มีที่ติสำหรับ 16.04, 16.10 และ 17.10 (เก่ง)
ด้วย 18.04 ฉันแรกพบว่า vmlinuz.efi ไม่มีอยู่ในแคสเปอร์ แต่ vmlinuz ทำ ดังนั้นฉันลองอีกครั้งด้วยการเปลี่ยนชื่อ ...
และตอนนี้ก็ยังบูตไม่เสร็จสมบูรณ์ ฉันได้รับ "โหมดฉุกเฉิน" การพิมพ์ใน 'journalctl -xb' (ตามที่ได้รับการแนะนำจากพรอมต์โหมดฉุกเฉิน) และการค้นหาจะนำไปสู่สิ่งต่อไปนี้:
Unit sys-fs-fuse-connections has begun starting up.
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
ubuntu systemd[1]: Failed to set up mount unit: Device or resource busy
sys-kernel-config.mount: Mount process finished, but there is no mount.
sys-kernel-config.mount: Failed with result 'protocol'.
Failed to mount Kernel Configuration File System.
ช่วยด้วย!
เพิ่ม 2018-04-30:
รหัสสคริปต์ที่ใช้ในการแยก ISO สำหรับการติดตั้ง PXE (TARGET ตั้งเป็นชื่อภาพเช่นไบโอนิค):
set -e
# Look for bionic.iso as the ISO I am going to extract.
TARGET=invalid.iso
[ -f bionic.iso ] && TARGET=bionic
echo TARGET=$TARGET
# Mount the ISO to the /tmp directory
sudo rm -rf /var/nfs/$TARGET/*
sudo rm -rf /tmp/$TARGET
mkdir /tmp/$TARGET
sudo mount -o loop ~/$TARGET.iso /tmp/$TARGET
# Clear up the NFS directory where things will be copied (and copy them)
sudo rm -rf /var/nfs/$TARGET
sudo mkdir /var/nfs/$TARGET
sudo rsync -avH /tmp/$TARGET/ /var/nfs/$TARGET
# I've not had luck with iPXE changing filesystems to find
# vmlinuz, vmlinuz.efi, or initrd.gz... so I copy those files
# specifically to the tftp directory structure so the boot loader
# can load them.
sudo rm -rf /var/lib/tftpboot/$TARGET
sudo mkdir /var/lib/tftpboot/$TARGET
sudo cp /tmp/$TARGET/casper/vmlinuz* /var/lib/tftpboot/$TARGET/.
sudo cp /tmp/$TARGET/casper/initrd.lz /var/lib/tftpboot/$TARGET/.
# Cleanup: unmount the ISO and remove the temp directory
sudo umount /tmp/$TARGET/
sudo rm -rf /tmp/$TARGET/
echo Done.