无忧启动论坛

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

支持含有碎片的文件仿真

    [复制链接]
1#
发表于 2014-5-13 11:01:42 | 显示全部楼层
2011yaya2007777 发表于 2014-5-13 10:57
1# 已经更新,请下载。

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

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

使用道具 举报

2#
发表于 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
回复

使用道具 举报

3#
发表于 2014-6-5 09:32:22 | 显示全部楼层
goodtime 发表于 2014-6-5 00:01
用这个最新的版本, 用最新RUN安装XP和03一开始就死机了, 用老的版本没这个问题哦, 具体G4D版本信息不知 ...

貌似我这虚拟机测试没问题  你的是什么环境

点评

物理机和虚拟机(vm workstation 10.0.1 build-1379776)测试都死机, 换g4d老版本没问题, 老版本是0.4.6a 2014-01-17 版本没问题, G4D新版本呢就是楼主的0.4.6a 2014-06-04 版本, RUN0525版本, 机器是兼容机, G  详情 回复 发表于 2014-6-5 21:05
回复

使用道具 举报

4#
发表于 2014-6-5 21:40:09 | 显示全部楼层
本帖最后由 sratlf 于 2014-6-5 21:43 编辑
goodtime 发表于 2014-6-5 21:05
物理机和虚拟机(vm workstation 10.0.1 build-1379776)测试都死机, 换g4d老版本没问题, 老版本是0.4.6 ...


试着把iso文件换一个分区呢  估计可能和文件列表有关系

或者你可以先把卡死时的屏幕贴上来让我们看下
回复

使用道具 举报

5#
发表于 2014-6-8 13:46:26 | 显示全部楼层
2011yaya2007777 发表于 2014-6-6 06:40
以前 fsys_ntfs.c 占用内存 3e0000-3e5fff;现在占用 3e0000-3ebfff。
死机的原因应当是加载 G4D 之后,加 ...

最近一次的修改是否有问题  如下图  之前的版本没问题

捕获.PNG (18.31 KB, 下载次数: 190)

捕获.PNG
回复

使用道具 举报

6#
发表于 2014-6-17 20:57:03 | 显示全部楼层
2011yaya2007777 发表于 2014-6-17 20:35
在自动列菜单时,作为条件语句屏蔽掉  hd0 或 fd0 ,即不显示重复项目即可。肯定没有问题。
在其他情况 ...

这个可以  但是如何判定什么时候该屏蔽  什么时候不该屏蔽  比如0.45c需不需要屏蔽
回复

使用道具 举报

