Taking the x86 pxelinux.0 from /usr/lib/PXELINUX/pxelinux.0 and otherwise doing the same tftp setup as in [1] and switching from the "maas" to the "default" network where I have set up dhcp to netboot by libvirt as in [1]. I can see netboot happening.
With that instead of pushing things from libvirt via kernel/initrd tags I now provide it via PXE similar to your config.
TL;DR
- tftp serves: lpxelinux.0 + pxe modules + PXEconfig
- nginx serves: kernel/initrd/squashfs
- qemu started directly without libvirt
Still gets the inintial kernel booting fine and then failing to mount the squash:
mount: mounting squash:http://192.168.122.1:80/squashfs on /root failed: No such device
I can from the initramfs mount it:
(initramfs) wget http://192.168.122.1:80/squashfs
Connecting to 192.168.122.1:80 (192.168.122.1:80)
squashfs 100% |*******************************| 174M 0:00:00 ETA
(initramfs) mount -t squashfs squashfs /root/
It is mounted just fine:
/dev/loop0 on /root type squashfs (ro,relatime)
It is possible that I'm back at the same ordering issue that I had of the IP coming up too late to mount the squashfs, but later works fine.
I mounted it with 2047/2048/2049 mb gusts without a problem.
Despite all work on this I'd still need a better reproducer :-/
I might take a look at rebuilding a more verbose initramfs for that after lunch.
Taking the x86 pxelinux.0 from /usr/lib/ PXELINUX/ pxelinux. 0 and otherwise doing the same tftp setup as in [1] and switching from the "maas" to the "default" network where I have set up dhcp to netboot by libvirt as in [1]. I can see netboot happening.
With that instead of pushing things from libvirt via kernel/initrd tags I now provide it via PXE similar to your config.
TL;DR initrd/ squashfs
- tftp serves: lpxelinux.0 + pxe modules + PXEconfig
- nginx serves: kernel/
- qemu started directly without libvirt
Still gets the inintial kernel booting fine and then failing to mount the squash: 192.168. 122.1:80/ squashfs on /root failed: No such device
mount: mounting squash:http://
I can from the initramfs mount it: 192.168. 122.1:80/ squashfs ******* ******* ******* ****| 174M 0:00:00 ETA
(initramfs) wget http://
Connecting to 192.168.122.1:80 (192.168.122.1:80)
squashfs 100% |******
(initramfs) mount -t squashfs squashfs /root/
It is mounted just fine:
/dev/loop0 on /root type squashfs (ro,relatime)
It is possible that I'm back at the same ordering issue that I had of the IP coming up too late to mount the squashfs, but later works fine.
I mounted it with 2047/2048/2049 mb gusts without a problem.
Despite all work on this I'd still need a better reproducer :-/
I might take a look at rebuilding a more verbose initramfs for that after lunch.
--- config details ---
$ find /srv/tftp/ boot-kernel ldlinux. c32 lpxelinux. 0 pxelinux. cfg pxelinux. cfg/01- 52-54-00- 3b-72-0a boot-initrd
/srv/tftp/
/srv/tftp/squashfs
/srv/tftp/
/srv/tftp/
/srv/tftp/
/srv/tftp/
/srv/tftp/
/srv/tftp/
Kernel/ initrd/ squash as described in comment #18
# modified to get scrollable direct console (but no iPXE VGA output) qemu-system- x86_64 -name guest=horsea- kvm-pod- 2047,debug- threads= on -machine pc-i440fx- bionic, accel=kvm, usb=off, dump-guest- core=off -m 2047 -realtime mlock=off -smp 1,sockets= 1,cores= 1,threads= 1 -cpu kvm64 -rtc base=utc -no-shutdown \ lib/uvtool/ libvirt/ images/ d9658e2f- d4c7-4a55- 8ecc-b216612fe4 10,format= raw,if= none,id= drive-virtio- disk0 \ blk-pci, scsi=off, bus=pci. 0,addr= 0x6,drive= drive-virtio- disk0,id= virtio- disk0,serial= d9658e2f- d4c7-4a55- 8ecc-b216612fe4 10 \ br=virbr0, helper= /usr/lib/ qemu/qemu- bridge- helper -net nic,model= virtio, macaddr= 52:54:00: 3b:72:0a on,id=charseria l0,logfile= /tmp/test. log \ charserial0, mode=readline \
#!/bin/bash
/usr/bin/
\
-nographic -serial mon:stdio \
\
-drive file=/var/
-device virtio-
\
-boot order=n,strict=on \
\
-net bridge,
# For access to the iPXE / lpxelinux graphical output
#-curses \
#-chardev stdio,mux=
#-serial chardev:charserial0 \
#-mon chardev=
# For access to a scrollable direct console and monitor
# -nographic -serial mon:stdio
$ cat /srv/tftp/ pxelinux. cfg/default
DEFAULT execute
LABEL execute 192.168. 122.1:80/ boot-kernel 192.168. 122.1:80/ boot-initrd 192.168. 122.1:80/ squashfs ip=:::: horsea- kvm-pod- 2047:BOOTIF ip6=off overlayroot=tmpfs overlayroot_ cfgdisk= disabled apparmor=0
SAY Booting under MY direction...
KERNEL http://
INITRD http://
APPEND console=ttyS0 nomodeset ro root=squash:http://
IPAPPEND 2
[1]: http:// ubuntu- on-big- iron.blogspot. com/2017/ 12/pxe- netboot- kvm-s390x. html