Windows – Copy EFI partition and BCD store to a second drive

diskpartdynamic-diskuefiwindows

I'm attempting to set up dynamic boot partition mirroring on GUID partition table (GPT) disks as part of making a bootable mirror of a Windows system drive.

I am following Microsoft's KB951985 but I get stuck on the step which uses robocopy to copy from the source drive to the target drive

"Copy the EFI partition and the BCD store to the second drive", Step 2

Use the Robocopy command to copy the system files from "Pā€ (the EFI partition on the primary drive) to ā€œSā€ (the EFI partition on the secondary drive). You must do this to make sure that the secondary drive can start the system if disk 0 fails. Make sure that you use the correct drive letters if you used different letters for your EFI partitions. To do this, type robocopy p:\ s:\ /e /r:0 at the command prompt, and then press ENTER.

I cannot do this as it gives an access denied/file in use error on the BCD and BCD log files. If I restart into a Windows PE environment and attempt to mount those partitions, it gives a Virtual Disk Service error of "the pack is not online" which I'm assuming is because they are on dynamic disks.

How can I do this step?

Best Answer

This link is a good starting point. To get around this error, I did the following:

  1. Boot from the Windows Installation CD. Obviously do not reinstall Windows, but run the setup until the screen that shows the disk partitions, run a command prompt to copy the EFI partitions, then exit everything and do not reinstall Windows. As needed you can load the disk drivers to see the disks at this point too.
  2. Type Shift-F10 to bring up a command prompt.
  3. Do the steps in the link above.
  4. If it does not allow you to assign letters to the partitions, list the volumes, select the volume, then assign the letter. Do this for both volumes.
  5. xcopy the files.