Как выяснить загрузочный диск из bcdedit?

У меня Windows Server 2008 R2 программное зеркало.

Я загружаюсь с тома c:.

Когда я использую:

bcdedit 

Я вижу 3 разных записи "Windows Boot Loader" с "раздел устройства =C:". Как определить, какая загрузочная запись связана с каким физическим диском?

Windows Boot Loader
-------------------
identifier              {77777777-bbbb-bbbb-bbbb-bbbbbbbbbbbb}
device                  partition=C:
path                    \windows\system32\winload.exe
description             Windows Server 2008 R2 - secondary plex
locale                  en-us
inherit                 {bootloadersettings}
osdevice                partition=C:
systemroot              \windows
resumeobject            {55555555-bbbb-bbbb-bbbb-bbbbbbbbbbbb}
nx                      OptOut
detecthal               Yes

Windows Boot Loader
-------------------
identifier              {99999999-bbbb-bbbb-bbbb-bbbbbbbbbbbb}
device                  partition=C:
path                    \windows\system32\winload.exe
description             Windows Server 2008 R2 - secondary plex
locale                  en-us
inherit                 {bootloadersettings}
osdevice                partition=C:
systemroot              \windows
resumeobject            {55555555-bbbb-bbbb-bbbb-bbbbbbbbbbbb}
nx                      OptOut
detecthal               Yes

Windows Boot Loader
-------------------
identifier              {eeeeeeee-bbbb-bbbb-bbbb-bbbbbbbbbbbb}
device                  partition=C:
path                    \windows\system32\winload.exe
description             Windows Server 2008 R2 - secondary plex - secondary plex
locale                  en-us
inherit                 {bootloadersettings}
osdevice                partition=C:
systemroot              \windows
resumeobject            {55555555-bbbb-bbbb-bbbb-bbbbbbbbbbbb}
nx                      OptOut
detecthal               Yes

3 ответа

  1. Откройте командную строку с правами администратора.
  2. Запустите следующий набор команд:

    DISKPART
    SELECT DISK 0
    UNIQUEID DISK ID=<random_disk_signature>
    

    (<random_disk_signature> например, 1a2b3c4d)

  3. Уволиться DISKPART, но оставайтесь в командной строке.
  4. Введите следующие команды, по одной, в командной строке, нажимая клавишу Enter после каждой команды:

    bcdboot c:\windows /s c:
    bcdedit /set {DEFAULT.EN_US} device partition=c:
    bcdedit /set {DEFAULT.EN_US} osdevice partition=c:
    bcdedit /set {BOOTMGR.EN_US} device partition=c:
    
  5. Закройте командную строку.

  6. Перезагружать.

Все 3 записи, показанные в выводе bcdedit, указывают на один и тот же раздел и диск.

Чтобы узнать, какой раздел (и диск) сопоставлен с c: вы можете использовать Windows DiskManagement или diskpart.exe в командной строке.

Используйте недокументированный флаг при запускеbcdedit /enum.

Вместо печатиunknown,partition=\Device\HarddiskVolume1илиpartition=C:вы увидите вывод, напримерPartEx 6500000 HD MBR Sig:1a2b3c4d. Это показывает вам, что на самом деле записано в BCD, а не интерпретацию данных с учетом доступных в данный момент дисков/разделов/файловых систем.

Смысл в данном случае — «найти MBR-диск с подписью».1a2b3c4dа затем найдите раздел, начинающийся со смещения байта0x6500000".

Существуют и другие возможные форматы: например, если ваша запись относится к разделу на диске с таблицей разделов GPT, она, вероятно, будет относиться к UUID раздела.

(Моя искренняя благодарность SS64.com , единственному месту во всем Интернете, где это документировано./rawфлаг. Мои искренние проклинания Microsoft за то, что она не задокументировала этот жизненно важный вариант диагностики.bcdedit!).

Другие вопросы по тегам