中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [求助]请问有没有通用判断系统启动分区盘符的方法?
« [1] [2] »
作者:
标题: [求助]请问有没有通用判断系统启动分区盘符的方法? 上一主题 | 下一主题
forumz
初级用户




积分 176
发帖 24
注册 2003-2-21
状态 离线
『楼 主』:  [求助]请问有没有通用判断系统启动分区盘符的方法?

就是有boot.ini, ntdect.com等启动文件所在的分区盘符, 一般情况下这个盘符是C盘, 但万一有特殊情况呢, 有没有一个比较通用的判断方法? 小弟需要的是在winxp, win2k系统环境下判断.

2007-11-12 17:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 2 楼』:  

楼上的不对吧?比如win98在C:\,xp在D:\时,boot.ini在C:\,而%systemdrive%为d:



Windows 一键还原
http://www.yjhy.com
2007-11-12 18:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
forumz
初级用户




积分 176
发帖 24
注册 2003-2-21
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by lianjiang2004 at 2007-11-12 06:50 PM:
楼上的不对吧?比如win98在C:\,xp在D:\时,boot.ini在C:\,而%systemdrive%为d:

是啊, 就是会有这种情况的出现, 所以%systemdrive%不一定是启动分区
有没类似%ststendrive%的变量是代表启动分区的呢?

2007-11-12 18:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 4 楼』:  

楼住这个问题我以前研究过,似乎没有直接的变量代表启动分区,可以编一个批处理,在各个分区根目录寻找启动文件。
当然我以前还试过不给启动分区分盘符,系统能照样正常运行的。

2007-11-12 18:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
forumz
初级用户




积分 176
发帖 24
注册 2003-2-21
状态 离线
『第 5 楼』:  



  Quote:
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 ]

2007-11-12 19:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 6 楼』:  

一般来说,启动分区就是C:盘,不需要判断。

就算你的XP/2K安装在D:盘,那么它的启动文件,即boot.ini、ntldr等文件也是在C:盘。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-11-13 09:20
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
greenworld
初级用户





积分 86
发帖 45
注册 2007-7-26
状态 离线
『第 7 楼』:  

这个问题好解决,可以肯定的告诉LZ,无论你的系统安装在什么地方,boot.ini, ntdect.com等启动文件都在C盘根目录

2007-11-13 09:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 8 楼』:  

楼上两位说得不对,从winpe下winnt32.exe安装xp,如果启动分区和系统分区不是一个分区,就有可能产生系统分区为c:,启动分区为其它盘符。
可以给你们看一下我现在的分区,xp系统分区是c:,包含ntldr等文件的启动分区没分盘符,而像linux一样,把启动分区挂载在系统分区的boot目录下了。

[ Last edited by fujianabc on 2007-11-13 at 01:34 PM ]

附件 1: 2.png (2007-11-13 13:32, 28.17 K, 下载附件所需积分 1 点 ,下载次数: 3)


2007-11-13 13:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
forumz
初级用户




积分 176
发帖 24
注册 2003-2-21
状态 离线
『第 9 楼』:  



  Quote:
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 键值的内容是什么呢? 谢谢~

2007-11-14 09:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 10 楼』:  



  Quote:
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。

2007-11-14 10:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
forumz
初级用户




积分 176
发帖 24
注册 2003-2-21
状态 离线
『第 11 楼』:  

嗯, 大致也就只能做到这步了. 估计win系统将你的这个boot分区自动分配了一个你不用的盘符作为内部识别使用吧.

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

纯粹是比较好奇想知道系统和那些安全软件是如何获得boot.ini文件位置的, 麻烦fujianabc兄了.

2007-11-14 10:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 12 楼』:  

似乎甚至可以把c:隐藏掉,来启动D:\的xp吧?



Windows 一键还原
http://www.yjhy.com
2007-11-14 12:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 13 楼』:  



  Quote:
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的。

2007-11-14 16:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 14 楼』:  



  Quote:
Originally posted by lianjiang2004 at 2007-11-14 12:40 PM:
似乎甚至可以把c:隐藏掉,来启动D:\的xp吧?

我同学以前不知道怎么装了一个xp,系统分区和启动分区都是d:,而且系统没分c:盘,硬盘盘符是从d:开始的。
因为c:空闲,他的xp上插上u盘,系统就会把u盘分成c:。

2007-11-14 16:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
forumz
初级用户




积分 176
发帖 24
注册 2003-2-21
状态 离线
『第 15 楼』:  

用这种方法来保护启动分区果然够绝

真是学习了~~

2007-11-14 17:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: