无忧启动论坛

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

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

    [复制链接]
511#
发表于 2011-12-5 09:42:09 | 只看该作者
同意 hotdll,devcon remove 删除后,注册表中的垃圾不删除也无所谓。不影响什么
回复

使用道具 举报

512#
发表于 2011-12-5 11:56:32 | 只看该作者
C大,下面这段代码得改一下,不然原有(fd0)无效了。

:ISO_INST64
set ISO_TYPE=amd64
:ISO_INST
shift 1
::以下命令用于生成一个空白的软盘(fd0)
::此行本人增加 if exist (fd0)+1 goto :existfd0
echo > (md)0x200+2
write --offset=0xb (md)0x200+3 \x00\x02\x01\x01\x00\x01\x70\x00\x10\x00\xfd\x01\x00\x08\x00\x01
write 0x401FE 0xAA55
write 0x40200 0xfffffe
map --mem (md)0x200+2 (fd0)
:existfd0
::转换到大写
set /u boot=%1.IMG
set boot=%NTBOOT%.IMG/%boot%
::自动加载对应驱动的软盘镜像到(fd1)
map --mem %boot% (fd1) || call :Error Missing Module %boot%...
::如果用户指定了floppy的话将会由用户指定的镜像代替
set boot=cdrom
set ISO_INST=%1
goto :%1
回复

使用道具 举报

513#
发表于 2011-12-5 12:16:51 | 只看该作者
原帖由 chenall 于 2011-12-4 12:48 发表
老眼昏花了。嘿嘿。。

:::
无分区表的仿真软盘(fd0),把winnt.sif拷入(fd0),安装系统不认这个文件。??
软盘本来就没有分区表啊?分区表的位置是引导扇区。应该影响不大的说。

我晚上再试试。


问题找到,见:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=190203&page=52#pid2349754
回复

使用道具 举报

514#
 楼主| 发表于 2011-12-5 14:01:24 | 只看该作者

回复 #513 zhaohj 的帖子

故意这样的,如果不确定软驱是否存在不建议去检测。

否则碰到一些有Bug的BIOS时会在检测的时候死机。

你的问题完全可以通过addons参数或设置一个BOOT变量让NTBOOT自动执行你的代码来解决。

也就是你不用先创建你的软驱。而是让NTBOOT来执行你的代码。
回复

使用道具 举报

515#
发表于 2011-12-5 15:25:12 | 只看该作者
ntboot iso_inst=firadisk cdrom=/winxp.iso addons="/boot/addons/dpms/dpms.bat 0"
-------
我想在/boot/addons/dpms/dpms.bat 0 后执行fat copy /winnt.sif (fd0)/
怎么写?
回复

使用道具 举报

516#
 楼主| 发表于 2011-12-5 15:29:25 | 只看该作者
set BOOT=fat copy /winnt.sif (fd0)
ntboot iso_inst=firadisk cdrom=/winxp.iso addons="/boot/addons/dpms/dpms.bat 0"

不过你的/winnt.sif可能得先定位一下,经过一系列处理,当前ROOT可能已经改变。
回复

使用道具 举报

517#
发表于 2011-12-6 08:14:17 | 只看该作者
环境:VM7 硬盘 c:6G D:4G D盘上有win$03.iso
启动环境:pxe,/boot/ntboot/ntboot等文件在pxe上,/dpms/dpms.bat及相关文件在pxe上,/boot/grub/fat文件在PXE上
        
title 10  TEST ntboot install win$03.iso from (hd0,4)
set BOOT=fat copy /o (pd)/winnt03.sif (fd0)/winnt.sif
/boot/ntboot/ntboot iso_inst=firadisk cdrom=/win$03.iso addons="/dpms/dpms.bat 0"
boot

在命令行下如果没有set BOOT=fat copy /o (pd)/winnt03.sif (fd0)/winnt.sif,直接执行
/boot/ntboot/ntboot iso_inst=firadisk cdrom=/win$03.iso addons="/dpms/dpms.bat 0"是可以运行的。

