Trước đây, tôi đã thiết lập tính năng khởi động PXE của Ubuntu LiveCD bằng cách trích xuất ISO sang giá đỡ NFS và sao chép vmlinuz.efi và initrd.gz từ casper vào thư mục tftpboot bằng một số phép thuật kịch bản iPXE.
Điều này hoạt động hoàn hảo cho 16.04, 16.10 và 17.10 (Artful).
Với 18.04, lần đầu tiên tôi thấy rằng vmlinuz.efi không còn tồn tại trong casper, nhưng vmlinuz thì có. Vì vậy, tôi thử lại với một số thay đổi tên ...
Và bây giờ nó vẫn chưa hoàn thành khởi động. Tôi nhận được "chế độ khẩn cấp". Nhập vào 'tạp chí -xb' (như được đề xuất bởi dấu nhắc chế độ khẩn cấp) và duyệt dẫn đến các mục sau:
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.
Cứu giúp!
Đã thêm 2018-04-30:
Mã tập lệnh được sử dụng để trích xuất ISO cho mount PXE (TARGET được đặt thành tên hình ảnh, ví dụ bionic):
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.