无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 217418|回复: 779
打印 上一主题 下一主题

[发布] 模块化版NTBOOT [2011-10-11]

    [复制链接]
跳转到指定楼层
1#
发表于 2011-3-26 10:03:05 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
新版的NTBOOT.IMG直接启动版本已经发布

http://chenall.net/post/ntboot/

有需要的可以下载测试看看有没有什么问题..

另外为了方便准备再整一个模块化版的NTBOOT.
可以启动NT5/NT6/PE1/PE2

启动文件是NTLDR/BOOTMGR/SETUPLDR.BIN

注:这些都不需要硬盘上的启动文件支持.

除了之前前NTBOOT的功能以外,额外添加PE1的启动功能还有ISO直接安装系统的功能.

这样在硬盘上使用时比较方便.不需要准备多套的启动文件
比如启动WIN7PE时就只需要一个WIN7PE.WIM就可以启动了.
启动PE1也一样只需要一个文件.

特注:只能用于启动硬盘上的系统或文件

[命令介绍]
  • NTBOOT NT5|NT6[=root|file]
    用于启动NT5或NT6系统。
    其中:root是一个GRUB4DOS的设备名比如(hd0,0)或(hd0,5)
    file是指一个文件主要用于NT6,目前支持VHD/WIM两种文件
  • NTBOOT PE1=file [PDIR=pdir]
    用于启动PE1的系统,file指定启动的文件路径比如/boot/imgs/xppe.is_
    注:这个文件必须PE的核心启动文件。像/boot/imgs/winpe.im_之类的
  • NTBOOT VBOOT=file [options...]
    调用vboot功能来启动.
    file 指定要启动的文件路径,例:/vboot/winxp/winxp-s1.vhd
  • NTBOOT ISO_INST=[firadisk|vboot|winvblk] [options...]
    用于通过ISO文件来直接安装系统。支持三种方案。
    其中经过测试firadisk/winvblk都无法成功安装2003,vboot可以。
  • 关于 [options...]
    这个目前支持的参数例表如下
    cdrom=iso_file         指定虚拟光驱的ISO文件
    harddisk=hdd_img   指定虚拟磁盘的镜像文件
    floppy=fdd_img       指定要加载的软盘镜像(自动加载到fd0)
    boot=cdrom|harddisk|floppy 指定从什么地方启动。
    其中:cdrom固定是(0xff),harddisk固定是(hd0),floppy固定是(fd0).
    opt="other options"  其它要附加的参数。
    比如:使VBOOT在启动的时候暂停。
    /BOOT/NTBOOT/NTBOOT vboot=/vboot/winxp/winxp-s1.vhd opt="pause"
    以下例子,将会调用VBOOT的自动还原模式。
    /BOOT/NTBOOT/NTBOOT vboot=/vboot/winxp/winxp-s1.vhd opt="immutable"
    关于VBOOT的参数,请参阅VBOOT的使用说明。
  • 2011-09-27 新增addons=cmd参数(PE1和ISO_INST)
    addons=cmd  运行一个指定的命令



[更新记录]


2011-10-11
1.重新设计模块化文件。
2.启动WINDOWS 7时可以正常显示启动画面
文件名称: NTBOOT.iso
文件大小: 2.82 MB (2,955,264 字节)
修改时间: 2011年10月11日,19:46:37
MD5: 954FACB61538BB59320D72BA1F9DEF5C
SHA1: 8E3CA6662F078E057DD5DBCB64DEFC2B51682D67


下载地址:   盛大网盘
金山快盘


2011-09-27
新增addons参数
例子:
用于系统安装.
ntboot iso_inst=firadisk cdrom=/winxp.iso addons="dpms 0"
说明: 自动调用dpms命令(在NTBOOT.MOD目录下),当然了也可以是其它命令比如
ntboot iso_inst=firadisk cdrom=/winxp.iso addons="/boot/addons/dpms/dpms.bat 0"
用于pe1的例子:
ntboot pe1=/boot/addons/tangope/tangope.is_ addons="dpms"


从这里下载已经制作好的DPMS.ISO放到NTBOOT.MOD目录下就可以直接使用.附带的dpms功能.
http://yfdisk.com/file/chenall/be7ee911/



2011-07-05
1.添加启动WIM格式PE1.X的支持。
注:默认使用/rdimageoffset=8192 /rdimagelength=3161088参数。如果你的PE不是这个值则可以自己添加参数,例子
NTBOOT PE1=/boot/PE1.WIM OPTIONS="/rdimageoffset=4096 /rdimagelength=303104“

文件名称: NTBOOT.iso
文件大小: 2.46 MB (2,582,528 字节)
修改时间: 2011年07月09日,14:03:04
MD5: 99FB551CBF6256FD7DDE862879E1A758
SHA1: 31B0170A3660F0EABC7B22614B31D5AF0FEFEFED


YUNFILE 够快网盘下载 115下载

2011-05-09
感谢tuxw的报告,修正引导PE1时指定pdir等参数无效的问题.
ziddu网盘下载:(不要使用下载工具就可以下载)
http://cn.ziddu.com/download/594312/NTBOOT.zip.html

115网盘下载:
http://u.115.com/file/dn6nuj69

2011-05-03
1.ISO_INST的CDROM/HARDDISK添加@选项,直接映射映像到内存中.
例子:
%NTBOOT% iso_inst=firadisk @cdrom=/cd/xp.iso
will map /cd/xp.iso to ram.

http://cn.ziddu.com/download/592901/NTBOOT.zip.html

2011-04-14
1.自动处理U盘被识别为(fdx,y)时启动PE1.X的问题。

2.NT6.X添加了几个选项,感谢ireneuszp 的测试和报告。
3.一些小调整。

下载地址:
115网盘:
http://u.115.com/file/f09d1d219c

ziddu:(文件有更新,15号之前下载的需重新下载)
http://cn.ziddu.com/download/590367/NTBOOT.zip.html

2011-04-12
1.支持启动软盘、光盘、硬盘上的PE1.X镜像(未全面测试)。
2.修正前一版的一个BUG
3.调整了一下使用ISO安装系统的代码,对于FIRADISK驱动,只需要第一步,不再需要第二步。

下载地址:
http://cn.ziddu.com/download/590075/NTBOOT.rar.html

注:启动软盘或光盘上的PE1.X镜像时,路径必须以"("开头。否则只会查找硬盘上的。
例子:NTBOOT和XPPE.IS_文件在同一磁盘(光盘、U盘之类的)
使用以下命令即可
/BOOT/NTBOOT/NTBOOT PE1=()/BOOT/XPPE.IS_
也可以指定哪一个磁盘
/BOOT/NTBOOT/NTBOOT PE1=(cd)/BOOT/XPPE.IS_


2011-04-10
1.启动pe1时会自动查找压缩文件.比如以下命令会先找xppe.iso没找到时再使用xppe.is_.
/boot/ntboot/ntboot pe1=/boot/imgs/xppe.iso
2.添加了一个调试用的开关(暂时只针对NT6)
开启方法:
首先在硬盘根目录上创建一个文件ntboot_bcd文件(要大于40KB)
然后进入GRUB4DOS
set DEBUG=on
再执行NTBOOT启动nt6的菜单,就会把bcd的内容写入到ntboot_bcd文件中,可以方便调试使用.

http://u.115.com/file/t0b3f592da#
NTBOOT.iso

2011-04-04 修正
1.修正vboot的问题.
2.修改创建空白(fd0)的问题.
115网盘维护,先传到这里了..
http://cn.ziddu.com/download/588505/NTBOOT.rar.html


2011-04-02 修正版
1.修正VBOOT安装菜单的问题,因为在VBOOT中$是属于特殊字符,所以新的VBOOT菜单改成了使用winxp.iso安装.


2011-04-01
1.把文件整理了一下,免得文件太多很乱。
2.新添加WINVBLK驱动(用于使用ISO安装系统)
3.使用一个ISO镜像发布,方便测试。

PS:唉,有点懒,很不想动手。所以尽量简化菜单了。
有兴趣的可以研究一下写一个比较全面的菜单,包括自动查找指定目录下的文件并生成对应菜单等。

放着测几天,没有什么问题就终结版。

2011-03-30
添加直接使用ISO来安装系统的功能。支持vboot和firadisk两种方式,其中vboot的兼容性可能会比较好一些。
下载和介绍请看#76
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=190203&page=8#pid2192324


2011-03-28
添加VBOOT启动功能
例子:
/ntboot/ntboot vboot=/vboot/winxp/winxp.vhd


使用要求:
1.必要使用绝对路径来运行NTBOOT(可以使用/开头的路径)
2.只能启动硬盘上微软系统可识别的分区上面的系统.
3.不可以使用insmod ntboot来运行NTBOOT,因为需要定位NTBOOT文件所在目录.

使用例子菜单调用:

title 1.NT5
#自动查找硬盘上的NT5系统,并启动
/BOOT/NTBOOT/NTBOOT NT5
boot

title 2.NT5 from (hd1,0)
/BOOT/NTBOOT/NTBOOT NT5=(hd1,0)
boot

title 3.Tangope
#自动查找/BOOT/IMGS/TANGOPE.IS_并启动
/BOOT/NTBOOT/NTBOOT PE1=/BOOT/IMGS/TANGOPE.IS_
boot

title 4.win7pe(WIM)
#直接使用(hd0,4)/boot/imgs/WIN7PE.WIM
/BOOT/NTBOOT/NTBOOT NT6=(hd0,4)/boot/imgs/WIN7PE.WIM
boot

title 5.WIN7(VHD)
/BOOT/NTBOOT/NTBOOT NT6=(hd0,0)/boot/win7.vhd
boot

你也可以自己写一个批处理,自动根据系统的情况来生成菜单.这样方便调用.

[ 本帖最后由 chenall 于 2011-10-11 19:57 编辑 ]

20110326125937427.png (3.31 KB, 下载次数: 677)

20110326125937427.png

20110401234430049.png (13.66 KB, 下载次数: 520)

20110401234430049.png

20110401234438098.png (14.54 KB, 下载次数: 493)

20110401234438098.png

20110401234452972.png (16.16 KB, 下载次数: 484)

20110401234452972.png

评分

参与人数 4无忧币 +25 收起 理由
有阴也有阳 + 5 很给力!
diskmans + 5 赞一个!
tt911 + 5 例子给的多!这样最醒目和给力~~
zxw + 10 精品文章,创意无限,优秀教材!

查看全部评分

2#
 楼主| 发表于 2011-3-26 10:53:24 | 显示全部楼层
@lxl1638 @chiannet

UD是不可能的(因为微软不认UD区啊),如果要启动UD区的那必须着先复制出来.这样不划算.
除了要求是在硬盘上,并且是微软系统自身可以识别的分区以外,没有其它限制..
当然了如果目录太长了,可能会有些问题..
隐藏分区或扩展分区也是没有问题的,只要符合上面的条件.

@huyadong
应该是没有什么问题,只要你的U盘被识别为硬盘就行了.
启动是没有问题,但是如果这个系统不支持当然还是启动失败.
回复

使用道具 举报

3#
 楼主| 发表于 2011-3-26 10:55:15 | 显示全部楼层
目前我还在调整代码..预计中午2点左右会先发一个试用版出来.
回复

使用道具 举报

4#
 楼主| 发表于 2011-3-26 11:41:14 | 显示全部楼层
模块化版是没有菜单的....

需要什么样的功能菜单自己写菜单就行了.
回复

使用道具 举报

5#
 楼主| 发表于 2011-3-26 12:56:57 | 显示全部楼层
原帖由 忧无 于 2011-3-26 12:55 发表
引导软激活的WIN7VHD后,VHD系统变成没激活了,不知楼主有办法解决否?


在引导之前先加载SLIC,具体的自己找资料..
回复

使用道具 举报

6#
 楼主| 发表于 2011-3-26 15:51:23 | 显示全部楼层
发错了,请重新下载...
回复

使用道具 举报

7#
 楼主| 发表于 2011-3-26 16:42:10 | 显示全部楼层
原帖由 天涯海角1216 于 2011-3-26 16:36 发表
也就是用NTBOOT_mod包里的文件启动PE\XP\WIN7....
不需要专门的引导文件了?


是的,预期就是要达到这样的效果.
回复

使用道具 举报

8#
 楼主| 发表于 2011-3-26 17:48:40 | 显示全部楼层
原帖由 sratlf 于 2011-3-26 17:17 发表
能否改动下  默认

ntboot  放在/BOOT/GRUB/下

其余文件在/BOOT/GRUB/NTBOOT/下

这样执行ntboot应该不用加路径了吧



这样子还必需定位NTBOOT路径,更麻烦,而且也不是很方便.

我觉得现在这样子挺好的.

因为你可以把NTBOOT里面的文件放到任意位置.


/MYBOOT/NTBOOT PE1=/BOOT/IMGS/PE1.ISO
回复

使用道具 举报

9#
 楼主| 发表于 2011-3-26 22:48:14 | 显示全部楼层
原帖由 thttht 于 2011-3-26 21:21 发表
这个太好了!支持!

请问 C大 是不是可以把 VBOOT 的 WinXP VHD 启动也加入进来啊?


好像VBOOT必须使用根目录/VBOOT/GRUB,不太方便。。

对GRUB2不熟,不知它有没有支持参数?就像GRUB4DOS的GRUB.EXE一样

kernel /grub.exe ........

后面可以加参数。

只要支持参数就比较好办了,否则就比较麻烦。
回复

使用道具 举报

10#
 楼主| 发表于 2011-3-27 08:26:38 | 显示全部楼层
原帖由 thttht 于 2011-3-27 06:50 发表


GRUB2 也支持比处理,并且VBOOT支持参数的。可以向你这里启动Win7修改bcd菜单那样,用前面用GRUB4DOS查找文件并替换修改VBOOT的启动菜单文件,然后再由GRUB4DOS转到VBOOT里启动。 C大 如果需要我把我调整修 ...


这个和之前的镜像版是不一样的.独立使用,别考虑得太麻烦..

不明白可以再仔细看一下顶楼的贴子...

直接下载本贴的文件.
解压到任意位置.比如你解压到

/boot目录下.

在GRUB4DOS菜单中就可以直接使用以下命令来调用.
/boot/ntboot/ntboot xxxxx


另外vboot启动的参数在哪里可以找到?

注:我是需要像GRUB.EXE那样的参数,
即直接在GRUB4DOS下用kernel加载传递的参数..

kernel /vbootldr xxxxxx

后面可以使用什么参数?我昨天晚上Google一下,没有找到.

[ 本帖最后由 chenall 于 2011-3-27 08:33 编辑 ]
回复

使用道具 举报

11#
 楼主| 发表于 2011-3-27 08:27:40 | 显示全部楼层
原帖由 zxw 于 2011-3-27 01:35 发表
u盘识别为fd时,启动nt5提示:'NTDetect Failed'


顶楼已经说过啦,只支持启动硬盘上的系统...
回复

使用道具 举报

12#
 楼主| 发表于 2011-3-27 08:32:28 | 显示全部楼层
回复

使用道具 举报

13#
 楼主| 发表于 2011-3-27 11:14:25 | 显示全部楼层
你的启动命令?
还有你的PE的系统目录?

文件位置。。
回复

使用道具 举报

14#
 楼主| 发表于 2011-3-28 11:17:58 | 显示全部楼层
原帖由 sratlf 于 2011-3-28 01:11 发表
@chenall

ntboot.img里的mennu.lst

find --set-root --devices=h /%WinDir%/system32/ntoskrnl.exe cat --locate=\0\x35\0\x2E /%WinDir%/system32/version.dll

是否少了&&


这个语法没有错,先查找NTOSKRNL.EXE再判断VERSION.DLL
回复

使用道具 举报

15#
 楼主| 发表于 2011-3-28 12:01:34 | 显示全部楼层
原帖由 ren001 于 2011-3-28 11:44 发表
好 支持 以前试过 似乎会隐藏一些区吧


和这个有什么关系???

@sratlf ,zxw

