无忧启动论坛

标题: 关于NTLDR的若干问题,请高人解答! [打印本页]

作者: jneny    时间: 2008-5-21 21:47
标题: 关于NTLDR的若干问题,请高人解答!
NTLDR引导器主要是ntldr、NTDETECT.COM、boot.ini 、bootfont.bin、以及一个NT系统的引导扇区组成。

下面是问题。
1、NT分区的引导信息是怎么生成的,直接用PQ或者在WIN里格式化成NTFS会有引导ntldr的功能吗?
2、ntldr和ntdetect.com文件的兼容性是ntldr向ntdetect.com兼容还是要必需是同一个系统的这两个文件才兼容?
3、老毛桃的WINPE里的LDRXP文件是和ntldr一样的功能吗?
4、NTLDR有虚拟内存盘功能吗,因为之前看过一个boot.ini产生这样的疑问。原贴:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=117432


  为了方便阅读。请各位大侠回复前加上编号,本人严重谢谢
作者: zjqcomputer    时间: 2008-5-22 19:44
1.用bootsect,此工具在vista光盘中能找到。

2.建议用同一个系统的.

3.LDRXP和ntldr是不一样的.

4.ntldr没有虚拟内存盘功能

[ 本帖最后由 zjqcomputer 于 2008-5-22 07:46 PM 编辑 ]
作者: powerxing    时间: 2008-5-22 23:22
虚拟内存盘是setupldr.bin的功能,setupldr和NTLDR很相似,但是NTLDR没有虚拟内存盘而可以手动选择内核文件,而setupldr不能手动选择,我也没发现它能自动选择ntoskrnl
作者: netwinxp    时间: 2008-5-22 23:41
1、很显然是格式化软件生成的(并不是所有的格式化软件都会生成)。
2、NTLDR好像向下兼容操作系统,但BOOTFONT.BIN好像不兼容不同版本的NTLDR,NTDETECT.COM没试验过,建议3个文件用同一版本。
3、setupldr.bin是Setup模式,ntldr是系统模式,两者调用的配置文件、注册表文件不同。
4、NTLDR包含Startup(负责转入保护模式和转Osloader)和Osloader模块,后面的才是真正的Windows启动模块。创建Ram盘应该是Osloader调用Ramdisk.sys干的事,Osloader本身是可以在Ram盘中运行的。我们可以从NTLDR的Osloader模块找到"Windows failed to build a bootable RAMDISK image"、"ramdisk(0)"等字样。"net(0)"、"multi(0)disk(0)fdisk(0)partition(0)"、"multi(0)video(0)monitor(0)"、"multi(0)key(0)keyboard(0)"令我们很感兴趣。NTDETECT.COM只不过是Osloader用来检测硬件的16位程序。至于我们没办法用NTLDR生成RAM盘,也许是一些未公开的秘密没被我们掌握。
早期的NTLDR(比如NT4)没此功能。

[ 本帖最后由 netwinxp 于 2008-5-23 12:25 AM 编辑 ]
作者: netwinxp    时间: 2008-5-23 00:05
原帖由 friend8179 于 2008-5-22 23:49 发表
4.ntldr有加载到内存的功能,楼主提到那个帖子兰屏原因是启动时缺少ramdisk.sys驱动,启动后不能识别这个ramdisk盘

类比于bootmgr加载.wim到内存一样,加载进去后如果boot.wim里没有WimFltr.sys组件还是会兰屏的

ramdisk.sys似乎要用2003的版本才行,具体原因未知。
作者: jneny    时间: 2008-5-23 14:33
谢谢各位的解答,小弟似乎有点明白了。

Re:netwinxp 你说的那个ramdisk.sys 用它就可以使用win2003的NTLDR加载内存盘功能是这样的么?

   楼顶给出的boot.ini中直接加载内存盘。这样的配置文件是否真的有,还是别人误操作?
