Issue with a Windows 7 Boot issue - involving the BCD perhaps

27,777

The requested system device cannot be identified due to multiple indistinguishable devices potentially matching the identification criteria

You've probably got multiple EFI system partitions, whether on the same drive or one on each of two drives. This confuses Windows repair tools more than it confuses the EFI itself.

You can confirm this using diskpart inside the WinRE environment (available with install or recovery media), and use diskpart's set id= command to change one of the types and make it no longer an EFI system partition. After that the repair tools will happily work on the remaining EFI system partition. (I suggest changing just one hex digit of the EFI type to make it easy to put back later if needed)

The BCD is not expected to be on the Windows partition. It should exist in the EFI system partition beneath the Microsoft directory, and some of the data even gets stored by EFI in NVRAM.

Here is an actual example, from my laptop, of a partition scheme which confuses Windows repair tools. It arose because the laptop came with a rotating hard disk, and I installed an mSATA SSD large enough to use as system partition, then using the standard partition layout for the SSD. Having done so, there are now two EFI system partitions.

Microsoft DiskPart version 6.3.9600

Copyright (C) 1999-2013 Microsoft Corporation.

DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online          465 GB    60 MB        *
  Disk 1    Online          202 GB      0 B        *

DISKPART> select disk 0

Disk 0 is now the selected disk.

DISKPART> list part

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Recovery           400 MB  1024 KB
  Partition 2    System             200 MB   401 MB
  Partition 3    Reserved           128 MB   661 MB
  Partition 4    Primary            452 GB   789 MB
  Partition 5    Primary             12 GB   453 GB

DISKPART> select part 2

Partition 2 is now the selected partition.

DISKPART> detail part

Partition 2
Type    : c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Hidden  : Yes
Required: No
Attrib  : 0X8000000000000000
Offset in Bytes: 420478976

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
* Volume 3                      FAT32  Partition    200 MB  Healthy    Hidden

DISKPART> select disk 1

Disk 1 is now the selected disk.

DISKPART> list part

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    OEM               6000 MB  1024 KB
  Partition 2    Recovery           300 MB  6001 MB
  Partition 3    System             100 MB  6301 MB
  Partition 4    Reserved           128 MB  6401 MB
  Partition 5    Primary            196 GB  6529 MB

DISKPART> select part 3

Partition 3 is now the selected partition.

DISKPART> detail part

Partition 3
Type    : c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Hidden  : Yes
Required: No
Attrib  : 0000000000000000
Offset in Bytes: 6607077376

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
* Volume 6                      FAT32  Partition    100 MB  Healthy    System

The string c12a7328-f81f-11d2-ba4b-00a0c93ec93b positively identifies an EFI system partition. When I wish to hide one from repair tools, I use select disk and select partition and then

set id=c12a7328-f81f-11d2-ba4b-00a0c93ec930

Notice that I've changed the ID just enough to make it different, while still obvious to a technician that this is an EFI system partition.

Share:
27,777

Related videos on Youtube

winter
Author by

winter

Updated on September 18, 2022

