Updated VirtIO SCSI driver on my Windows 2012 R2, and now only boots into recovery. How to recover?

I have a Hetzner W2012 R2 Cloud VM, and I updated the VirtIO vioscsi driver on it. Now it only boots into recovery mode and I cannot access the C-drive even from command prompt.

Is there any way to save this VM or is it a goner?
I have no (recent) snapshot of it :(

I can mount the old previous VirtIO ISO, but how can I reinstall the old driver when I have no access to the C-drive?

Update 1:
Am able to get access to the C-drive with drvload vioscsci.inf.
Still trying to figure out how to reinstall the old drivers.

Update 2
I used dism /image:e:\ /add-driver /driver:vioscsi.inf to add the driver but it still won't boot.

Update 3
Startup repair gives error 0x490.

No clue what to do next or how to even troubleshoot why it is not booting.

Update 4

It appears all my system drivers have become unsigned. Disabling driver signature enforcement allowed the system to finally boot.

Do not know why this happened. It appears I will have to do a full reinstall, but at least I got back access to the VM now.


Solution 1:

1: Disable driver signature enforcement

After much investigation, all system drivers had become unsigned. Cause unknown (possibly drive corruption).

To access the VM I needed to boot without driver signature enforcement.
To do that, first activate the boot menu from Windows Recovery:

bcdedit /set {bootmgr} displaybootmenu yes

Then reboot, press F8 and choose to boot without enforcement.

2: Restore missing security catalogs

For some reason all files in

C:\Windows\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}

...had disappeared. I happened to have a catroot_old folder in System32, so I copied the files from there back into catroot. Using any previous backup would probably have worked too.

This change allowed me to boot normally again.