如何判断 Windows 用于启动哪个磁盘

问题描述 投票:0回答:10

我需要找到一种方法来以编程方式确定 Windows 使用哪个磁盘驱动器启动。换句话说,我需要一种从 Windows 中确定 BIOS 使用哪个驱动器来启动整个系统的方法。

Windows 是否公开了一个接口来发现这一点?鉴于 Windows API 有多大,我希望其中埋藏着一些东西可以解决这个问题。

特里

附注仅读取硬盘的第一个扇区并不能带来任何好处。在我的开发盒上,我有两个硬盘,当我查看其中一个硬盘上前几个扇区的内容时,我有一个标准的样板 MBR。

编辑澄清一些事情。 我想要识别设备的方式是使用一个字符串来识别物理磁盘驱动器(而不是逻辑磁盘驱动器)。物理磁盘驱动器的格式为“\.\PHYSICALDRIVEx”,其中 x 是数字。另一方面,逻辑驱动器由“\.\x”形式的字符串标识,其中 x 是驱动器号。

编辑讨论一些被抛弃的想法。 知道 Windows 用于启动哪个逻辑卷在这里对我没有帮助。原因如下。假设 C: 使用镜像 RAID 设置。现在,这意味着我们至少有两个物理驱动器。现在,我获得了从逻辑驱动器到物理驱动器的映射,并且发现该卷使用了两个物理驱动器。 Windows 使用哪一个来启动?当然,这是假设 Windows 用于启动的物理驱动器与包含 MBR 的物理驱动器相同。

windows mbr
10个回答
15
投票
  1. 进入
    Control Panel
  2. System and Security
  3. Administrative Tools
  4. 启动
    System Configuration
    工具

如果您安装了多个 Windows 副本,则启动时使用的副本将被命名为:

Windows 7 (F:\Windows)
Windows 7 (C:\Windows) : Current OS, Default OS

6
投票

除非 C: 不是 Windows 启动的驱动器。
解析 %SystemRoot% 变量,它包含 windows 文件夹的位置(即 c:\windows)。


5
投票

您可以使用 WMI 来解决这个问题。 Win32_BootConfiguration 类将告诉您 Windows 启动的逻辑驱动器和物理设备。具体来说,标题属性将告诉您从哪个设备启动。

例如,在 powershell 中,只需输入 gwmi Win32_BootConfiguration 即可获得答案。


5
投票

您输入diskpart,列出磁盘并检查启动磁盘。
例如:

dispart 
list disk 
select disk 0 
detail disk

带有Boot卷的磁盘是安装了windows的磁盘:


3
投票

这取决于您对 Windows 用于启动的磁盘驱动器的定义。我可以在标准 BIOS 系统上想到 3 个不同的答案(谁知道 EFI 系统是做什么的):

  1. 包含活动 MBR 的驱动器
  2. 活动分区,带有NTLDR(系统分区)
  3. Windows所在分区(启动分区)

2 和 3 应该很容易找到 - 我对 1 不太确定。虽然您可以通过原始磁盘读取来查找 MBR,但这并不意味着它是这次甚至下次的 BIOS 引导设备(您可以有多个带有 MBR 的磁盘)。

您甚至无法确定 PC 是从硬盘启动的 - 完全有可能从软盘启动 Windows。在这种情况下,从技术上讲,1 和 2 都是软盘,但 3 仍然是 C:\Windows。

您可能需要更具体地说明您的要求或目标。


2
投票

仅安装 Vista 的机器上没有 boot.ini。

您想如何识别驱动器/分区:通过它映射到的 Windows 驱动器号(例如 c:\、d:)或通过其硬件签名(哪个总线等)。

对于简单的情况请查看GetSystemDirectory


1
投票

尝试 HKEY_LOCAL_MACHINE\SYSTEM\Setup\SystemPartition


0
投票

更简单的方法 在开始菜单中搜索下载,然后单击搜索结果中的下载以查看它将带您到哪里,该驱动器将在资源管理器中突出显示。


0
投票

在 Windows 10 上。 打开“计算机管理” 在“页面左上角”列表中查找“存储” 选择“磁盘管理” 在显示磁盘和分区列表的页面部分中,找到分区分配为驱动器 C 的磁盘: 在包含 C: 分区的磁盘上 使用鼠标右键选择包含磁盘编号、驱动器类型和大小(以 GB 为单位)的方形部分。当菜单打开时,选择属性。 将打开一个窗口,显示使用的驱动器硬件。


0
投票

您可以尝试使用简单的命令行。 bcdedit就是你所需要的,只需以管理员身份运行cmd并输入

bcdedit
bcdedit /v
,这在XP上不起作用,但希望这不是问题。

无论如何,对于 XP,您可以查看

boot.ini
文件。

© www.soinside.com 2019 - 2024. All rights reserved.