Snap1.jpg (109.04 KB, 下载次数: 148)

Snap1.jpg
回复

使用道具 举报

518#
 楼主| 发表于 2011-12-6 08:19:51 | 只看该作者
只是增加这个变量的话不太可能出现问题的。因为这个变量是在要启动之前才执行的。<br /><br />我就经常用这个变量来调试<br /><br />set BOOT=commandline<br />再启动NTBOOT就会自动进入COMMANDLINE了。

你可以跟踪一下看看执行DPMS.BAT时ROOT在哪里。

[ 本帖最后由 chenall 于 2011-12-6 08:21 编辑 ]
回复

使用道具 举报

519#
发表于 2011-12-6 08:43:56 | 只看该作者
原帖由 chenall 于 2011-12-6 08:19 发表
只是增加这个变量的话不太可能出现问题的。因为这个变量是在要启动之前才执行的。我就经常用这个变量来调试set BOOT=commandline再启动NTBOOT就会自动进入COMMANDLINE了。

你可以跟踪一下看看执行DPMS.BAT时 ...


这时的root已经在(hd0,4)了
下面是这样的调试结果:
title 10  TEST ntboot install win$03.iso from (hd0,4)
set BOOT=fat copy /o (pd)/winnt03.sif (fd0)/winnt.sif
/boot/ntboot/ntboot iso_inst=firadisk cdrom=/win$03.iso addons="/boot/addons/dpms/dpms.bat 0"
boot

在上图第一个错误处进入命令行:
输入绝对路径可可以:addons="(pd)/boot/addons/dpms/dpms.bat 0"

[ 本帖最后由 zhaohj 于 2011-12-6 08:47 编辑 ]

Snap2.jpg (33.68 KB, 下载次数: 146)

Snap2.jpg
回复

使用道具 举报

520#
发表于 2011-12-6 08:52:52 | 只看该作者
奇怪的事情发生了:

启动光盘之前,怎么进入命令行?

[ 本帖最后由 zhaohj 于 2011-12-6 09:02 编辑 ]

Snap3.jpg (21.71 KB, 下载次数: 141)

Snap3.jpg
回复

使用道具 举报

521#
发表于 2011-12-6 09:13:21 | 只看该作者
调试了一下,C大看看:

[ 本帖最后由 zhaohj 于 2011-12-6 09:15 编辑 ]

Snap1.jpg (61.35 KB, 下载次数: 137)

Snap1.jpg

Snap2.jpg (104.3 KB, 下载次数: 148)

Snap2.jpg

Snap3.jpg (23.06 KB, 下载次数: 146)

Snap3.jpg
回复

使用道具 举报

522#
 楼主| 发表于 2011-12-6 09:46:53 | 只看该作者
你有改过吗?如果没有改过,可能和你的WINNT.SIF文件有关吧。

另外有支持多个ADDONS参数的。

你可以先ADDONS加载DPMS再ADDONS加载WINNT.SIF文件。

我下次再考虑提供一个选项让它自动复制WINNT.SIF文件

[ 本帖最后由 chenall 于 2011-12-6 09:49 编辑 ]
回复

使用道具 举报

523#
发表于 2011-12-6 09:52:13 | 只看该作者

回复 #521 zhaohj 的帖子

这个问题是典型的先创建fd1后创建fd0造成的。

之所以c大的不出问题。是因为c大的fd0不是img创建的。
回复

使用道具 举报

524#
发表于 2011-12-6 10:09:38 | 只看该作者
原帖由 chenall 于 2011-12-6 09:46 发表
你有改过吗?如果没有改过,可能和你的WINNT.SIF文件有关吧。


没有修改过。
改成#set BOOT=fat copy /o (pd)/winnt03.sif (fd0)/winnt.sif 也一样

