I then observed the following in `virsh console`'s output (note the "Unmount All Filesystems", which is what I think is causing the problem):
[ OK ] Reached target Unmount All Filesystems.
Stopping Monitoring of LVM…meventd or progress polling...
Stopping Device-Mapper Multipath Device Controller...
[ OK ] Stopped Create Static Device Nodes in /dev.
[ OK ] Stopped Create System Users.
[ OK ] Stopped Remount Root and Kernel File Systems.
[ OK ] Stopped File System Check on Root Device.
[ OK ] Stopped Device-Mapper Multipath Device Controller.
[ OK ] Stopped Monitoring of LVM2… dmeventd or progress polling.
[ OK ] Reached target Shutdown.
[ OK ] Reached target Final Step.
Starting Reboot via kexec...
[ 53.030829] systemd-udevd[372]: proc_inode_cache(1258:kexec.service): Worker [960] did not accept message, killing the worker: Connection refused
[ 53.032915] systemd-udevd[372]: proc_inode_cache(1258:kexec.service): Worker [954] did not accept message, killing the worker: Connection refused
[ 53.034697] systemd-udevd[372]: proc_inode_cache(1258:kexec.service): Worker [953] did not accept message, killing the worker: Connection refused
[ 53.036756] systemd-udevd[372]: proc_inode_cache(1258:kexec.service): Worker [955] did not accept message, killing the worker: Connection refused
[ 53.039144] systemd-udevd[372]: proc_inode_cache(1258:kexec.service): Worker [956] did not accept message, killing the worker: Connection refused
[ 53.041049] systemd-udevd[372]: proc_inode_cache(1258:kexec.service): Worker [958] did not accept message, killing the worker: Connection refused
[ 53.042673] systemd-udevd[372]: proc_inode_cache(1258:kexec.service): Worker [961] did not accept message, killing the worker: Connection refused
[ 53.123845] shutdown[1]: (sd-kexec) failed with exit status 1.
[ 53.138542] reboot: Restarting system
[ 0.000000] Linux version 5.4.0-167-generic (buildd@lcy02-amd64-010) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)) #184-Ubuntu SMP Tue Oct 31 09:21:49 UTC 2023 (Ubuntu 5.4.0-167.184-generic 5.4.252)
(I initially tried to re-reproduce using an Incus VM (and so a community image rather than a cloud-images one) and could not do so. Executing the above `kexec` command produced "ima: impossible to appraise a kernel image without a file descriptor; try using kexec_file_load syscall." in the console. Adding `-s`/`--kexec-file-syscall` to the kexec command caused it to exit zero, and the VM did then successfully kexec on `reboot`.)
Apologies, I completely missed your comment, Nick! I was just able to reproduce this using uvtool.
To launch the VM (and monitor the console output):
uvt-simplestrea ms-libvirt sync release=focal arch=amd64
uvt-kvm create firsttest release=focal
virsh console firsttest
Then, within the instance via `uvt-kvm ssh firsttest`:
sudo apt update
sudo apt install kexec-tools
sudo reboot # I wanted to check `virsh console` was getting output
After reboot and reconnecting:
cd /boot /boot/vmlinuz- 5.4.0-167- generic root=LABEL= cloudimg- rootfs ro console=tty1 console=ttyS0'
sudo kexec -l vmlinuz --initrd initrd.img --append 'BOOT_IMAGE=
sudo reboot
I then observed the following in `virsh console`'s output (note the "Unmount All Filesystems", which is what I think is causing the problem):
[ OK ] Reached target Unmount All Filesystems. cache(1258: kexec.service) : Worker [960] did not accept message, killing the worker: Connection refused cache(1258: kexec.service) : Worker [954] did not accept message, killing the worker: Connection refused cache(1258: kexec.service) : Worker [953] did not accept message, killing the worker: Connection refused cache(1258: kexec.service) : Worker [955] did not accept message, killing the worker: Connection refused cache(1258: kexec.service) : Worker [956] did not accept message, killing the worker: Connection refused cache(1258: kexec.service) : Worker [958] did not accept message, killing the worker: Connection refused cache(1258: kexec.service) : Worker [961] did not accept message, killing the worker: Connection refused lcy02-amd64- 010) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~ 20.04.2) ) #184-Ubuntu SMP Tue Oct 31 09:21:49 UTC 2023 (Ubuntu 5.4.0-167. 184-generic 5.4.252)
Stopping Monitoring of LVM…meventd or progress polling...
Stopping Device-Mapper Multipath Device Controller...
[ OK ] Stopped Create Static Device Nodes in /dev.
[ OK ] Stopped Create System Users.
[ OK ] Stopped Remount Root and Kernel File Systems.
[ OK ] Stopped File System Check on Root Device.
[ OK ] Stopped Device-Mapper Multipath Device Controller.
[ OK ] Stopped Monitoring of LVM2… dmeventd or progress polling.
[ OK ] Reached target Shutdown.
[ OK ] Reached target Final Step.
Starting Reboot via kexec...
[ 53.030829] systemd-udevd[372]: proc_inode_
[ 53.032915] systemd-udevd[372]: proc_inode_
[ 53.034697] systemd-udevd[372]: proc_inode_
[ 53.036756] systemd-udevd[372]: proc_inode_
[ 53.039144] systemd-udevd[372]: proc_inode_
[ 53.041049] systemd-udevd[372]: proc_inode_
[ 53.042673] systemd-udevd[372]: proc_inode_
[ 53.123845] shutdown[1]: (sd-kexec) failed with exit status 1.
[ 53.138542] reboot: Restarting system
[ 0.000000] Linux version 5.4.0-167-generic (buildd@
(I initially tried to re-reproduce using an Incus VM (and so a community image rather than a cloud-images one) and could not do so. Executing the above `kexec` command produced "ima: impossible to appraise a kernel image without a file descriptor; try using kexec_file_load syscall." in the console. Adding `-s`/`- -kexec- file-syscall` to the kexec command caused it to exit zero, and the VM did then successfully kexec on `reboot`.)