Как выяснить загрузочный диск из 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 ответа
- Откройте командную строку с правами администратора.
Запустите следующий набор команд:
DISKPART SELECT DISK 0 UNIQUEID DISK ID=<random_disk_signature>
(
<random_disk_signature>
например, 1a2b3c4d)- Уволиться
DISKPART
, но оставайтесь в командной строке. Введите следующие команды, по одной, в командной строке, нажимая клавишу 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:
Закройте командную строку.
- Перезагружать.
Все 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
!).