如何从 bcdedit 找出启动磁盘?

如何从 bcdedit 找出启动磁盘?

我有 Windows Server 2008 R2 软件镜像。

我从卷 c: 启动。

当我使用时:

bcdedit 

我可以看到 3 个不同的“Windows 启动加载程序”条目,其中有“设备分区 = 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

答案1

/raw运行时使用未记录的标志bcdedit /enum

而不是打印unknownpartition=\Device\HarddiskVolume1否则partition=C:您将看到如下输出PartEx 6500000 HD MBR Sig:1a2b3c4d。这将向您展示什么是实际上记录在 BCD 中,而不是解释给定当前可访问的磁盘/分区/文件系统的数据。

在这种情况下的意思是“找到具有签名的 MBR 磁盘1a2b3c4d,然后查找从字节偏移量开始的分区0x6500000”。

还有其他可能的格式,例如如果您的条目指的是具有 GPT 分区表的磁盘上的分区,它可能会指的是分区 UUID。

(衷心感谢SS64.com这是整个互联网上唯一记录这面/raw旗帜的地方。我衷心的詛咒感谢微软未能记录这一重要的诊断选项bcdedit!)。

答案2

  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 输出中显示的所有 3 个条目都指向同一个分区和磁盘。

要找出哪个分区(和磁盘)映射到 c:,您可以在命令提示符下使用 Windows DiskManagement 或 diskpart.exe。

相关内容