中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-25 22:11
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [求助]请问有没有通用判断系统启动分区盘符的方法? 查看 2,195 回复 24
楼 主 [求助]请问有没有通用判断系统启动分区盘符的方法? 发表于 2007-11-12 17:45 ·  中国 广东 广州 越秀区 电信
初级用户
积分 176
发帖 24
注册 2003-02-21 00:00
23年会员
UID 965
性别 男
状态 离线
就是有boot.ini, ntdect.com等启动文件所在的分区盘符, 一般情况下这个盘符是C盘, 但万一有特殊情况呢, 有没有一个比较通用的判断方法? 小弟需要的是在winxp, win2k系统环境下判断.
2 发表于 2007-11-12 18:50 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
楼上的不对吧?比如win98在C:\,xp在D:\时,boot.ini在C:\,而%systemdrive%为d:
Windows 一键还原
http://www.yjhy.com
3 发表于 2007-11-12 18:51 ·  中国 广东 广州 越秀区 电信
初级用户
积分 176
发帖 24
注册 2003-02-21 00:00
23年会员
UID 965
性别 男
状态 离线
Originally posted by lianjiang2004 at 2007-11-12 06:50 PM:
楼上的不对吧?比如win98在C:\,xp在D:\时,boot.ini在C:\,而%systemdrive%为d:


是啊, 就是会有这种情况的出现, 所以%systemdrive%不一定是启动分区
有没类似%ststendrive%的变量是代表启动分区的呢?
4 发表于 2007-11-12 18:58 ·  中国 上海 中国科学院上海分院
金牌会员
★★★★
积分 3,467
发帖 1,616
注册 2004-06-21 00:00
22年会员
UID 27148
状态 离线
楼住这个问题我以前研究过,似乎没有直接的变量代表启动分区,可以编一个批处理,在各个分区根目录寻找启动文件。
当然我以前还试过不给启动分区分盘符,系统能照样正常运行的。
5 发表于 2007-11-12 19:16 ·  中国 广东 广州 越秀区 电信
初级用户
积分 176
发帖 24
注册 2003-02-21 00:00
23年会员
UID 965
性别 男
状态 离线
Originally posted by fujianabc at 2007-11-12 06:58 PM:
楼住这个问题我以前研究过,似乎没有直接的变量代表启动分区,可以编一个批处理,在各个分区根目录寻找启动文件。
当然我以前还试过不给启动分区分盘符,系统能照样正常运行的。


小弟目前能想到的是用遍历c-z盘的方法判断是否存在boot.ini和ntdect.com两个文件来判断启动分区, 这样做一般情况下就没问题, 不过如你所说启动分区不分盘符,或者有些人几个分区都放boot.ini和ntdect.com文件情况也会有, 虽然可能性很微...

是否有可能注册表中某键值会对应着呢, 因为在"启动和故障恢复"设置窗口那系统是可以知道在哪里提取boot.ini文件.

[ Last edited by forumz on 2007-11-12 at 07:35 PM ]
6 发表于 2007-11-13 09:20 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
一般来说,启动分区就是C:盘,不需要判断。

就算你的XP/2K安装在D:盘,那么它的启动文件,即boot.ini、ntldr等文件也是在C:盘。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
7 发表于 2007-11-13 09:54 ·  中国 广东 广州 番禺区 电信
初级用户
积分 86
发帖 45
注册 2007-07-26 17:35
18年会员
UID 94082
性别 男
状态 离线
这个问题好解决,可以肯定的告诉LZ,无论你的系统安装在什么地方,boot.ini, ntdect.com等启动文件都在C盘根目录
8 发表于 2007-11-13 13:29 ·  中国 上海 中国科学院上海分院
金牌会员
★★★★
积分 3,467
发帖 1,616
注册 2004-06-21 00:00
22年会员
UID 27148
状态 离线
楼上两位说得不对,从winpe下winnt32.exe安装xp,如果启动分区和系统分区不是一个分区,就有可能产生系统分区为c:,启动分区为其它盘符。
可以给你们看一下我现在的分区,xp系统分区是c:,包含ntldr等文件的启动分区没分盘符,而像linux一样,把启动分区挂载在系统分区的boot目录下了。