作者: netwinxp    时间: 2008-5-23 15:32
你试试在[operating systems]项中加入(我没试过,是猜的)
ramdisk(0)\WINDOWS="RAMXP" /fastdetect /rdpath=multi(0)disk(0)rdisk(0)partition(1)\RAMXP.IMG
看能否启动(至于能否正常启动应该是看映像文件的),如果不行就用2003的NTLDR再看看。注意映像文件别太大,另外IMG文件里面的系统要预先把Ramdisk.sys加入到注册表,红字部分根据你映像里面系统的不同而不同,绿色部分就是你映像文件放的位置(假设你放在C:\),还有由于注册表无法被保存,所以系统里面的软件和驱动都要预先装好(移植性肯定很差)。
======================
呵呵刚好看到7楼发的帖子http://bbs.wuyou.net/forum.php?mod=viewthread&tid=122282&extra=page%3D2,你自己去看看。

[ 本帖最后由 netwinxp 于 2008-5-23 03:56 PM 编辑 ]
作者: jneny    时间: 2008-5-29 16:48
首先抱歉由于时间原因很久没有上论坛!!

原帖由 netwinxp 于 2008-5-23 03:32 PM 发表
你试试在[operating systems]项中加入(我没试过,是猜的)
ramdisk(0)\WINDOWS="RAMXP" /fastdetect /rdpath=multi(0)disk(0)rdisk(0)partition(1)\RAMXP.IMG
看能否启动(至于能否正常启动应该是看映像文件的)   注意映像文件别太大,另外IMG文件里面的系统要预先把Ramdisk.sys加入到注册表 ...


netwinxp 你所说的ramdisk.sys怎么加到注册表里?如何操作,我没有搜索到类似的贴子
作者: netwinxp    时间: 2008-5-29 22:45
原帖由 jneny 于 2008-5-29 16:48 发表
首先抱歉由于时间原因很久没有上论坛!!



netwinxp 你所说的ramdisk.sys怎么加到注册表里?如何操作,我没有搜索到类似的贴子

我给的那个连接里面有,具体就是修改system这个注册表,你可以参考PE修改regsetup.hiv加入ramdisk.sys的帖子。
作者: greenangel    时间: 2008-6-1 13:06
原帖由 <i>netwinxp</i> 于 2008-5-23 03:32 PM 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=1402882&ptid=125922" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
你试试在[operating systems]项中加入(我没试过,是猜的)<br />
ramdisk(0)\WINDOWS="RAMXP" /fastdetect /rdpath=multi(0)disk(0)rdisk(0)partition(1)\RAMXP.IMG<br />
看能否启动(至于能否正常启动应该是看映像文件的) ...
<br />


XPE是这样加载的,如果PE也可以这样加载就方便多了!

期待有这方面的进展……
作者: netwinxp    时间: 2008-6-1 14:45
原帖由 greenangel 于 2008-6-1 13:06 发表
XPE是这样加载的,如果PE也可以这样加载就方便多了!
期待有这方面的进展……

差不多的,只不过需要启动的是SETUPLDR.BIN,配置文件变成了WINNT.SIF(可能无法多启动),DISK和PATH分成两行,后面的参数跑到OSLOADER这行了。XP、PE、Embedded差别很小,基本上就引导文件、引导配置文件、[硬件配置文件]、注册表文件有所不同,基本上可以看成一个咚咚的若干马甲。Embedded大致可以看成介乎XP和PE之间,所以三者之间的很多参数可以相互借鉴。
[operating systems]
ramdisk(0)\WINDOWS="RAMXP" /fastdetect /rdpath=multi(0)disk(0)rdisk(0)partition(1)\RAMXP.IMG
移植到PE差不多就变成了——
BootDevice="ramdisk(0)"
BootPATH="MINIPE\SYSTEM32"
OSLOADER="/minint /fastdetect /rdpath=multi(0)disk(0)rdisk(0)partition(1)\RAMPE.IMG"
*所以可以尽可能发挥想象力进行实验性测试,对于隐藏分区我认为如果直接用SETUPLDR.BIN作为启动文件的话,应该可以用“磁盘-分区-文件”来指定映像文件位置,从而避免找不到文件的尴尬*
***其中红色部分在XP没有,所以安装好的XP可移植性较差,但多引导功能丰富***

[ 本帖最后由 netwinxp 于 2008-6-1 03:06 PM 编辑 ]




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3