7#
发表于 2014-6-17 21:51:37 | 显示全部楼层
2011yaya2007777 发表于 2014-6-17 21:27
虽然 0.4.5c 不需要屏蔽,但是作为统一处理,在自动列菜单时一起屏蔽(其实就是存在 UD 时,不显示 hd0 或  ...

通过 *0x82b9&0xff 这样获取驱动器号  然后屏蔽相应的??
回复

使用道具 举报

8#
发表于 2014-6-18 17:57:53 | 显示全部楼层

还有个问题  如果ud=hd0的情况下  磁盘交换会有什么影响  比如

map (hd0) (hd1)
map (hd1) (fd0)
map --hook

会相应的多出一个hd1吗
回复

使用道具 举报

9#
发表于 2014-6-18 23:09:33 | 显示全部楼层
不点 发表于 2014-6-18 22:47
你是不是写错了?

应该是 map (hd1)  (hd0) 吧?你写成了 (fd0),通常不会这么映射的。

手误  确实应该是hd0

也就是说交换完成后  用find查找(不加--set-root)ud内容的话实际会找到ud和hd1两个设备上对吧  显示的结果也会是类似#189的样子  只是一个是ud一个变成了hd1??
回复

使用道具 举报

10#
发表于 2014-6-19 12:05:55 来自手机 | 显示全部楼层
2011yaya2007777 发表于 2014-6-19 09:19
是这样的。这比较复杂了。视乎首先通过 *0x82b9&0xff 获取 UD 驱动器号,然后看他映射成什么了,比如 hd1 ...

就是比较麻烦  获取得到的0x80或者0x0这样的需要转为hd0 fd0这样的形式。。。会出现0x1这样的情况吗
回复

使用道具 举报

11#
发表于 2014-6-20 23:55:21 | 显示全部楼层
fukystone 发表于 2014-6-17 09:46
没有明白“特意让它显示”是什么意思?
既然已经设置了“UD”这种模式,那么再显示“HD0”或者“fd0” ...

麻烦用这个版本的RUN试下  同样的命令  看是否还会出现重复的情况

RUN.zip

144.06 KB, 下载次数: 5

回复

使用道具 举报

12#
发表于 2014-6-21 09:44:49 | 显示全部楼层
fukystone 发表于 2014-6-21 09:34
有问题,列出了设备而不是菜单。使用命令
run --e820cycles=%e820% --wvbk dpms --automenu-all --not ...

命令错了  新版将 --show.XXX / --not-show.XXX  换成了  show.XXX / show-except.XXX  不过至少从截图看确实能屏蔽hd0/fd0

run --e820cycles=%e820% --wvbk dpms --automenu-all show-except.txt %path%
回复

使用道具 举报

13#
发表于 2014-6-21 11:26:49 | 显示全部楼层
本帖最后由 sratlf 于 2014-6-21 11:27 编辑

@yaya

0.46a对转义符\的处理貌似还有bug  以前在0.45c遇到过  下图是0.45c  多空格文件名获取正常

用0.46a的话会是这样子  文件名被截断了  记得这个是很久以前的一个bug了  最早在0.45c上出现过  后来修正了
回复

使用道具 举报

14#
发表于 2014-6-23 00:01:31 | 显示全部楼层
fukystone 发表于 2014-6-21 10:52
可以了。确实屏蔽了hd0
不过dpms代码还是有问题的,给出2个选项,但进pe的时候都提示找不到文件。
请参 ...

你加载的哪个pe  我试了下可以正常加载。。。
回复

使用道具 举报

15#
发表于 2014-6-23 17:09:56 | 显示全部楼层
2011yaya2007777 发表于 2014-6-23 15:12
1# 修正了 iso9600_Joliet 文件格式转义符显示问题。

谢谢 测试正常了
回复

使用道具 举报

16#
发表于 2014-6-23 17:11:01 | 显示全部楼层
fukystone 发表于 2014-6-23 00:32
就是那个16M的tangope,我忘了是在你的run那个帖子,还是5大那个srsf6那个帖子里上传过。
这个pe只有ide ...

可以用最新版RUN再测试下  我这测试可以了
回复

使用道具 举报

17#
发表于 2014-7-7 11:30:10 | 显示全部楼层
chenall 发表于 2014-7-4 18:03
http://grub4dos.chenall.net

这个页面是自动生成的,以后源码有更新就会自动编译,并且提供下载.

那原来在 http://code.google.com/p/grubutils/downloads/list 这里的外部命令怎么处理
回复

使用道具 举报

18#
发表于 2015-2-16 18:16:48 | 显示全部楼层
本帖最后由 sratlf 于 2015-2-16 18:19 编辑
mdyblog 发表于 2015-2-16 17:57
请教C大:
从你的博客看到下面的文件,
http://chenall.net/post/grub4dos_initrdfs/


理解错了吧  应该是 main.lst\NULf1.lst\NULf2.lst\NULf3.lst\NULf4.lst\NUL[cpio] 这样的形式

然后 %~m0/1对应的就是 f1.lst

补充:cpio作为数据文件应该只有一个  放在最后  前面可以附加任意多个子批处理文件
回复

使用道具 举报

19#
发表于 2015-2-17 09:45:19 | 显示全部楼层
本帖最后由 sratlf 于 2015-2-17 09:52 编辑
mdyblog 发表于 2015-2-16 22:31
谢谢!
那么
1)  


1)
  1. ::清空变量rdev
  2. set rdev=
  3. ::获取扇区序列,传递给标签 :get_dev
  4. blocklist %~m0/1 | call :get_dev=
  5. ::列出附加的cpio数据文件内容
  6. ls %rdev%/
  7. ::对cpio数据文件里名为 file 的文件执行cat命令
  8. cat %rdev%/file
  9. ::结束
  10. goto :eof

  11. :get_dev
  12. ::将cpio数据文件所在的扇区序列赋值给变量rdev
  13. set rdev=%~d1
  14. ::结束
  15. goto :eof
