Board logo

标题: 请教关于 Windows NT 系列启动的文件调用顺序 [打印本页]

作者: DOSforever     时间: 2006-1-18 15:56    标题: 请教关于 Windows NT 系列启动的文件调用顺序

对 DOS/Win9X 系列很清楚,从分区引导扇区开始 -> IO.SYS -> (config.sys) -> (MSDOS.SYS) -> ……。对 NT 系列,还是从从分区引导扇区开始,其后调用的是否就是 NTLDR ?如果是的话,那么 NTLDR 之后要调用的是什么?当然,其后还要调用一系列许多文件。我现在只要知道到哪一步所调用的文件就没有特殊的位置要求了。

相关的问题的帖子:grub如何从扩展分区盘上引导系统?
作者: fujianabc     时间: 2006-1-22 10:31
ntldr之后依次调用bootfont.bin,boot.ini,ntdetect.com,这三个文件必须在同一个分区内。

下面说一下ntldr调用这个三个文件的原则(这是我在测试grldr是总结的)
ntldr只调用第一硬盘主分区当中的这三个文件,并且主分区必须在扩展分区前。如果在第一硬盘中,有两个以上的主分区,且在扩展分区前面,则从那个分区启动ntldr,ntldr就调用此分区下的这三个文件。
如果ntldr,是从扩展分区或者扩展分区后的后的主分区或者非第一硬盘启动的话(以上都可以用grub来实现),则调用第一硬盘的第一主分区中的这三个文件,如果第一主分区中找不到,就报错,不会再找其他主分区。
所以说这三个文件如果放在扩展分区ntldr是找不到的。
如果ntldr从软盘启动,则搜寻软盘根目录下的这三个文件。

还有一个问题就是boot.ini中可以有类似语句:
c:\bootsect.bin="dos"
中的c:到底值那个盘,可不可以用其他盘符?
经我测试发现,c:就是指的ntldr调用上面的三个文件的那个分区,boot.ini中不能使用除c以外的盘符(如d e f等)
但是有一个例外,就是xp sp2以前版本的ntldr,在从软盘启动时,把软盘根目录作为a:,c不能用;xp sp2之后的ntldr则统一了不管硬盘软盘,一律用c。
作者: DOSforever     时间: 2006-1-23 21:42
多谢 fujianabc 详尽的介绍!你要得出这么个结论一定费了不少工夫吧。呵呵
看来还是 Linux 是最灵活的了。

另请问 grldr 是什么?

[ Last edited by DOSforever on 2006-1-23 at 21:57 ]
作者: GOTOmsdos     时间: 2006-8-14 15:49


  Quote:
如果从非第一硬盘启动的话(以上都可以用grub来实现),则调用第一硬盘的第一主分区中的这三个文件,如果第一主分区中找不到,就报错

现在 我的情况是我把第一硬盘的第一主分区整个扇区复制到了第三硬盘的第二主分区(改为活跃,并设前主分区为不活跃,并隐藏)
并正确修改了主分区数据,但当它启动到了此分区的DBR处,抱错:
NTLDR IS MISSING (可见,他并没有去找第一硬盘的第一主分区的NTLDR。。,试了,从BIOS改启动硬盘和GRUB,都这样)
把DOS系统传到他上面,就能正确启动到DOS!

怎么解释呢?
作者: fujianabc     时间: 2006-8-14 16:43
dos和nt不同,dos只要在c盘便能启动(不管c在那个硬盘,那个分区,哪怕是逻辑分区也行)。
作者: 3dfx     时间: 2006-8-14 17:59


  Quote:
Originally posted by GOTOmsdos at 2006-8-14 03:49 PM:


现在 我的情况是我把第一硬盘的第一主分区整个扇区复制到了第三硬盘的第二主分区(改为活跃,并设前主分区为不活跃,并隐藏)
并正确修改䠮..

你试一下改动分区表看看(一定要记得先备份)。
作者: DOSforever     时间: 2006-8-21 17:51


  Quote:
Originally posted by fujianabc at 2006-8-14 16:43:
dos和nt不同,dos只要在c盘便能启动(不管c在那个硬盘,那个分区,哪怕是逻辑分区也行)。

关于 DOS 这一点我不敢苟同,好象 MS-DOS 7.10 的可以从逻辑分区启动(前提是主分区被隐藏),传统的 MS-DOS 不行,其它的 DOS 还没试过
作者: fujianabc     时间: 2006-8-21 20:38


  Quote:
Originally posted by DOSforever at 2006-8-21 05:51 PM:

关于 DOS 这一点我不敢苟同,好象 MS-DOS 7.10 的可以从逻辑分区启动(前提是主分区被隐藏),传统的 MS-DOS 不行,其它的 DOS 还没试过

说得不错,我指的的确是msdos 7.1。