无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: 2011yaya2007777
打印 上一主题 下一主题

支持含有碎片的文件仿真

    [复制链接]
121#
 楼主| 发表于 2014-5-2 17:23:35 | 只看该作者
有一处失误,已经修正于 1#。
请 mdyblog  测试。

点评

partnew 还没好。 [attachimg]192515[/attachimg]  详情 回复 发表于 2014-5-3 11:05
测试成功.比上一版本好.使用map 引导ubuntu vhd文件成功.  详情 回复 发表于 2014-5-3 08:15
回复

使用道具 举报

122#
发表于 2014-5-3 08:15:02 | 只看该作者
2011yaya2007777 发表于 2014-5-2 17:23
有一处失误,已经修正于 1#。
请 mdyblog  测试。

测试成功.比上一版本好.使用map 引导ubuntu vhd文件成功.
回复

使用道具 举报

123#
发表于 2014-5-3 11:05:57 | 只看该作者
2011yaya2007777 发表于 2014-5-2 17:23
有一处失误,已经修正于 1#。
请 mdyblog  测试。

partnew  还没好。
回复

使用道具 举报

124#
发表于 2014-5-3 18:51:47 | 只看该作者
asqw101451 发表于 2014-5-2 14:28
麻烦给个链接,谢谢

去远景自己下吧 http://www.pcbeta.com/forum.php?mod=viewthread&tid=1490641
那个 clover

点评

谢谢。  详情 回复 发表于 2014-5-3 19:33
回复

使用道具 举报

125#
发表于 2014-5-3 19:33:56 来自手机 | 只看该作者
2012idle 发表于 2014-5-3 18:51
去远景自己下吧 http://www.pcbeta.com/forum.php?mod=viewthread&tid=1490641
那个 clover

谢谢。
回复

使用道具 举报

126#
 楼主| 发表于 2014-5-4 21:19:34 | 只看该作者
本帖最后由 2011yaya2007777 于 2015-3-16 10:16 编辑

请 mdyblog  测试。

点评

partnew 好了。 谢谢。  详情 回复 发表于 2014-5-7 18:25
回复

使用道具 举报

127#
 楼主| 发表于 2014-5-5 10:35:19 | 只看该作者
请教不点:
asm.S 中有 段代码,不太理解,请赐教。它牵扯到是否需要恢复旧的EMU的数据。
  1.         movw        0x413, %ax                /* Memory size in Kb */
  2.         shlw        $6, %ax                        /* Memory size in paragragh */
  3.         cmpw        0x4E, %ax                /* 0000:004E=current int 13 segment */
  4.         jne        1f                        /* not hooked */

  5.         movw        %ax, %ds                /* DS=current int13 code segment */

  6.         /* check our int13 signature "$INT13SFGRUB4DOS" */
  7.         cmpl        $0x544E4924, 0x103        /* $INT */
  8.         jnz        2f
  9.         cmpl        $0x46533331, 0x107        /* 13SF */
  10.         jnz        2f
  11.         cmpl        $0x42555247, 0x10B        /* GRUB */
  12.         jnz        2f
  13.         cmpl        $0x534F4434, 0x10F        /* 4DOS */
  14.         jnz        2f
复制代码
回复

使用道具 举报

128#
发表于 2014-5-5 12:35:26 | 只看该作者
在启动 grub 主体程序之前,先检查是否有 grub4dos 先前所建立的 int13 存在,如果有,就将 int13 的数据结构部分记录下来,让新的 grub 环境明白,int13 是已经 hook 过了,并且所有的 map 也都予以承认。

int13 的数据结构位于 int13 代码段的偏移 0至偏移 13f 处,长度是 0x140。
回复

使用道具 举报

129#
发表于 2014-5-5 12:50:46 | 只看该作者
如果 int13 是 hook 过了的,那么 413h 处应该记录了以 kB为单位的用户可用内存量。这个界限之下的内存,可以被用户使用。这个界限处的 12KB内存,就是 int13的数据结构以及代码空间。从 0x4c 开始的 4 个字节,就是 int13 处理程序的入口地址,其中前两个字节是偏移地址,为 0x100,后两个字节位于 0x4e,当然它就是 int13处理程序的代码段的地址了。413处的值必须与4e处的值相匹配,并且int13处理程序的特征都正确,才认为这确实是grub4dos所建立的 int13 数据结构。
回复

使用道具 举报

130#
 楼主| 发表于 2014-5-5 13:13:38 | 只看该作者
唉,真笨。知道 movw  0x413, %ax 是把 0x413 处的内容赋给 ax,却没理解 cmpw 0x4E, %ax 是比较 0x4e 处存储的值,以为是比较 0x4e 这个值。低级错误。
回复

使用道具 举报

131#
发表于 2014-5-5 13:38:47 | 只看该作者
at&t 的汇编语言格式很容易让人出错,intel 格式更容易理解。intel 用中括号表示地址,用不带中括号的数值表示立即数,这不容易让人误会。而 AT&T格式用$表示立即数,用不带 $ 的数值表示地址,这是很不自然的,很容易误导人的直觉。
回复

