On Sun, 12 Dec 2021, Tim Woodall wrote:
On Sun, 12 Dec 2021, Andy Smith wrote:Hi Tim, On Fri, Dec 10, 2021 at 10:11:04PM +0000, Tim Woodall wrote:Is there a simple way to tell if the kernel/hypervisor that was used to boot is the one currently installed in /boot.I do not do this - I build my own hypervisor packages when there is an upstream XSA that affects me and then I have to schedule downtime to boot into it, so I am well aware of what is booted into what. However, it seems you can read the ELF build ID from the kernel file and also from "xl info" (or /sys/hypervisor/properties/buildid if you decode it). Please see attached file check_running_hypervisor.sh for an example.Awesome! Thank you.
Interesting, and weird. /sys/hypervisor/properties/buildid isn't consistent in its output: tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2ffffffff d859ad3a8188ffff tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2 tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2ffffffff 58c331 tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2 tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2 tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2 tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2 tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2 tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2 tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2 tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2 tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2ffffffff 58cd31 tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2ffffffff 584d78368188ffff tim@dirac:~ (none)$ od -v -w20 -t x1 -A none /sys/hypervisor/properties/buildid | sed 's/ //g' 87e9d3e5762b1c3aa26b5a82ed3e72c2 Every now and again it reads 12 extra bytes. Seems to only happen on buster, not bullseye. Tim.