关于mbr:如何确定Windows用来引导哪个磁盘

How to tell which disk Windows Used to Boot

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

Windows是否公开接口来发现这一点? Windows API有多大,我希望其中埋藏一些可以解决问题的方法。

特里

ps仅读取硬盘的第一个扇区并不能说明任何问题。在我的开发箱中,我有两个硬盘,当我查看两个硬盘中前两个扇区的内容时,我有一个标准的样板MBR。

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

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


  • 进入Control Panel
  • System and Security
  • Administrative Tools
  • 启动System Configuration工具
  • 如果您安装了Windows的多个副本,则将使用以下名称进行启动:

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

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


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

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


    这取决于您对Windows用于引导的磁盘驱动器的定义。我可以在标准BIOS系统(他们知道EFI系统的功能)上想到3个不同的答案:

  • 包含活动MBR的驱动器
  • 使用NTLDR的活动分区(系统分区)
  • Windows所在的分区(引导分区)
  • 2和3应该很容易找到-我不太确定1。虽然您可以读取原始磁盘来找到MBR,但这并不意味着它是BIOS引导设备,甚至是下次(您可能有多个)具有MBR的磁盘)。

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

    您可能需要在需求或目标方面更加具体。


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

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

    对于简单的情况,请查看GetSystemDirectory


    尝试使用HKEY_LOCAL_MACHINE \ SYSTEM \ Setup \ SystemPartition


    您键入diskpart,列出磁盘并检查磁盘以进行引导。
    例如:

    1
    2
    3
    4
    dispart
    list disk
    select disk 0
    detail disk

    具有启动卷的磁盘是装有Windows的磁盘:

    enter image description here


    您可以尝试使用简单的命令行。 bcdedit是您所需要的,只需以管理员身份运行cmd并键入bcdeditbcdedit \\v,这在XP上不起作用,但希望这不是问题。

    无论如何,对于XP,您都可以查看boot.ini文件。


    推荐阅读

      linux系统监视器命令?

      linux系统监视器命令?,系统,情况,工具,信息,实时,电脑,平均,报告,管理,分析,

      linux系统添加命令?

      linux系统添加命令?,系统,密码,工作,简介,术语,地址,命令,文件,目录,用户,Lin

      linux磁盘命令dm?

      linux磁盘命令dm?,信息,设备,地址,软件,系统,工作,公司,下来,数据,磁盘,linux

      备份用命令linux系统?

      备份用命令linux系统?,系统,信息,设备,数据,软件,认证,命令,文件,备份,目录,L

      linux磁盘列表命令?

      linux磁盘列表命令?,情况,管理,系统,单位,信息,数据,命令,磁盘,服务,时间,lin

      linux系统中管道命令?

      linux系统中管道命令?,标准,系统,工作,命令,信息,通讯,管道,流向,连续,工具,L

      linux系统命令记不住?

      linux系统命令记不住?,系统,工作,基础,地址,网络,服务,命令,第一,名称,目录,

      linux系统刻盘命令?

      linux系统刻盘命令?,系统,软件,设备,工具,盘中,电脑,数据,官网,信息,网络,请

      linux系统还原的命令?

      linux系统还原的命令?,系统,数据,工具,软件,地址,工作,情况,信息,命令,位置,

      linux系统命令都没了?

      linux系统命令都没了?,系统,单位,软件,命令,分析,第一,权威,公司,工作,异常,

      linux磁盘常用命令?

      linux磁盘常用命令?,管理,工作,系统,情况,地址,单位,命令,目录,信息,服务,Lin

      linux命令安装新系统?

      linux命令安装新系统?,系统,软件,工作,管理,在线,电脑,信息,基础,发行,数据,L

      命令访问linux系统?

      命令访问linux系统?,系统,地址,信息,软件,命令,时间,工具,网络,管理,电脑,lin

      linux系统命令重启?

      linux系统命令重启?,系统,服务,名称,工作,网络,命令,设备,标准,时间,网络服

      linux系统拼端口命令?

      linux系统拼端口命令?,地址,系统,工作,网络,工具,信息,管理,命令,服务,灵活,l

      linux常用磁盘命令?

      linux常用磁盘命令?,管理,系统,工作,情况,单位,信息,命令,目录,基础,增长,Lin

      linux系统的命令字?

      linux系统的命令字?,地址,系统,工作,管理,信息,命令,目录,情况,发行,设备,请

      linux磁盘扩展命令?

      linux磁盘扩展命令?,在线,信息,扩大,风险,磁盘,虚拟机,容量,分区,目录,链接,L

      linux系统的命令格式?

      linux系统的命令格式?,系统,管理,地址,工作,命令,信息,目录,情况,网络,操作,L

      linux系统用户组命令?

      linux系统用户组命令?,系统,管理,密码,代码,用户组,用户,命令,邮箱,电脑,名