使用道具 举报

132#
发表于 2014-5-7 18:25:00 | 只看该作者

partnew  好了。 谢谢。
回复

使用道具 举报

133#
发表于 2014-5-8 11:01:25 | 只看该作者
支持一个,希望以后更好!
回复

使用道具 举报

134#
 楼主| 发表于 2014-5-13 10:57:25 | 只看该作者
1# 已经更新,请下载。

点评

0502和0513版都有一个问题 vmware虚拟机测试的 执行find --devices=h 结果会包含 (cd) 设备和所有 (hd)设备 正常应该只有 (hd)设备  详情 回复 发表于 2014-5-13 11:01
回复

使用道具 举报

135#
发表于 2014-5-13 11:01:42 | 只看该作者
2011yaya2007777 发表于 2014-5-13 10:57
1# 已经更新,请下载。

0502和0513版都有一个问题  vmware虚拟机测试的  执行find --devices=h 结果会包含 (cd) 设备和所有 (hd)设备

正常应该只有 (hd)设备
回复

使用道具 举报

136#
发表于 2014-5-13 19:24:06 | 只看该作者
如何查看一个文件有多少碎片?
下载页http://code.google.com/p/grub4dos-chenall/downloads/list这里为何没有这个版本?测试版吗?
回复

使用道具 举报

137#
 楼主| 发表于 2014-5-13 19:50:09 | 只看该作者
是测试版.
blocklist 路径/文件名

点评

blocklist哪里找啊?Google搜了半天没有啊,grub4dos新版里也没有,Windows文件夹里也没有。本人刚接触grub4dos不久,非常外行,见笑了,呵呵,还请大家具体指点  详情 回复 发表于 2014-5-13 22:07
回复

使用道具 举报

138#
 楼主| 发表于 2014-5-13 20:58:22 | 只看该作者
0502和0513版都有一个问题  vmware虚拟机测试的  执行find --devices=h 结果会包含 (cd) 设备和所有 (hd)设备

0.4.6a 版本可以查找被 BIOS 识别为硬盘,但是没有分区表的磁盘或img文件。由于 vmware 虚拟机启动光盘时,分配驱动器号为 0x9f,故包含在硬盘范围(0x80-0x9f)。
已经修正于 1#。
回复

使用道具 举报

139#
发表于 2014-5-13 22:07:59 | 只看该作者
2011yaya2007777 发表于 2014-5-13 19:50
是测试版.
blocklist 路径/文件名

blocklist哪里找啊?Google搜了半天没有啊,grub4dos新版里也没有,Windows文件夹里也没有。本人刚接触grub4dos不久,非常外行,见笑了,呵呵,还请大家具体指点
回复

使用道具 举报

140#
发表于 2014-5-14 08:45:33 | 只看该作者
blocklist 是 grub4dos 内部命令,不是外部命令。直接执行命令便可。
回复

使用道具 举报

141#
发表于 2014-5-19 22:15:58 | 只看该作者
为yaya点个赞
回复

使用道具 举报

142#
发表于 2014-5-25 08:11:58 | 只看该作者
为yaya点个赞!!!!!
回复

使用道具 举报

143#
发表于 2014-5-26 10:30:42 | 只看该作者
本帖最后由 hlstudio 于 2014-5-26 10:37 编辑

刚在调整合盘时,使用此版碰到如下问题:
从UD启动,在调用SISO后,提示找不到文件,此时,进入命令行方式检测发现(ud)和(bd)指向的设备不一样,(ud)还是UD区,(bd)成为U盘第一可见区。

菜单如下:
debug off
pxe off
default 0
timeout 5
gfxmenu (bd)/SYS/message

title 【6】 菜单 /TEMP
        command (bd)/SYS/SISO RUN="--automenu --not-show.exe /TEMP/"


title Start WINPE
        map --mem (bd)/SYS/WINPE.ISO (0xff)
        map --hook
        chainloader (0xff)

如果不使用SISO,直接调用第二项菜单,则可加载UD区的文件正常进入PE。

测试2014-01-07版的grldr没有这个问题。

使用新版测试一来可以碎片仿真,另一来是将合盘部署到某台技嘉amd770主板机器的硬盘上时,旧版grldr不能列出/TEMP下的目录,而此版则可以。

不知道这问题是不是应该提交给5大,不合适就帮挪一下。
回复

使用道具 举报

144#
 楼主| 发表于 2014-5-26 13:30:06 | 只看该作者
本帖最后由 2011yaya2007777 于 2014-5-26 13:32 编辑

是执行完这一行
command (bd)/SYS/SISO RUN="--automenu --not-show.exe /TEMP/"
然后再执行
map --mem (bd)/SYS/WINPE.ISO (0xff)
时提示找不到文件?