复制代码


2)
你的cpio是怎么生成的  有没有经过压缩  

或者你也可以附加一个没经过压缩的img或者iso文件作为数据文件  比每次生成cpio文件方便的多

3)
  1. %~m0/1 指的是主批处理 mail.lst 后面的第一个子批处理  也就是f1.lst  
  2. 变量 rdev 的值实际是cpio数据文件所在的扇区序列
      ls %rdev%/ 这个只是确定一下访问数据文件是否正常  这里输出0肯定就不是正常情况  
      需要再检查数据文件或者命令是否存在错误  你可以试下不用cpio  换成普通的iso文件  注意不要压缩
  3. %rdev%/file 这个只是个示例  表示的cpio数据文件里名为 file 的文件
      cat  %rdev%/file 这个就需要先确定grub4dos能成功访问cpio数据文件内容  为什么没报错我也不知道。。。


其实也不用这么复杂   你可以用  主批处理\NUL数据文件  这种最简单的形式   我在RUN里就是这么处理的

数据文件可以找个iso  然后把所有的子批处理文件以及必须的其他文件都放在iso里  

主批处理想访问附加的iso文件内容时可以直接用  %~m0/file 这种形式  不用再用 1) 里的方式获取数据文件所在的扇区序列
回复

使用道具 举报

20#
发表于 2015-2-17 10:40:07 | 显示全部楼层
mdyblog 发表于 2015-2-17 10:08
1)
》》你的cpio是怎么生成的  有没有经过压缩  

那就不太清楚了  我都是用的iso和img。。。
回复

使用道具 举报

21#
发表于 2015-2-17 10:56:25 | 显示全部楼层
mdyblog 发表于 2015-2-17 10:50
1:
file file2 file3 做成1.ISO,结果还是一样。

代码逻辑那个还是你理解出问题了。。。 附加的子批处理只能用  %~m0/1 这种形式访问  没办法通过 ls 命令列出来

然后获取的%rdev%指向的是附加在最后的cpio数据文件  不会包含cpio文件前的子批处理文件  两者是不互通的
回复

使用道具 举报

22#
发表于 2015-2-17 12:12:12 | 显示全部楼层
mdyblog 发表于 2015-2-17 11:12
》》代码逻辑那个还是你理解出问题了。。。 附加的子批处理只能用  %~m0/1 这种形式访问  没办法通过 l ...

c大些的说明有点问题  可能代码后来调整过了但是说明没更新

1,
原文:访问方式: %~m0/1是第一个文件,%~m0/2是第二个文件,以此类推.并且可以直接运行
更正:访问方式: %~m0/0是第一个文件,%~m0/1是第二个文件,以此类推.并且可以直接运行

2,
下面这行批处理命令没有详细的说明
blocklist %~m0/1 | call :get_dev=

测试后的准确解释应该为
%~m0/1 中的 1 指的是附加的第二个文件  只是个示例
实际使用时这个数值应该按自己的实际情况更改为对应的cpio数据文件的序号  

附件的是个测试文件  结构是 mail.lst\NULf1.lst\NULf2.lst\NULf3.lst\NULf4.lst\NULimg.img

f1.lst 对应的是 %~m0/0  f2.lst 对应的是 %~m0/1  相应的 img.img 对应的是 %~m0/4

主批处理里就应该使用 blocklist %~m0/4 | call :get_dev= 才能获取到 img.img 所在的扇区序列



test.zip (798 Bytes, 下载次数: 1)
回复

使用道具 举报

23#
发表于 2015-2-17 13:20:45 | 显示全部楼层
mdyblog 发表于 2015-2-17 12:52
非常感谢。
一切的症结: 序号差一个了。
我试过 %~m0/5 , 就是没试过 %~m0/4

iso的没问题   不过我是用mkisofs生成的  没有用ultraiso

  1. set loader=-o iso.ISO -V "test" boot
  2. mkisofs.exe -J -joliet-long -hide-joliet boot.catalog -l -relaxed-filenames -gbk4dos-filenames -gbk4win-filenames %loader%
复制代码
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-21 19:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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