中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-30 09:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何根据盘符知道分区在硬盘中的位置? 查看 6,540 回复 52
46 发表于 2006-08-19 07:34 ·  中国 江苏 苏州 吴中区 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
真不好意思,上面是我不懂在瞎写了,惭愧。
我想问问,在 NT 的 WINDOWS 环境下,有没有什么简单点儿的命令能精确的返回出当前系统是从哪个盘启动的。也就是当前 WINDOWS 系统启动时调用的 NTLDR 和 BOOT.INI 在当前 WINDOWS 环境下是哪个盘符。
47 发表于 2006-08-19 10:34 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
主分区只会出现在第1个、第2个、最后第2个和最后1个,每个硬盘上最多可以有4个主分区,且只有1个是活动的。

了解了上述规律,所以WINDOWS下也是用20楼的判断。
如WINDOWS下用其他命令的可以用%systemdrive%回车用vol获取卷标或序列,再用ghost32 -dd 获取其盘号。批处理怎么做自己掂量一下吧。
48 发表于 2006-08-19 10:51 ·  中国 上海 浦东新区 电信
金牌会员
★★★★
积分 3,467
发帖 1,616
注册 2004-06-21 00:00
22年会员
UID 27148
状态 离线
启动分区(ntldr所在分区)甚至不一定在第一硬盘上的:
比如ntldr,boot.ini等可以在第二硬盘的活动分区上,启动前在bios中设置从第二硬盘启动,启动后在windows的磁盘管理器中可以发现启动分区在第二硬盘上。

不过windows自己也经常认错启动分区,我的启动分区盘符是g:,在msconfig的boot.ini选项中一直从c:找boot.ini。不过磁盘管理器似乎总能找对启动分区的。
49 发表于 2006-08-19 12:17 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
你的情况在dos下无能为力了,WINDOWS下%systemdrive%用vol获取卷标用ghost32 -dd定位盘号的方法可行的,但必须有卷标,也可以判断在没有卷标的情况下创建一个卷标再用ghost32 -dd判断在定位盘号。

至于你的启动分区盘符是g:,我估计你的第2个硬盘在光驱IDE从上面,也可能你这个系统之前是在第1个IDE位置上安装的,再或者你用万能ghostxp安装xp,原生安装的xp盘符错乱会好一点的。
50 发表于 2006-08-19 12:38 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
我也试过在两个硬盘上都装系统。但没有你的情况。
如果第一硬盘不拔掉,直接在第二硬盘上装系统,系统仍然会把启动项目添加到第一个硬盘上。如果事先把第一个硬盘拔掉,直接在第二个硬盘上装。装完再接上第一硬盘。并在 BIOS 里设置从第二硬盘启动。那这样启动后,第二硬盘的启动内容在 WINDOWS 下一般就是 C 盘。第一硬盘被当作添加的硬盘,所有盘符全根在后面了。
请问,fujianabc 的启动分区在 G 盘上,是怎么装出来的?我不会 = = ,想了解下。

[ Last edited by NaturalJ0 on 2006-8-19 at 12:42 ]
51 发表于 2006-08-19 13:56 ·  中国 上海 浦东新区 电信
金牌会员
★★★★
积分 3,467
发帖 1,616
注册 2004-06-21 00:00
22年会员
UID 27148
状态 离线
我就是像你那样先在第二硬盘上装系统,然后接上第一硬盘,把第一硬盘的主分区分盘符为g:,然后把ntldr,ntdetect.com,bootfont.bin和boot.ini拷到g:盘,把boot.ini的rdisk(0)改为rdisk(1)。
这样在bios中设为从第一硬盘启动之后,g:为启动分区,c:为系统分区。
如果在bios中设为从第二硬盘启动之后,启动分区和系统分区都是c:(c:在第二硬盘上)。
52 发表于 2006-08-19 14:33 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
原来是你手动移动了启动文件。
如果原来的第一个硬盘上装的也是 NT 系统的话,就不必移了。
先在第二个上单独装系统。装好后把第一个硬盘也接上。 BIOS 不必改动。总是第一个硬盘启动。直接去第一个硬盘的 BOOT.INI 里加上一项,最后是 rdisk(1) 就行了。

前面因为没搞清楚状况所以问了个比较傻的问题。现在重新问。
如果这样:

主区1(隐藏) 扩展区 主区2 主区3

扩展区就一个盘好了,不细分了

然后向主区3装 XP
装好后在 XP 系统下,各盘符和这四个区是怎么一一对映的?
NTLDR 和 BOOT.INI 在哪儿? (我觉得应该在主区2吧,不知道错没 = = )
53 发表于 2006-08-19 21:35 ·  中国 上海 浦东新区 电信
金牌会员
★★★★
积分 3,467
发帖 1,616
注册 2004-06-21 00:00
22年会员
UID 27148
状态 离线
windows安装程序会把ntldr boot.ini等启动文件放在激活的的那个主分区上。
若主区2激活,则在2上;主区3激活,则在3上。
论坛跳转: