Page MenuHomeVyOS Platform

Still unable to boot on Hyper-V after T8879
Closed, ResolvedPublicBUG

Assigned To
Authored By
ctd
May 28 2026, 10:01 PM
Referenced Files
F116388365: image.png
Jul 3 2026, 8:07 PM
F116134957: image.png
May 29 2026, 6:32 PM
F116132039: image.png
May 28 2026, 10:01 PM
F116132037: image.png
May 28 2026, 10:01 PM

Description

Updated images after T8879 are still unable to boot on HyperV. The error message is gone and now it just shows a blank screen when I update.

image.png (833×1 px, 24 KB)

If I try to boot the ISO, it gets stuck on the splash screen. Fail-safe mode doesn't make any difference.

image.png (811×1 px, 69 KB)

Details

Version
2026.05.28-0044-rolling
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)

Event Timeline

VM config in case it helps narrowing it down.

image.png (682×722 px, 52 KB)

Spent some time trying to chase this down. I managed to set up a VM to build the VyOS image, but I can't figure out how to build the kernel. The docs appear to be outdated?

I did chase down the kernel config differences between an older working version and the current versions by booting a recent ISO in VMWare.

image.png (395×937 px, 61 KB)

It looks like CONFIG_HYPERV_PCI, CONFIG_HYPERV_PCI_INTERFACE, and CONFIG_HYPERV_VTL_MODE are missing, and CONFIG_HYPERV changed from built in to a module.

If anyone can point me to working instructions to build the kernel, I'd be happy to try and figure out a fix.

At least google AI tells me this:

In the Linux kernel, CONFIG_HYPERV cannot be compiled as a module (it must be a strict boolean, y). It must be built directly into the kernel because it provides the foundational core hypervisor and CPU paravirtualization interfaces required to boot the guest virtual machine.

So this is most likely the issue.

The missing PCI configs will probably cause SR-IOV to not work, so those are likely needed too.

Just guessing.

Since this really isnt needed on anything other than when being runned as a VM in HyperV (and there are probably not many that do that today compared to KVM (Proxmox et al) and VMware or even XCP-NG) this have been removed from the main rolling release and is only available precompiled for LTS-customers who can download a HyperV image (similar to OVA image which I think contains "Open VM Tools")?

But I think you should still be able to build your own rolling-release.

Back in the days there existed more flavours to compile on your own over at:

https://github.com/vyos/vyos-build/commits/rolling/data/build-flavors

https://vyos.dev/T6915

Current kernel config available at:

https://github.com/vyos/vyos-build/blob/rolling/scripts/package-build/linux-kernel/config/x86/vyos_defconfig#L4101

These currently exists:

CONFIG_HYPERV=y
CONFIG_HYPERV_VTL_MODE=y

But these are missing:

CONFIG_HYPERV_PCI
CONFIG_HYPERV_PCI_INTERFACE

But are the missing ones above valid for Kernel 6.6.93 which the config seems to have been created for?

Probably just someone who missed to update the header since the Stream 2026.03 is at 6.6.128 so the rolling is much newer than that.

According to:

https://www.kernelconfig.io/CONFIG_PCI_HYPERV
https://www.kernelconfig.io/CONFIG_PCI_HYPERV_INTERFACE

the kernel config options have been around for some time.

Or are they different from CONFIG_HYPERV_PCI and CONFIG_HYPERV_PCI_INTERFACE mentioned earlier?

So perhaps whoever is maintaining the kernel config should do a "resync" so next update includes ALL currently available options and not just the ones who have been touched through menuconfig?

This way it will be much clearer of which variables are commented out (and by that use its default value) vs. which variables have been altered from default. Instead of as today where some variables seems to be completely missing from the kernel config used by VyOS?

Digging in /boot/config-6.6.128-vyos I can find the missing values:

CONFIG_HYPERV=m
# CONFIG_HYPERV_VTL_MODE is not set
CONFIG_PCI_HYPERV=m
CONFIG_PCI_HYPERV_INTERFACE=m

Also the error you see with just a blank screen seems like console is outputed to some (virtual) serialcable instead?

Because grub itself is not related to which (compiled in) modules the Linux kernel got?

Viacheslav assigned this task to a.kudientsov.
Viacheslav moved this task from Need Triage to Completed on the VyOS Rolling board.