[ Last edited by fujianabc on 2007-11-13 at 01:34 PM ]
附件
2.png
9 发表于 2007-11-14 09:02 ·  中国 广东 广州 电信
初级用户
积分 176
发帖 24
注册 2003-02-21 00:00
23年会员
UID 965
性别 男
状态 离线
Originally posted by fujianabc at 2007-11-13 01:29 PM:
楼上两位说得不对,从winpe下winnt32.exe安装xp,如果启动分区和系统分区不是一个分区,就有可能产生系统分区为c:,启动分区为其它盘符。
可以给你 ...


麻烦jujianabc兄再帮帮忙, 按照你这样没给启动分区配置盘符的情况下以下注册表项是什么内容:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup 下的 BootDir 键值的内容是什么呢? 谢谢~
10 发表于 2007-11-14 10:21 ·  中国 上海 中国科学院上海分院
金牌会员
★★★★
积分 3,467
发帖 1,616
注册 2004-06-21 00:00
22年会员
UID 27148
状态 离线
Originally posted by forumz at 2007-11-14 09:02 AM:


麻烦jujianabc兄再帮帮忙, 按照你这样没给启动分区配置盘符的情况下以下注册表项是什么内容:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup 下的 BootDir 键值的内容是什么呢? 谢谢~

我现在这个键值是G:\,但我没有分区的盘符是G:。
但我觉得你好像找对地方了,我这种情况你就不用考虑了,估计没有其他人会这样做的,我这样做的目的就是不让任何软件来自动修改boot.ini。
11 发表于 2007-11-14 10:52 ·  中国 广东 广州 越秀区 电信
初级用户
积分 176
发帖 24
注册 2003-02-21 00:00
23年会员
UID 965
性别 男
状态 离线
嗯, 大致也就只能做到这步了. 估计win系统将你的这个boot分区自动分配了一个你不用的盘符作为内部识别使用吧.

不过抱着研究的心态想问问:
1. 按你的设置, 在 我的电脑点右键->属性->系统属性->高级->启动和故障恢复 界面里面按"编辑"键 会跳出 boot.ini 文件的修改吗?
2. 另外 那些系统安全软件例如 sreng2.5 等还能读取你系统的 boot.ini 文件吗?
3. 如果在"运行"输入 "notepad g:\boot.ini" 会怎样呢?

纯粹是比较好奇想知道系统和那些安全软件是如何获得boot.ini文件位置的, 麻烦fujianabc兄了.
12 发表于 2007-11-14 12:40 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
似乎甚至可以把c:隐藏掉,来启动D:\的xp吧?
Windows 一键还原
http://www.yjhy.com
13 发表于 2007-11-14 16:08 ·  中国 上海 中国科学院上海分院
金牌会员
★★★★
积分 3,467
发帖 1,616
注册 2004-06-21 00:00
22年会员
UID 27148
状态 离线
Originally posted by forumz at 2007-11-14 10:52 AM:
嗯, 大致也就只能做到这步了. 估计win系统将你的这个boot分区自动分配了一个你不用的盘符作为内部识别使用吧.

不过抱着研究的心态想问问:
1. 按你 ...

这些我早就试过了,系统属性,msconfig,以及bootcfg命令都找不到boot.ini文件,g:当然是不能访问。
另外,还想提一点,以前我试过从软盘引导ntldr/boot.ini,也能启动硬盘上的xp,启动后拿掉软盘,系统也会找不到boot.ini的。
14 发表于 2007-11-14 16:11 ·  中国 上海 中国科学院上海分院
金牌会员
★★★★
积分 3,467
发帖 1,616
注册 2004-06-21 00:00
22年会员
UID 27148
状态 离线
Originally posted by lianjiang2004 at 2007-11-14 12:40 PM:
似乎甚至可以把c:隐藏掉,来启动D:\的xp吧?

我同学以前不知道怎么装了一个xp,系统分区和启动分区都是d:,而且系统没分c:盘,硬盘盘符是从d:开始的。
因为c:空闲,他的xp上插上u盘,系统就会把u盘分成c:。
15 发表于 2007-11-14 17:56 ·  中国 广东 广州 越秀区 电信
初级用户
积分 176
发帖 24
注册 2003-02-21 00:00
23年会员
UID 965
性别 男
状态 离线
用这种方法来保护启动分区果然够绝

真是学习了~~
论坛跳转: