VM fails to boot on 7.3-6 [Booting From Rom]

drjaymz@

Member
Jan 19, 2022
124
5
23
102
I have multiple legacy VM's that do not boot on the latest version, but ran fine on a recent but previous version. V7.3-6

1678975999450.png

Previous Version: V7.2-3, same machine, booted and at login prompt.
1678976111891.png

They are identical machines, the newer server is restored from a backup. To check the backup I restored that to the old server and that still boots ok.
The problem seems to be that the newer 1.16 SeaBIOS seems to have forgotten how or can't be bothered to boot.
So after a lot of faff I tried 1.15 from the older machine and its not that, I successfully got it to start with that (see screen shot), but same issue.
I could not easily install 7.2-3 over the 7.3-6, although I'm pretty certain that would have worked, it would then mean that I might install a security update and then find my machines don't boot.

All the VM's that don't boot are all the same kernel - which is an antique.
The VM's do no not boot from a boot disk, rather kernel and initial ram disk and for that you don't specify a boot device, you do it via the arguments:

INI:
root@proxmoxy3:~# cat /etc/pve/qemu-server/209.conf
acpi: 1
args: -kernel '/mnt/pve/replica/boot/vmlinuz-2.6.24-23-server' -initrd '/mnt/pve/replica/boot/initrd.img-2.6.24-23-server' -append 'root=/dev/vda ro console=tty1 console=ttyS0,115200 3'
boot: 
cores: 4
memory: 2048
meta: creation-qemu=6.2.0,ctime=1677858262
name: mxy3
net0: rtl8139=0A:35:78:D1:4A:8B,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
scsihw: virtio-scsi-pci
serial0: socket
smbios1: uuid=aa53c672-223d-4db8-b25d-4b83d8d14938
sockets: 1
virtio0: local-zfs:vm-209-disk-0,iothread=1,size=2G
virtio1: local-zfs:vm-209-disk-1,size=1G
virtio2: local-zfs:vm-209-disk-2,size=4G
virtio3: local-zfs:vm-209-disk-3,iothread=1,size=2G
vmgenid: a1688554-f6b8-46cc-ac36-bbb7eaa3fc60

I checked that /mnt/pve/replica/boot/vmlinuz-2.6.24-23-server is accessible and that its md5sum matches that of the machine it does work on. I also checked that the disks are mountable and md5 those, but you don't need anything to boot the kernel. And it doesn't boot.

I have a bunch of others with different kernel versions on 7.3-6 and they are perfectly happy.

So it looks like something has got broken in the latest builds and its not SeaBIOS. If you want to reproduce all you'll need is the kernel and initram files.

I'd like to get to the bottom of it because it makes it hard for me to trust Proxmox updates if someday probably way after an update was installed my machines are unbootable, thats serious - especially if there isn't an easy way for me to uninstall the updates. Even Micro$oft let you do that, and you can have a snapshot for the whole OS.
 

Attachments

  • 1678975947013.png
    1678975947013.png
    155.7 KB · Views: 3
I got these machines to boot by substituting a different kernel. The closest I could find was 3.2 which is a fair jump and not recommended.
Some compatibility issue has been introduced by a recent update that is for certain.

I did think that 3.2 will work with much newer hardware and therefore it could be that qemu just looks newer and thats why the older kernel fails - but we have some running happily on 2.4.
I did try the older linux kernel option for the VM but that didn't do anything and I can't find any documentation (that makes human sense) as to what those options do anyway.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!