不要关闭 debug,在命令行下逐条执行,是否执行第一项后改变了 bd?
如果是,那后一项不使用 bd, 使用 ud 好了.

点评

做了个小的测试包见附件,SISO做了下精简,在我这边测试和完整版SISO效果一样。 附了两个版本的grldr,一个是新版,一个是20140117版,可以通过改名直接用fbinstool测试,我实机也测试过,结果一样。 已经把gf  详情 回复 发表于 2014-5-26 14:45
用--automenu的话最后会执行 configfile 命令加载内存里生成的菜单 应该会改变bd  详情 回复 发表于 2014-5-26 14:30
回复

使用道具 举报

145#
发表于 2014-5-26 14:30:14 | 只看该作者
2011yaya2007777 发表于 2014-5-26 13:30
是执行完这一行
command (bd)/SYS/SISO RUN="--automenu --not-show.exe /TEMP/"
然后再执行

用--automenu的话最后会执行 configfile 命令加载内存里生成的菜单   应该会改变bd
回复

使用道具 举报

146#
发表于 2014-5-26 14:45:12 | 只看该作者
2011yaya2007777 发表于 2014-5-26 13:30
是执行完这一行
command (bd)/SYS/SISO RUN="--automenu --not-show.exe /TEMP/"
然后再执行

做了个小的测试包见附件,SISO做了下精简,在我这边测试和完整版SISO效果一样。

附了两个版本的grldr,一个是新版,一个是20140117版,可以通过改名直接用fbinstool测试,我实机也测试过,结果一样。

已经把gfxmenu注释掉了,测试流程:
1.启动出菜单,按c进命令行 ls (ud)/ 然后 ls (bd)/ 会发现内容一样
2.执行第6项/TEMP,然后再想办法进入到命令行,会发现 (ud)和(bd)内容不一样
把ud根目录下grldr更名为grldr0513,把grldr0117更名为grldr,重复上述测试,会发现两次(ud)和(bd)内容均相同。

翻贴子看到S大http://bbs.wuyou.net/forum.php?mod=viewthread&tid=191301昨天更新
1,针对2014-01-17版之前的grub4dos在交互磁盘时依然更新ud源位置  之后的版本不更新  如果想强制更新的话请设置开关变量updateud值为1

不知道是不是和这个有关,需要SISO调整?

testg4d.zip (1.05 MB, 下载次数: 2)


回复

使用道具 举报

147#
发表于 2014-5-26 14:47:49 | 只看该作者
刚传完附件看到S大的回复。是要更换SISO中的RUN模块?
回复

使用道具 举报

148#
发表于 2014-5-26 19:08:29 | 只看该作者
本帖最后由 527104427 于 2014-5-26 19:15 编辑
hlstudio 发表于 2014-5-26 14:47
刚传完附件看到S大的回复。是要更换SISO中的RUN模块?


S大上面有说,RUN内部有configfile命令,会改变BD。
改不改变BD,这是GRLDR的内部约定,我们使用的时候是可以通过一些手段来绕过去的,比如,改一改菜单,完全可以抛弃BD,用一对空括号代替:

debug off
pxe off
default 0
timeout 5
if exist ()/SYS/message || find --set-root /SYS/message
gfxmenu ()/SYS/message

title 【6】 菜单 /TEMP
        if exist ()/SYS/SISO || find --set-root /SYS/SISO
        command ()/SYS/SISO RUN="--automenu --not-show.exe /TEMP/"


title Start WINPE
        if exist ()/SYS/WINPE.ISO || find --set-root /SYS/WINPE.ISO
        map --mem ()/SYS/WINPE.ISO (0xff)
        map --hook
        chainloader (0xff)

回复

使用道具 举报

149#
发表于 2014-5-26 19:14:36 | 只看该作者
527104427 发表于 2014-5-26 19:08
S大上面有说,RUN内部有configfile命令,会改变BD。
改不改变BD,这是GRLDR的内部约定,我们使用的时候 ...

好的,谢谢!find --set-root 这个办法好
回复

使用道具 举报

150#
发表于 2014-5-27 00:31:32 | 只看该作者
嘿嘿,我一般采取武断方式:一旦用了SISO/run,就归它控制,不打算让它返回,万一返回就强制重启。

因为我不知道SISO/run到底干了什么,改变了什么(例如bd是否变了),返回后干别的事会受什么好的、坏的影响。

对command ()/SYS/SISO RUN="--automenu --not-show.exe /TEMP/"
我会写成
()/SYS/SISO RUN="--automenu --not-show.exe /TEMP/" || echo
pause Return from SISO, press <Enter> key to reboot.
reboot
要返回就重启后返回吧。

点评

P这是个好招,回来之后也面临内置菜单的约定不兼容,这几天尽在折腾这个了。 SISO是个好东西,很省事,iso/gz/vhd/wim都可以一RUN了事,写起命令来简单,列出菜单的扩展性更是必要。  详情 回复 发表于 2014-5-27 09:34
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-27 08:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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