先运行/boot/addons/dpms/dpms.bat 0
再     /boot/ntboot/ntboot iso_inst=firadisk cdrom=/win$03.iso
没有问题!

----------------------------------------
分析原因,下面这段代码引起的问题
:ISO_INST64
set ISO_TYPE=amd64
:ISO_INST
shift 1
::以下命令用于生成一个空白的软盘(fd0)
echo > (md)0x200+2
write --offset=0xb (md)0x200+3 \x00\x02\x01\x01\x00\x01\x70\x00\x10\x00\xfd\x01\x00\x08\x00\x01
write 0x401FE 0xAA55
write 0x40200 0xfffffe
map --mem (md)0x200+2 (fd0)

---------------------
也许是grub4dos的bug,只要先生成一个MS认为非标准的软盘格式的(fd0),就会产生这个问题。
或者先生成(fd1)再生成(fd0)也会一样。
这个问题以前也遇到过,hotdll(稀饭放姜)也同时遇到的这个问题。
即使后来dpms生成标准格式的(fd0),此时也无效。也许是map --hook或map --rehook的问题。

[ 本帖最后由 zhaohj 于 2011-12-6 14:57 编辑 ]

Snap1.jpg (31.03 KB, 下载次数: 155)

先运行dpms后的效果

先运行dpms后的效果
回复

使用道具 举报

525#
发表于 2011-12-6 20:35:38 | 只看该作者
再次测试:
在boot前交换仿真软盘:
map (fd0) (fd1)
map (fd1) (fd0)
map --rehook ##此处用map --hook无效
这样也成功。
回复

使用道具 举报

526#
发表于 2011-12-7 09:45:54 | 只看该作者

回复 #526 zhaohj 的帖子

看来map --hook 的问题不是我子虚乌有
回复

使用道具 举报

527#
发表于 2011-12-8 00:19:56 | 只看该作者
谢谢chenall的东西
回复

使用道具 举报

528#
发表于 2011-12-8 22:32:04 | 只看该作者

请指点

我是新手,将ntboot.iso解开,放在UD的boot目录下。将dpms.iso放在ntboot.mod目录下,在虚拟机上用UD引导,运行command %NTBOOT% iso_inst=firadisk cdrom=/WIN$.iso addons="dpms 0"出现下面问题请指点如何解决。

[ 本帖最后由 cold1 于 2011-12-8 22:33 编辑 ]

2011-12-08_222523.png (10.27 KB, 下载次数: 158)

2011-12-08_222523.png

2011-12-08_222438.png (5.51 KB, 下载次数: 151)

2011-12-08_222438.png
回复

使用道具 举报

529#
 楼主| 发表于 2011-12-9 08:20:33 | 只看该作者
提示firadisk.img 文件错误,你的文件不完整。
回复

使用道具 举报

530#
发表于 2011-12-10 09:43:02 | 只看该作者

回复 #499 chenall 的帖子

恩,忘记了,可以不用第三方软件设置注册表权限,可以使用regini.exe这个系统自带的命令,设置权限后删除注册表键值
回复

使用道具 举报

531#
发表于 2011-12-10 14:41:45 | 只看该作者

回复 #530 chenall 的帖子

谢谢chenall抽空指点,提示firadisk.img 文件错误,你的文件不完整。该如何解决这个问题?
回复

使用道具 举报

532#
 楼主| 发表于 2011-12-12 21:45:54 | 只看该作者

回复 #532 cold1 的帖子

这个好像是DPMS程序有点问题,我稍后看看。
回复

使用道具 举报

533#
 楼主| 发表于 2011-12-12 22:46:35 | 只看该作者

回复 #529 cold1 的帖子

你是把DPMS.ISO放到NTBOOT.ISO里面然后用map --mem ntboot.iso来启动的吗?
回复

使用道具 举报

534#
 楼主| 发表于 2011-12-12 23:43:46 | 只看该作者
试试刚上传的DPMS.ISO

http://yunfile.com/file/chenall/5e6ad38f/
回复