那个数值,是指使用cat --locate命令找到的字符串的位置。
回复

使用道具 举报

16#
 楼主| 发表于 2011-3-28 13:05:19 | 显示全部楼层
你确定你的文件没有改动过?

另外,如果是比较早下载的需要重新下载。因为前面的那个传错了,重新传了一个。

还有注意看一下启动之前的提示,那个磁盘和文件是否正确。
回复

使用道具 举报

17#
 楼主| 发表于 2011-3-28 14:26:51 | 显示全部楼层
提示file not found是正常的,因为你使用的是/BOOT/NTBOOT/NTBOOT来启动。

而到这里的默认root已经是后面/w7pe/w7pe.wim所在的root了。

下次改进一下,执行失败或退出时返回原来的root.

我再稍后试试U盘的PE。

另外准备加添VBOOT启动功能。预计晚上18点之前会上传新版。
像这样子的
/boot/ntboot/ntboot vboot=/boot/winxp/winxp.vhd

[ 本帖最后由 chenall 于 2011-3-28 14:27 编辑 ]
回复

使用道具 举报

18#
 楼主| 发表于 2011-3-28 16:59:18 | 显示全部楼层
原帖由 pseudo 于 2011-3-28 14:36 发表
最好NTBOOT.img里也添加。


等这个OK了,到时再一起添加。
回复

使用道具 举报

19#
 楼主| 发表于 2011-3-28 17:10:08 | 显示全部楼层
添加了VBOOT模块。
新的版本支持通过VBOOT启动虚拟磁盘镜像。

以后就方便直接在GRUB4DOS下调用VBOOT来启动了。。

[ 本帖最后由 chenall 于 2011-3-28 17:22 编辑 ]
回复

使用道具 举报

20#
 楼主| 发表于 2011-3-28 17:22:07 | 显示全部楼层
原帖由 jianliulin 于 2011-3-28 17:16 发表
to chenall

强烈建议grub4dos 模块文件内置个标志,以便判断此文件是否是grub4dos的模块文件,目前我在写grub4dos 模块管理工具,遇到了不知如何判断文件是否是grub4dos 的模块文件。

116609


模块应该是指使用MAKEMOD建立的文件吧?

两个方案。

1.在模块文件的文件头添加一个标志,你觉得怎么样。放在文件头可以快速判断。
2.使用固定扩展名,最简单的办法。
回复

使用道具 举报

21#
 楼主| 发表于 2011-3-28 17:31:26 | 显示全部楼层
原帖由 jianliulin 于 2011-3-28 17:26 发表


我所描述的就是用makmod产生的文件,如grub4dos.mod

1.是的,在文件头放个标志最好。就弄16个字节吧,怎么样?
2.用扩展名不保险


目前内部要求必须是.mod才行的。

所以,再加个文件头,双重保险。
回复

使用道具 举报

22#
 楼主| 发表于 2011-3-28 17:37:40 | 显示全部楼层
考虑了一下,我觉得用以下方案。

文件头16个字节。
前面8个字节是GRUBEXEC签名(和GRUB外部命令的签名一样)0xBCBAA7BA03051805
后面8个字节暂时留空。以后也许会用得着。

你觉得如何?
回复

使用道具 举报

23#
 楼主| 发表于 2011-3-28 17:42:44 | 显示全部楼层
原帖由 jianliulin 于 2011-3-28 17:41 发表



还是区分外部命令和模块文件吧,分开来比较好,至于什么标记没关系,


模块文件的签名在文件头。

外部命令的签名在文件尾。

这样很好区分。
回复

使用道具 举报

24#
 楼主| 发表于 2011-3-28 18:31:21 | 显示全部楼层
@jianliulin
额,太客气了。
回复

使用道具 举报

25#
 楼主| 发表于 2011-3-28 20:43:53 | 显示全部楼层
原帖由 thttht 于 2011-3-28 19:55 发表


请教 C大 现在通过VBOOT启动虚拟磁盘镜像支持启动差分盘和快照吗?

