Full Version: Massaging an existing Windows installation to boot USB
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I've created a WinToUSB installation of Windows 8.1 on a SSD in a USB enclosure (it didn't like any flash drives) to study the differences, with the intention of modify an existing clone of an SATA UEFI disk to boot USB. Windows won't tolerate 2 disks mounted with the same GUID, but a clone accurate to this degree will certainly replace the original and boot.

I maintain Windows XP & 7 clones by swapping the Drive Letter & Volume Label assignments in MountedDevices between the source & destination drives. In Windows 7 the cloned bootbcd files having been Repaired to include the clone drive Disk Signatures which are then Excluded from update.

I've managed to boot a Windows 7 clone in a USB 2.0 enclosure (MBR disks) by disabling paging and modifying several system services in the clone's registry. While this will run it isn't worthwhile as performance is too poor. But demonstrates the possibility.

I'm reasonably sure since WinToUSB has demonstrated Windows 8.1 will run satisfactorily from USB, that a clone of an existing installation can be modified to boot USB. And these modifications reversed so the same clone will then boot SATA again? But lack the specific boot file & registry knowledge required yet, especially with the new UEFI scheme.

Any input would be appreciated: DES
Nothing like Replying to your own question, but here's what has work once so far.

The Source & Clone are EFI boot. To get the Clone disk to Start, the EFI BCD had to be modified to reflect the Clone Disk Signature. Don't mess with BCDBoot & BCDEdit, you could wind up with some very unexpected results. Diskpart will reveal the Disk Signature\GPT Partition GUID\uniqueid, but it's encoded (the first 8 bytes anyway), on the physical disk at offset 0238. Find & Replace occurrences of the Source Disk signature in the Destination Disk/Clone EFI BCD with That disk's signature.

In the Registry of the Clone, I Swap the Source (C:) and Destination (D:) DOSDevice assignments. (This may not be necessary on Windows 8.1 but is a carry over from my Windows 7 cases where the clone disk only physically replaces the source.) At HKLM\System\MountedDevices\. Export the MountedDevices key. I pre-prepare a couple of .reg files edited down to only the specific entries, to load to a False Key name, i.e. HKLM\{False Key}\MountedDevices\ with the 2 DOSDevice assignments binary data swapped between C: & D:. On Windows 7 the Volume assignments were swapped as well to keep the Volume Labels straight but Windows 8.1 doesn't seem to need this. Then at:

"BootDriverFlags"=dword:00000000 // for SATA 00000014 for USB

Under HKLM Load the System file\Hive of the clone into the running registry under a False Key name. Merge the pre-prepared .reg file(s). And Unload the False Key hive which writes the modified hive back from were it came. Shut Down, Start, and I get the Boot Possibilities by holding Down ESC on Start (Asus). Point the computer to the EFI possibility on the USB Enclosure.

This didn't work on the first go around? Windows would begin to load and then stop, complaining of Configuration Errors. Unrelated to this work I then Borked the Windows installation screwing around with things "you're not meant to play with". After Recovering the entire internal disk from an AOMEI Backupper Image made a couple days before, I had lost the Clone Boot work and had to remake that. Then as a parting gesture I tried to boot the exact same setup again on the what you might call a fresh build? It stuttered a bit and then took off and worked! After the troubled first start everything has been completely normal on a 100% copy of the original Windows 8.1 installation running from USB.

Windows is a Very Dynamic thing. Now I want to know Why first it wouldn't, and then it would? As this may affect the ability to Switch the clone back to SATA? But what an achievement, a bootable on USB backup. Not to mention an Easy WinToUSB installation. Just make a copy of what you've got, change three things, and boot it up!