Windows Vista How to move BCD Boot manager files in Vista to another partition

  • Thread starter Thread starter hnyman
  • Start date Start date
H

hnyman

Guest
Background:

I have Vista32 in my PC, and after some new hardware related crashes I
decided yesterday to completely restore Vista partition from backup with
Acronis. However, in the middle of the restore from USB HDD, the backup
complained about faulty archive and I ended up with no working C: partition.
I reinstalled Vista from DVD and also all the programs. The loss of the
Vista OS partition was not that hard, as all my personal data is on D: and
E: on the same drive.



However, as the reinstall started from a situation, where there was empty
space instead of C:, I realized only after the install that Vista had set
the BCD boot files to D: (the first existing partition at installation
start), while the operating system is quite correctly installed to the
recreated C:.



> C:\Users\hannu>bcdedit /v


> Windows Boot Manager


> --------------------


> identifier {9dea862c-5cdd-4e70-acc1-f32b344d4795}


> device partition=D:


> description Windows Boot Manager


> locale en-US


> inherit {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}


> default {d7909ee9-7166-11dd-9349-98516989298b}


> displayorder {d7909ee9-7166-11dd-9349-98516989298b}


> toolsdisplayorder {b2721d73-1db4-4c62-bf78-c548a880142d}


> timeout 30


>


> Windows Boot Loader


> -------------------


> identifier {d7909ee9-7166-11dd-9349-98516989298b}


> device partition=C:


> path \Windows\system32\winload.exe


> description Microsoft Windows Vista


> locale en-US


> inherit {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}


> osdevice partition=C:


> systemroot \Windows


> resumeobject {d7909eea-7166-11dd-9349-98516989298b}


> nx OptIn




The PC works just fine, but I do not like mixing the pure "data partition"
D: with the boot sequence. I also realized with the reinstall to have
destroyed C:, that having the BCD data on the OS partition may be
problematic at some times. Although everything works now just fine, I would
like to transfer the BCD data either to C: or, maybe even better, to a small
2 GB partition S: created for that purpose.



Thus, the status was:

C: Boot, Page file, etc. (contains actual Vista OS)

D: System, Active (contains the BCD boot manager files) and my data

E: data

S: empty (2 GB)

All partitions are primary partitions, and formatted with NTFS.



I looked for advice transferring the BCD data to another partition, but did
not found complete advice, and thatswhy I am writing this message as a guide
for others.



The following pieces of information proved useful:

http://www.vistax64.com/vista-hardw...ition-after-bitlocker-removal.html#post790775

Defines the requirements for a 'System' partition. It sounds like I need
:copy the correct BCD files to S: and mark that S: partition active. Would
that be enough?

http://www.techenclave.com/guides-and-tutorials/moving-vista-boot-manager-bcd-114342.html

Sounds working, but requires boot with Vista DVD. Or does it actually?

http://neosmart.net/wiki/display/EBCD/Recovering+the+Vista+Bootloader+from+the+DVD

Step Three 'Manual Repair' and Four 'Nuclear holocaust' might work. Creating
a new store on S:, and then copying the files there, and then marking the
partition active. BCDEDIT export and then modify...

http://forums.techguy.org/windows-vista/740361-solved-installed-vista-now-system.html

Or might this actually work by using the official commands? This message
here brought the light for me:

> In my case, both the Windows Memory Diagnostic and the Windows Boot
> Manager were configured for D:, so I want to change those.


> Boot Manager is always reffered to as
> {9dea862c-5cdd-4e70-acc1-f32b344d4795} and so on, so we use the following
> commands to make things right.


>


> C:\Windows\system32>bcdedit /set {9dea862c-5cdd-4e70-acc1-f32b344d4795}
> device partition=c:


> C:\Windows\system32>bcdedit /set {b2721d73-1db4-4c62-bf78-c548a880142d}
> device partition=c:




SOLUTION:



Based on this article, it sounds like it is possible to set one attribute by
time (memory tester, etc.) to a certain disk volume (S: in my case),
provided of course that the needed files are there.

So, if

1) the other files (bootmgr, bootsect.bak and \boot-directory's files) are
copied to S:

2) current BCD system store is exported to S:

3) the function pointers in that new store file (boot manager, memory
tester, legady OS loader) are one by one set by using BCDEDIT to point to
the newly copied files on volume S: instead of D:

4) Vista Boot sector is copied to S: using Vista DVD media and 'BOOTSECT
/NT60 S: /FORCE' command from that DVD while still in normal Vista. (This
part should be done from repair console command prompt of booted Vista DVD
if the target disk has the operating system (C: for me) or is otherwise used
by Vista. Instead 'S:' also 'ALL' can be used to force the boot sector to be
copied to all partitions.)

5) Active bit in partition table is changed to S: before rebooting by using
DISKPART or Disk Management console

Might even work. or how?



Based on the previous thoughts, I wrote the needed commands to be done after
the other (non-locked) files are copied:

> bcdedit /export S:\Boot\BCD


> bcdedit /store S:\Boot\BCD /set {9dea862c-5cdd-4e70-acc1-f32b344d4795}
> device partition=S:


> bcdedit /store S:\Boot\BCD /set {b2721d73-1db4-4c62-bf78-c548a880142d}
> device partition=S:


> bcdedit /store S:\Boot\BCD /set {466f5a88-0af2-4f76-9038-095b170dc21c}
> device partition=S:


> bcdedit /store S:\Boot\BCD /enum all /v


>


> VistaDVD:\BOOT\BOOTSECT /NT60 S: /FORCE


>


> DISKPART


> select disk 0


> select partition 4


> active




After copying the non-locked other BCD files to the new partition,

first the system store is exported to S:,

then the references in that store file to partition D: are replaced by
references to S:,

then the contents are printed out just for verification, just in case

then the boot sector was copied from DVD to S:

and finally DISKPART is used to mark the S: as active.

Then a simple reboot.



IT WORKED!!!



Now I have S: as Active & System containg the BCD files, and D: is just a
normal data partition.



So, this is a way to move Vista BCD boot manager data to another partition,
using only Microsoft's own tools for the transfer and remaining inside a
normally running Vista. The Vista DVD media is needed at just one point for
running the BOOTSECT command from the media. Requires knowledge and careful
operations, but can be done.
 
Back
Top