无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6761|回复: 13
打印 上一主题 下一主题

[求助] Windows 10命令行下如何确定系统盘?

[复制链接]
跳转到指定楼层
1#
发表于 2015-7-25 13:30:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
采用omnifs32 info得到如下信息:
1、正常windows 10下:
Disk: 1 (931.51GB) M:[WDC WD10JPVX-22JC3T0] S:[WD-WX91A848D1TJ]
         (      1MB) Unused Space
    1.1: ( 443.23GB) [D:\] Volume NTFS l:[2-1]
    1.2: ( 439.45GB) [E:\] Volume NTFS l:[2-2]
    1.3: (  48.83GB)       Diag Hidden Volume NTFS l:[LENOVO_PART]
         (   2.71MB) Unused Space
Disk: 2 (119.25GB) M:[JHKJMS128G] S:[0014090907]
         (   1007KB) Unused Space
    2.1: (    100MB)       Volume FAT32
    2.2: (  77.57GB) [C:\] Volume NTFS
    2.3: (  41.12GB) [G:\] Volume NTFS
         (   1.98MB) Unused Space
Disk: 3 (14.98GB) M:[General USB Flash Disk 1100] S:[AA00000000000485]
         ( 407.87MB) Unused Space
    3.1: (  14.58GB) [F:\] Active Volume FAT32 l:[U大师启动盘] Removable Drive

2、在PE3.0下得到如下信息:
Disk: 1 (931.51GB) M:[WDC WD10JPVX-22JC3T0] S:[WD-WX91A848D1TJ]
         (      1MB) Unused Space
    1.1: ( 443.23GB) [C:\] Volume NTFS l:[2-1]
    1.2: ( 439.45GB) [D:\] Volume NTFS l:[2-2]
    1.3: (  48.83GB)       Diag Hidden Volume NTFS l:[LENOVO_PART]
         (   2.71MB) Unused Space
Disk: 2 (119.25GB) M:[JHKJMS128G] S:[0014090907]
         (   1007KB) Unused Space
    2.1: (    100MB) [G:\] Volume FAT32
    2.2: (  77.57GB) [E:\] Volume NTFS
    2.3: (  41.12GB) [F:\] Volume NTFS
         (   1.98MB) Unused Space
Disk: 3 (14.98GB) M:[General USB Flash Disk 1100] S:[AA00000000000485]
         ( 407.87MB) Unused Space
    3.1: (  14.58GB) [U:\] Active Volume FAT32 l:[U大师启动盘] Removable Drive
Disk: 4 (5MB) M:[Msft Virtual Disk 1.0]
         (  63.50KB) Unused Space
    4.1: (   3.94MB) [B:\] Volume NTFS l:[WimTool]
         (      1MB) Unused Space

3、如何得到系统盘信息?
2#
发表于 2015-7-25 16:48:26 | 只看该作者
在当前系统下命令行直接用变量SystemDrive就是了当前系统的系统盘了
回复

使用道具 举报

3#
 楼主| 发表于 2015-7-26 14:33:25 | 只看该作者
不确定环境,可能是正常系统,也可能是PE系统,如何确定系统盘?

点评

获取第一硬盘第一分区(包括第一隐藏分区)下是否有boot.ini和boot\bcd,有获取其中信息  详情 回复 发表于 2015-8-2 20:23
回复

使用道具 举报

4#
发表于 2015-8-2 19:56:56 | 只看该作者
小咕咚 发表于 2015-7-26 14:33
不确定环境,可能是正常系统,也可能是PE系统,如何确定系统盘?

不管是什么系统!只有一个系统盘盘符!%SYSTEMDRIVE%就是系统盘!
在pecmd命令里添加MESS %SYSTEMDRIVE%,在弹出对话框里面的结果就是当前系统盘盘符!
回复

使用道具 举报

5#
发表于 2015-8-2 20:23:45 | 只看该作者
小咕咚 发表于 2015-7-26 14:33
不确定环境,可能是正常系统,也可能是PE系统,如何确定系统盘?

获取第一硬盘第一分区(包括第一隐藏分区)下是否有boot.ini和boot\bcd,有获取其中信息

点评

思路靠谱 ,但第一硬盘第一分区不一定 是系统分区,建议搜索各分区根目录 boot 文件夹,包括efi 文件。 然后通过 Bcdedit 读取bcd信息。  详情 回复 发表于 2015-8-3 08:36
回复

