Yes, though “failed to surface” sounds like a problem for a whale or a submarine, it applies to Virtual Hard Disks as well.
I have a Windows Server 2008R2 Hyper-V host running a 2008R2 guest. The guest uses Windows Server Backup, targeting a VHD on the host. Yesterday I swapped the removable physical drive on the host that contains the VHD for the guest. The name of the VHD file was the same, and when I logged on to the guest, I could browse the backup drive and see the WindowsImageBackup folder. But last night’s guest backup failed.
The error messages are buried deep in the Applications and Services even logs. In the guest, this message appeared:
Log Name: Microsoft-Windows-Backup
Source: Microsoft-Windows-Backup
Date: 3/10/2013 11:00:12 PM
Event ID: 19
Level: Error
User: SYSTEM
Computer: HVGUEST.mydomain.com
Description: The backup operation attempted at ‘?2013?-?03?-?11T06:00:12.019877300Z’ has failed to start, error code ‘2147942402’. Please review the event details for a solution, and then rerun the backup operation once the issue is resolved.
In the host, these two messages appeared:
Log Name: Microsoft-Windows-VHDMP/Operational
Source: Microsoft-Windows-VHDMP
Date: 3/10/2013 11:00:01 PM
Event ID: 6
Level: Error
User: SYSTEM
Computer: HVHOST
Description: Failed to read data from VHD G:\Virtual Machines\HVGUEST\Virtual Hard Disks\HVGUEST-Backup.vhd. Error status 0xC000026E.
Log Name: Microsoft-Windows-VHDMP/Operational
Source: Microsoft-Windows-VHDMP
Date: 3/10/2013 11:00:01 PM
Event ID: 4
Level: Error
User: SYSTEM
Computer: HVHOST
Description: Failed to surface VHD G:\Virtual Machines\HVGUEST\Virtual Hard Disks\HVGUEST-Backup.vhd. Surface attempt was cancelled.
Manual Backup Failure
I tried running the guest backup manually but it failed with this “cannot find the file specified” error:
Interestingly, this did not generate errors in the event logs on the guest or host.
Solution
The solution turned out to be quite simple: in the host’s Hyper-V management console, I went to the guest’s settings, removed the VHD in question, saved the settings, then re-added the VHD and saved again. Because the VHD is added as a SCSI drive, I was able to to do this without shutting down the guest. I noticed that the volume name in the guest changed. Once I had made that change, I was able to successfully run a backup in the guest.
My guess is that Windows Server Backup is targeting a volume, not just a drive, so it couldn’t “see” the new VHD until it was explicitly added to the VM.