使用道具 举报

535#
发表于 2011-12-13 09:23:05 | 只看该作者
刚好需要这样的工具啊,谢谢了。
回复

使用道具 举报

536#
发表于 2011-12-14 08:32:02 | 只看该作者
根据http://bbs.wuyou.net/forum.php?mod=viewthread&tid=203313&page=1#pid2351634
C大是改动ntboot呢还是改动dpms.bat?
下面是我只改动dpms.bat的情况:
另C大的P处理下次保存为UTF-8,方便调试时显示中文。

[ 本帖最后由 zhaohj 于 2011-12-14 13:53 编辑 ]

dpms.rar

2.32 KB, 下载次数: 15, 下载积分: 无忧币 -2

回复

使用道具 举报

537#
发表于 2011-12-14 10:19:46 | 只看该作者
发现一个问题,dpms.bat中
map --mem (md)+5760 (8)
map --hook
echo -n 膻 > (8)+40
write --offset=0xc (8) \2\2\1\0\2\xf0\0\x80\x16\xf0\x9\0\x24\0\2
write --offset=0x26 (8)+1 \x29DPMSchenall.netFAT12
write --offset=0x1fe (8)+2 \x55\xAA\xf0\xff\xff
上面的代码ms不认(fd0)/winnt.sif

改成下面的就认:
map --mem (md)+5760 (8)
map --hook
fat mkfs (8) > nul
write --offset=0x18 (8) \x24\0\2

[ 本帖最后由 zhaohj 于 2011-12-14 10:24 编辑 ]
回复

使用道具 举报

538#
发表于 2011-12-14 11:10:43 | 只看该作者
C大 直接把下载后的DPMS.ISO放到 NTBOOT.ISO的BOOT\NTBOOT\NTBOOT.MOD\目录下 然后在虚拟机测试 用NTBOOT.ISO作为光盘启动 选择windows install 然后再选择第二项 Setup Windows from iso to hdd(firadisk with dpms) 启动ISO前提示错误“warning! no such command:(cd)/BOOT/NTBOOT/NTBOOT.MOD/dpms" 但是看了一下NBOOT.MOD目录发现有dpms !!还没有测试dpms.bat
刚才测试了下直接在NTBOOT.ISO中创建dpms目录 然后放入DPMS.ISO和DPMS.BAT 然后在addons="/dpms/dpms.bat 0"调用 发现没问题!

[ 本帖最后由 zoom4ever 于 2011-12-14 11:19 编辑 ]
回复

使用道具 举报

539#
发表于 2011-12-14 11:18:52 | 只看该作者
原帖由 zoom4ever 于 2011-12-14 11:10 发表
C大 直接把下载后的DPMS.ISO放到 NTBOOT.ISO的BOOT\NTBOOT\NTBOOT.MOD\目录下 然后在虚拟机测试 用NTBOOT.ISO作为光盘启动 选择windows install 然后再选择第二项 Setup Windows from iso to hdd(firadisk with ...


把dbms.bat及相关文件拷贝到/boot/addons/dpms/
当然也可以放在其他地方,但菜单要改。
回复

使用道具 举报

540#
发表于 2011-12-14 11:20:39 | 只看该作者

回复 #540 zhaohj 的帖子

Z大说的是 刚才测试了 好用~ 但是直接放到NTBOOT.MOD目录下为什么不行呢?另外Z大 你在“用ISO镜像安装NT5.X系统同时存在AB盘的必要条件”这个帖子中说
第三次测试:
按照第二次测试的过程,在启动光盘前(boot),交换磁盘
map (fd0) (fd1)
map (fd1) (fd0)
map --rehook
rootnoverify (0xff) && chaliloader (0xff) && boot

这个交换磁盘的操作在什么时候操作啊? 调用完NTBOOT后就直接从WIN$.ISO镜像启动了~

[ 本帖最后由 zoom4ever 于 2011-12-14 11:28 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-27 23:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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