On this virtualisation system I’ve upgraded to buster (using libvirt and
Linux-kvm), netbooting VMs no longer works:
-----BEGIN cutting here may damage your screen surface-----
SeaBIOS (version 1.12.0-1)
Machine UUID …
Press ESC for boot menu.
Booting from Hard disk...
Boot failed: not a bootable disk
No bootable device.
_
-----END cutting here may damage your screen surface-----
If I, however, change the NIC to pcnet, it works:
-----BEGIN cutting here may damage your screen surface-----
SeaBIOS (version 1.12.0-1)
Machine UUID …
iPXE (http://ipxe.org) 00:03.0 C980 PCI2.10 PnP PMM+…
Press ESC for boot menu.
Booting from Hard disk...
Boot failed: not a bootable disk
Booting from ROM...
iPXE (PCI 00:03.0) starting execution... ok
iPXE initialising devices...ok
iPXE 1.0.0+git-20190125.36a4c85-1 -- Open Source […]
-----END cutting here may damage your screen surface-----
-- System Information:
Debian Release: 10.0
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 4.19.0-5-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_FIRMWARE_WORKAROUND
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE=C (charmap=UTF-8)
Shell: /bin/sh linked to /bin/lksh
Init: sysvinit (via /sbin/init)
-- no debconf information
I can confirm the issue is still there with the VM defined in libvirt.
The command from Shengjing Zhu gives the following output:
-----BEGIN cutting here may damage your screen surface-----
SeaBIOS (version 1.12.0-1)
iPXE (http://ipxe.org) 00:03.0 C980 PCI2.10 PnP PMM+7FF90020+7FED0020 C980
Booting from Hard Disk...
Boot failed: could not read the boot disk
Booting from Floppy...
Boot failed: could not read the boot disk
Booting from DVD/CD...
Boot failed: Could not read from CDROM (code 0003)
Booting from ROM...
iPXE (PCI 00:03.0) starting execution...ok
iPXE initialising devices...ok
iPXE 1.0.0+git-20190125.36a4c85-1 -- Open Source Network Boot Firmware -- http:/
/ipxe.org
Features: DNS HTTP iSCSI NFS TFTP AoE ELF MBOOT PXE bzImage Menu PXEXT
net0: 52:54:00:12:34:56 using virtio-net on 0000:00:03.0 (open)
[Link:up, TX:0 TXE:0 RX:0 RXE:0]
Configuring (net0 52:54:00:12:34:56)...... ok
net0: 10.0.2.15/255.255.255.0 gw 10.0.2.2
net0: fec0::5054:ff:fe12:3456/64 gw fe80::2
net0: fe80::5054:ff:fe12:3456/64
Nothing to boot: No such file or directory (http://ipxe.org/2d03e13b)
No more network devices
No bootable device.
-----END cutting here may damage your screen surface-----
So perhaps this is a libvirt thing?
libvirt runs the domain with:
26266 ? Sl 0:02 qemu-system-x86_64 -enable-kvm -name guest=foo,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-15-foo/master-key.aes -machine pc-1.1,accel=kvm,usb=off,dump-guest-core=off -cpu Nehalem-IBRS,vme=on,ss=on,x2apic=on,tsc-deadline=on,hypervisor=on,arat=on,tsc_adjust=on,umip=on,ssbd=on,rdtscp=on -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 8b2c4678-c507-4652-afce-de7dda4cb3e0 -no-user-config -nodefaults -chardev socket,id=charmonitor,fd=37,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot menu=on,strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/dev/vg-evolvis-wirt/foo,format=raw,if=none,id=drive-virtio-disk0,cache=none,aio=native -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,write-cache=on -netdev tap,fd=39,id=hostnet0,vhost=on,vhostfd=40 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:09:55:44,bus=pci.0,addr=0x3,bootindex=1 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0,bus=usb.0,port=1 -vnc 127.0.0.1:12 -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on
I can confirm it to fail when run from the command line with:
qemu-system-x86_64 -enable-kvm -name guest=foo,debug-threads=on -machine pc-1.1,accel=kvm,usb=off,dump-guest-core=off -cpu Nehalem-IBRS,vme=on,ss=on,x2apic=on,tsc-deadline=on,hypervisor=on,arat=on,tsc_adjust=on,umip=on,ssbd=on,rdtscp=on -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 8b2c4678-c507-4652-afce-de7dda4cb3e0 -no-user-config -nodefaults -rtc base=utc -no-shutdown -boot menu=on,strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/dev/vg-evolvis-wirt/foo,format=raw,if=none,id=drive-virtio-disk0,cache=none,aio=native -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,write-cache=on -netdev tap,fd=39,id=hostnet0,vhost=on,vhostfd=40 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:09:55:44,bus=pci.0,addr=0x3,bootindex=1 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0,bus=usb.0,port=1 -vnc 127.0.0.1:12 -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on
Trying to minify… success!
Adding “-machine pc-1.1,accel=kvm,usb=off,dump-guest-core=off” to
the command given by Shengjing Zhu makes it fail:
-----BEGIN cutting here may damage your screen surface-----
SeaBIOS (version 1.12.0-1)
Booting from Hard Disk...
Boot failed: could not read the boot disk
Booting from Floppy...
Boot failed: could not read the boot disk
Booting from DVD/CD...
Boot failed: Could not read from CDROM (code 0003)
No bootable device.
-----END cutting here may damage your screen surface-----
So perhaps this is a qemu thing? Or ipxe only works with USB? Or…?
-- System Information:
Debian Release: 10.3
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.19.0-8-amd64 (SMP w/8 CPU cores)
This is also broken on an up-to-date-enough sid system.
$ qemu-system-x86_64 -device virtio-net-pci,netdev=net0 -netdev user,id=net0 -nographic
boots.
$ qemu-system-x86_64 -device virtio-net-pci,netdev=net0 -netdev user,id=net0 -nographic -machine pc-1.1
fails to boot.
Downgrading *only* the package ipxe-qemu to 1.0.0+git-20161027.b991c67-1
on that very sid system…
… doesn’t make this succeed either. Huh.
-- System Information:
Debian Release: bullseye/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'oldstable-updates'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'oldstable'), (1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.9.0-4-amd64 (SMP w/2 CPU threads)
Kernel taint flags: TAINT_WARN
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set