希望可以通过参数支持VBOOT的虚拟磁盘镜像全新安装!以及《利用vboot直接从iso安装xp/2003,无需载入内存,无需连续存储!更新:支持SRS驱 ...


可以启动的啊,只要指定启动的文件就行了。

像如果WINXP.VHD它的一个快照是WINXP-S1.VHD

你直接启动WINXP-S1.VHD就行了。

这里只是直接调用它启动,没有像VBOOT那么多的功能。

那个GRUB.CFG内容是空白的,在启动的时候根据用户路径的情况动态改变。

关键代码在NTBOOT里面。
回复

使用道具 举报

26#
 楼主| 发表于 2011-3-28 23:12:43 | 显示全部楼层
@thttht
接口已经有了,其它的就很简单了。。

就像现在的版本,如果在使用VBOOT的snapshot功能创建一个新的快照使用如下命令就可以了。

/ntboot/ntboot vboot=(hd0,0)/vboot/winxp/winxp.vhd take_snapshot=(hd0,1)/vboot/winxp/winxp-s1.vhd

注意:后面的那个路径是GRUB2格式的分区表示方法直接在GRUB4DOS的分区号+1

这样启动时就会自动创建一个WINXP-S1.VHD快照了。

只是你需要在成功创建以后自己添加菜单来启动这个快照就行了。

至于用VBOOT安装系统也不麻烦,不过因为目前是为了直接启动已经安装好的系统,所以没有考虑到这个。目前要使用还是必须使用vhd文件。

下次再改吧。顺便自动把VBOOT参数里面的分区参数改成GRUB2的。这样就方便使用GRUB4DOS直接调用VBOOT了。

[ 本帖最后由 chenall 于 2011-3-28 23:13 编辑 ]
回复

使用道具 举报

27#
 楼主| 发表于 2011-3-29 12:55:25 | 显示全部楼层
@thttht
你可以试一下,不过不支持ud,pd之类的
find --set-root --devices=hup /vboot/winxp.vhd
/ntboot/ntboot vboot=/vboot/winxp.vhd
直接使用/ntboot/ntboot vboot=/vboot/winxp.vhd就行 ,不需要前面的find

另外必须保存当前root里面有ntboot

@zxw
那个没有错,使用goto或你的call方法是一样的,不过能用goto的就不用call。
因为call需要再传递一次参数并且多占用内存。使用goto就不需要了。
回复

使用道具 举报

28#
 楼主| 发表于 2011-3-29 14:37:55 | 显示全部楼层
原帖由 zxw 于 2011-3-29 10:15 发表
@chenall:
ntboot.mod内打包的wenv是2.22版的,好象未公开?有什么新的功能么?


只是重新编译的版本,没有什么新功能。懒得下载,直接重新编译了一个。。

另外今天的GRUB4DOS版本已经上传。具体请看changelog
回复

使用道具 举报

29#
 楼主| 发表于 2011-3-29 20:55:05 | 显示全部楼层
@fdd_ds
先解压。。。。
回复

使用道具 举报

30#
 楼主| 发表于 2011-3-29 21:20:19 | 显示全部楼层
新功能预告。。。新增使用ISO安装系统的功能。支持SRS

没什么说的,直接上图。。

测试版下载:
http://u.115.com/file/f0be46f568#
NTBOOT_mod_test.rar

注:必须使用测试版里面附件的GRLDR启动

[ 本帖最后由 chenall 于 2011-3-30 00:17 编辑 ]

20110329210812284.png (13.53 KB, 下载次数: 242)

VBOOT安装,后面的参数可以使VBOOT在启动之前暂停

VBOOT安装,后面的参数可以使VBOOT在启动之前暂停

20110329210833067.png (10.17 KB, 下载次数: 239)

VBOOT自动启动

VBOOT自动启动

20110329210925510.png (22.54 KB, 下载次数: 233)

20110329210925510.png

20110329211319400.png (7.03 KB, 下载次数: 237)

使用了一个虚拟的磁盘

使用了一个虚拟的磁盘

20110329211507953.png (23.76 KB, 下载次数: 240)

这里可以看到那个500MB的磁盘

这里可以看到那个500MB的磁盘
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-20 09:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表