使用道具 举报

6#
发表于 2015-8-3 08:36:00 | 只看该作者
fuldho 发表于 2015-8-2 20:23
获取第一硬盘第一分区(包括第一隐藏分区)下是否有boot.ini和boot\bcd,有获取其中信息


思路靠谱 ,但第一硬盘第一分区不一定 是系统分区,建议搜索各分区根目录 boot 文件夹,包括efi 文件。
然后通过 Bcdedit 读取bcd信息。还要考虑 vhd wmi 等情况 。

点评

boot.ini和boot\bcd在启动分区,但不一定在系统分区。  详情 回复 发表于 2015-8-3 09:07
回复

使用道具 举报

7#
发表于 2015-8-3 09:07:43 | 只看该作者
dos时代菜鸟 发表于 2015-8-3 08:36
思路靠谱 ,但第一硬盘第一分区不一定 是系统分区,建议搜索各分区根目录 boot 文件夹,包括efi 文件。 ...

boot.ini和boot\bcd在启动分区,但不一定在系统分区。

点评

所以要 分析 bcd 内容啊。  详情 回复 发表于 2015-8-3 10:12
回复

使用道具 举报

8#
发表于 2015-8-3 10:12:44 | 只看该作者
本帖最后由 dos时代菜鸟 于 2015-8-3 10:20 编辑
fuldho 发表于 2015-8-3 09:07
boot.ini和boot\bcd在启动分区,但不一定在系统分区。


所以要 分析 bcd 内容啊。
比如:
说明引导分区是 c盘,而系统也在 c盘。

再比如:

看到第一个圈圈了么?表示引导在c盘,
在看第三个圈圈,表示系统在 G盘上的 某个 vhd 里。


有的 bcd 内容并不标出盘符,而是 分区id号。这个就更繁琐。
回复

使用道具 举报

9#
 楼主| 发表于 2015-8-3 11:34:57 | 只看该作者
只要求获取当前活动的系统分区(不包括可能安装的第二系统/隐藏系统等)信息。谢谢各位提供的帮助。
回复

使用道具 举报

10#
发表于 2015-8-3 11:52:14 | 只看该作者
本帖最后由 dos时代菜鸟 于 2015-8-3 14:05 编辑

你应该先说出你要干啥,或许根本不用这么麻烦。

有的时候活动的系统分区上未必有系统,可能就是一个 vhd 。我有一阵就把系统放到 vhd 里面,放好几个,还有好几个子系统。而整个硬盘上你都找不到什么 winload.exe之类的。

如果是pe系统,当前系统盘大部分会是 x: ,呵呵。还是需要在 pe下通过读取硬盘上的 bcd 获得硬盘上系统的具体位置。
如果是 当前win系统,那简单多了,只需要明确变量  HOMEDRIVE、SystemDrive、 SystemRoot 就可以了。
回复

使用道具 举报

11#
 楼主| 发表于 2015-8-3 14:14:55 | 只看该作者
各位想多了,就象一楼提供的信息一样(类似),如何在PE下备份windows 下的C盘(2.2:)?当然windows下可用变量%systemdrive%,如果在PE在呢?环境不定,变量采用什么办法确定?
回复

使用道具 举报

12#
发表于 2015-8-3 14:29:06 | 只看该作者
本帖最后由 dos时代菜鸟 于 2015-8-3 14:31 编辑

看看这个 cmd,从c到z逐盘检查 \windows\system32\winload.exe ,如果存在,说明该盘存在 win7_x86 系统。就显示一下。

  1. @echo off
  2. for %%c in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
  3.         if exist %%c:\windows\system32\winload.exe echo %%c:  x86
  4. )
  5. pause
复制代码

回复

使用道具 举报

13#
 楼主| 发表于 2015-8-4 11:27:43 | 只看该作者
谢谢。
回复

使用道具 举报

14#
 楼主| 发表于 2015-8-7 16:35:51 | 只看该作者
本帖最后由 小咕咚 于 2015-8-7 16:38 编辑

@echo off
for %%c in (C D E F G H I J K L M N O P Q R S T U V W  Y Z) DO (
        if exist %%c:\windows\system32\winload.exe echo %%c:  x86
)
pause

一般PE下的系统盘是X,上面的命令可去掉X(可能也有系统盘就是X但不是PE的情况!)。
但如果电脑里有XP、Windows 7、windows 10三系统呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-27 03:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表