Month: February 2013
As many before me have experienced, I struck an error recently when creating or starting a Hyper-V VM on Windows 8 (with USB 3.0 external storage) where I encountered the following error message:
Failed to create external configuration stare at <path>: General access denied error (Virtual machine ID 0x80070005)
User "domainuser" failed to create external configuration store at <path>: General access denied error (virtual machine ID 0x80070005)"
There’s no shortage of suggested workarounds on the web, but most relate to permissions or disk format (NTFS/FAT32), and none worked for me. After exploring a bunch of the suggested fixes, I stumbled on this superbly technical post that raised the excellent point that not all USB devices mount in the same way, and therefore don’t all present to Hyper-V in a way that is compatible.
So on a hunch, I tried an alternative mounting method in Disk Management. Rather than the normal approach of creating a volume and assigning it a drive letter, I mounted it as an NTFS volume under an existing drive – my existing HDD was partitioned with C: and D: partitions, so I mounted the SSD volume as D:SSD.
And just like that, everything worked perfectly. I had no further issues using this storage media with Hyper-V. Problem solved.
Now, there’s a distinct likelihood this has a performance impact (I’m genuinely unsure if there is a tradeoff involved in using the NTFS mount method) – though in my ad-hoc testing I saw no discernible difference in performance of the SSD-based data. If anything, the only performance hit seemed to be when accessing other data on the rest of the D: partition – but I haven’t managed to quantify that (and may well be imagining it).
Bare in mind also that because the drive is mounted under your local file system, your drive is no longer strictly portable, in as much as there is no file system reference data on the USB drive itself, so if you plug the drive into a different computer, that computer wont be able to see whats on the external disk (and will report it as empty).