Restore from physical host to VM or from host to a different host help

I’ve tried many image restores from urbackup to proxmox, virtualbox and hyper-v with the urbackup restore disk and starting with windows 10 and 11 most if not all of them will not boot and the boot can’t be repaired with the standard windows recovery process.

I’ve found a new way using disk2vhd from Microsoft and it works really well. Whatever it does when it creates the image, the host starts up and is able to find the boot hardware changes and fix what’s ever needed to let windows boot up. Short term i’ll script this and do a file level backup with urbackup, but it would be awesome if the image prep process disk2vhd uses could be incorporated into urbackup image backup.

PS love the tool, it’s just the imaging functionality has become a less useful sync image restores often happen to VM or a new host with different hardware.

The usual culprit with Windows 10/11 is the storage driver. Windows only enables the storage driver it booted with last, so a machine that ran from NVMe has the SATA/AHCI driver (storahci) disabled. In a VM with a SATA or VirtIO disk it then fails with INACCESSIBLE_BOOT_DEVICE, which Startup Repair usually can’t fix.

Things that usually help:

  • Before the backup, set Start to 0 for storahci and stornvme under HKLM\SYSTEM\CurrentControlSet\Services. The restored system can then boot from either controller type.
  • After restoring, boot into Safe Mode once. That enables all boot drivers. From the recovery command prompt: bcdedit /set {default} safeboot minimal, reboot, then bcdedit /deletevalue {default} safeboot.
  • Match the firmware to the original: UEFI (OVMF in Proxmox, Generation 2 in Hyper-V, “Enable EFI” in VirtualBox) for GPT disks, BIOS for MBR.
  • On Proxmox, use a SATA disk for the first boot. Windows has no VirtIO driver unless virtio-win was installed beforehand.

I agree an option on the restore CD to prepare the restored Windows for different hardware would be really useful.