Comments

  • winter
    winter almost 2 years

    First of all, thank you to whoever reads this. I'm getting pretty upset and worried about the fact that my desktop is now definitely not booting into Windows 7, which it was very nicely before I was an idiot and used Boot-Repair (the linux tool, in an attempt to get Ubuntu working.) So here's what's happening:

    I start the computer, doesn't matter the boot order so long as there's nothing in the disc drive, and I get

    Windows failed to start, da da da,

    File: \EFI\Microsoft\Boot\BCD
    Status: 0xc000000f
    Info: An error occured while attempting to read the boot configuration data.
    

    So obviously it's a BCD issue. I got my install disc and went into command line to try and find anything wrong with either mounting and/or the BCD file. I found some interesting and frustrating stuff...

    In system recovery, when windows is trying to fix it itself, it says it will repair bootmgr and fwbootmgr. Then, it says that:

    The following startup options will be added:
    Name: Win 7 home premium (recovered)
    Path: Windows
    

    (And here we have what I haven't seen before...)

    Windows device: Partition=\\\?\GLOBALROOT\Device\HarddiskVolume5
    

    Also, it will copy the current BCD to \\\?\GLOBALROOT\Device\HarddiskVolume1\EFI\Microsoft\Boot\BCD.Backup.0003

    And then I try to let it do its thing and it says Failed to save startup options. Next it can't find a system image when it tries to look for a backup.

    So I've gotten to cmd line and I start diskpart, where I list volumes and find that:

    • Volume 1 is DELLUTILITY, FAT32, with name C:
    • Volume 2 is RECOVERY, name D:
    • 3 is a new partition I made to try and house Ubuntu, called E:
    • 4 has no letter is named ESP and is also FAT32.
    • Then vol 5, which is labelled OS and also... HAS NO LETTER??? Might that be a problem? I can assign it C:, but it doesn't stay when I reboot.

    I try and run bootrec /rebuildbcd, and it detects a windows install \\\?\GLOBALROOT\Device\Windows there. It asks if I want to add it to boot devices, and I press y... Then it says:

    The requested system device cannot be identified due to multiple indistinguishable devices potentially matching the identification criteria
    

    This error comes up when working with various different things in cmd line relating to boot and BCD.

    Additional info: C:\Windows\Boot\EFI\ has no BCD in it. Potential problem, I'd think, but I don't know how to get it there or where to find it...

    When running bcdboot, I get

    BFSVC: FAiled to create a new system store. Status = [c000003a]
    

    Here is my record from boot-repair in Ubuntu.

    Please, any help would be so much appreciated. I really don't want to wipe my drive.

    • James Griffin
      James Griffin almost 9 years
      Just to say that I have had the same problem, and have been Ubuntu only for some months because of it. Running something like boot-repair had changed the flags of my Windows OS partition and my Windows install disc was getting confused because of it. Thank you Jakob and Ben.
  • Ben Voigt
    Ben Voigt over 10 years
    @JakobR: The EFI system partitions (not drives) are FAT32. You may or may not have other FAT32 partitions. In diskpart, select disk and list partition will show EFI system partitions as System. I'll port some output from my own system.
  • winter
    winter over 10 years
    Alright, I found them. There are two (I meant partitions, you're correct of course - they aren't drives.) Two of them say system, and those two correspond with DELLUTILITY and OS from list volume.
  • Ben Voigt
    Ben Voigt over 10 years
    @JakobR: I'm pretty sure that ESP is an EFI system partition. Wouldn't be terribly surprised to find that DELLUTILITY is one as well. You don't have a second disk do you? Perhaps the disk you're running the recovery tools from?
  • winter
    winter over 10 years
    Actually... I was wrong. DELLUTILITY corresponds with Partition 2, which is labeled Primary. It's the ESP and the OS that are labeled system. However, the OS is NFTS, not FAT32.
  • Ben Voigt
    Ben Voigt over 10 years
    Check the type GUID? An NTFS partition definitely should not have the magic value for ESPs.
  • Ben Voigt
    Ben Voigt over 10 years
    @Jakob: That definitely should change. On both the preinstalled Windows partition and the one I made from a clean Windows install, the ID is ebd0a0a2-b9e5-4433-87c0-68b6b72699c7. So select the NTFS "OS" partition and use set id=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
  • winter
    winter over 10 years
    Well, sir, you have just saved me from a sleepless night. So thank you indeed for that! I'm still learning everything I can about computers and such, and you seem to be quite a knowledgeable person about such things; seeing as you were so kind and helpful to me today, I'll ask you next time I've got some sort of puzzle or issue that's got me stumped. (Everything's running well; I'm messaging you from that computer.) Again, thank you so much. There is no way I would have found that fix myself. Good night, internet stranger! :)
  • Admin
    Admin almost 9 years
    Note, set id-c12a7328-f81f-11d2-ba4b-00a0c93ec930 should be, set id c12a7328-f81f-11d2-ba4b-00a0c93ec930
  • Ben Voigt
    Ben Voigt almost 9 years
    @TD1: Thanks for spotting the erroneous hyphen, it was supposed to be an equals sign. I've fixed my answer.
  • samayo
    samayo over 7 years
    @BenVoigt Why did you change the last digit ...93b to ...930 ?
  • Ben Voigt
    Ben Voigt over 7 years
    @samayo: Was something unclear about the last sentence of the answer?
  • samayo
    samayo over 7 years
    Sorry, I was depressed earlier and didn't notice.