无忧启动论坛

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

[原创]支持外置硬盘控制器驱动,可任意方式启动的PE[10-01-13稳定版]

  [复制链接]
1381#
发表于 2009-11-20 23:13:03 | 只看该作者
原帖由 pseudo 于 2009-11-20 23:04 发表
拆开后,pxe访问、本地访问有局限,不一致。所以目前还是zip格式打包通用,清爽。双击zip文件自动用winrar打开,把文件拖进拖出,很方便。


赞成这个观点,主要是希望ZIP打包也支持里面的TXTSETUP.SIF,也就是PE内置驱动的格式打包,里面是SYS(或SY_)文件和txtsetup.sif。
拆开是无所谓的,ZIP打包一样方便。
回复

使用道具 举报

1382#
发表于 2009-11-20 23:43:14 | 只看该作者
原帖由 zhaohj 于 2009-11-20 23:13 发表
赞成这个观点,主要是希望ZIP打包也支持里面的TXTSETUP.SIF,也就是PE内置驱动的格式打包,里面是SYS(或SY_)文件和txtsetup.sif。
拆开是无所谓的,ZIP打包一样方便。

10.06测试版@livemesh
===================
1. 允许SRS*.ZIP由txtsetup.sif文件和含.sy?的Drivers目录构成。方便将其它PE带的SRS驱动直接搬到0PE中使用。但目前暂时限制
    txtsetup.sif不能超过60K,每个SRS*.ZIP文件不能超过3M.

10.11测试版@livemesh
===================
5. 压缩后SRS1.ZIP、SRS2.ZIP、F6.ZIP、OEM_SRS.ZIP每个文件不要超过10000K。由于这次加大上限时采用笨办法没作优化,现在
   启动PE所需内存略超128M,以后再考虑降低。
回复

使用道具 举报

1383#
发表于 2009-11-21 06:50:14 | 只看该作者
有机会上网回复一下。

貌似 displaymem 仅仅显示系统内存,不会包括 map 之后的影响。所以,由 displaymem 显示的内存总是一样的,不必显示很多次。

map --status 的显示当然很重要。chenall 怀疑 --rehook 有问题,我也怀疑。但是目前我不能看代码,所以,希望 chenall 再研究一下 rehook 的代码部分,看看是否能找出什么毛病来。

另外,虽然你的 displaymem 显示你的内存已经超过了 4G,但是,map 所映射的内存并未放在 4G 以上,而是在 4G 以内。因此,这个问题似乎与内存的大小无关。

另外,测试者应该很容易确定,究竟为什么 (hd0,0) 不能被识别。比如,测试者可以运行 cat --hex (hd0,0)+XXXXXXXX 之类的命令,看看 (hd0,0) 的扇区数据是否被破坏了。另外,当 ls (hd0,0)/ 报错时,紧接着再尝试一次 root (hd0,0),看看能否成功。
回复

使用道具 举报

1384#
 楼主| 发表于 2009-11-21 10:04:15 | 只看该作者
我从图片上太概看出了一点问题,

长度自动加了0x20=32
刚好是CSPE.IMG的一个磁道。。
所以可以试试在出错后(因为已经共执行了两个的map --rehook)

map --mem (hd0)0x40+0x19020 (hd1)
map --hook
看一下(hd1,0)是否可以访问。
回复

使用道具 举报

1385#
发表于 2009-11-21 10:35:08 | 只看该作者
回C大,你的判断很对。
map --mem (hd0)0x40+0x19020 (hd1)
map --hook
map --status
geometry (hd1)
root (hd1,0)
ls (hd1,0)/

[ 本帖最后由 zhaohj 于 2009-11-21 10:37 编辑 ]

IMG045.jpg (120.19 KB, 下载次数: 187)

IMG045.jpg
回复

使用道具 举报

1386#
 楼主| 发表于 2009-11-21 10:40:22 | 只看该作者
但是如何解决,我还是没有办法,我再查一下源码,看能否找出什么东西来,否则就得等不点再次上线再看了。
回复

使用道具 举报

1387#
 楼主| 发表于 2009-11-21 12:25:08 | 只看该作者
暂时就先用这个来解决问题吧(替换了MAP --REHOOK命令)

MICROPE.rar

249.7 KB, 下载次数: 36, 下载积分: 无忧币 -2

回复

使用道具 举报

1388#
发表于 2009-11-21 15:52:07 | 只看该作者
刚好在单位,dell刀片(8G)上测试:
用了#1395的rar替换CSPE后,结果仍是与zhaohj反映的相同;Live Mesh上的0PE生成的ISO也无法启动。



我用FBinst制作的U盘grldr(6.20版),在我的台式机(4G)和dell刀片上,均用0pe(KERNEL.ZIP是11月5日的版本)启动成功!
回复

使用道具 举报

1389#
 楼主| 发表于 2009-11-21 18:08:06 | 只看该作者
上面的提示和zhaohj反映的不是同一个问题。

有没有更详细一些的信息,上面的图片我只能猜测是启动盘的问题。
回复

使用道具 举报

1390#
发表于 2009-11-21 19:45:40 | 只看该作者
chenall:
截图都是直接用Mesh上Makeios.cmd(生成扩展版0PE.ISO.cmd)生成ISO引导的,在VM上测试没问题。

dell刀片支持远程远程系统安装(远程虚拟光驱),测试比较方便;不知是否因远程虚拟光驱导致?请详告需要哪些详细信息?礼拜一上班再测试。

[ 本帖最后由 canmao 于 2009-11-21 19:50 编辑 ]
回复

使用道具 举报

1391#
 楼主| 发表于 2009-11-21 22:22:20 | 只看该作者
怀疑是dell固意制造的不兼容。

你可以进入GRUB4DOS命令行,
geometry (cd)
ls (cd)
是是否可以正常访问。
回复

使用道具 举报

1392#
发表于 2009-11-21 23:39:22 | 只看该作者
C大的Livemesh还没好吗?windows update 成功一般LIVEMESH就会好!
#1396估计光驱不行。
没map --rehook估计对pe速度有一定的影响,是否成功要明天到单位测试才知道。但问题确实是rehook 引起的。

[ 本帖最后由 zhaohj 于 2009-11-21 23:42 编辑 ]
回复

使用道具 举报

1393#
发表于 2009-11-22 13:17:43 | 只看该作者
替换map --rehook后问题解决,内存>=4G成功启动。
回复

使用道具 举报

1394#
发表于 2009-11-23 09:36:31 | 只看该作者
的确是Dell的远程虚拟光驱和Grub4Dos不配合。进入G4D后,就找不到光驱了。

用U盘,替换map --rehook后,已经可以看见到windows启动画面了。
回复

使用道具 举报

1395#
发表于 2009-11-23 20:17:00 | 只看该作者
请教C大,我用你的CSPE怎么无法加载磁盘驱动,新机子硬盘都发现不了?
回复

使用道具 举报

1396#
 楼主| 发表于 2009-11-23 20:24:44 | 只看该作者
原帖由 306344381 于 2009-11-23 20:17 发表
请教C大,我用你的CSPE怎么无法加载磁盘驱动,新机子硬盘都发现不了?


你可以试下0PE的磁盘驱动(这个PE默认只带了几个常用的驱动)。比如直接把0PE的SRS1.ZIP改名为SRS.ZIP放在CSPE目录下。
回复

使用道具 举报

1397#
发表于 2009-11-23 20:34:43 | 只看该作者
原帖由 chenall 于 2009-11-21 10:04 发表
长度自动加了0x20=32
刚好是CSPE.IMG的一个磁道。。


佩服这个猜测,一下子就找到家了。
回复

使用道具 举报

1398#
 楼主| 发表于 2009-11-23 21:59:15 | 只看该作者
把LIVE MESH删了,重新装了下,又可以用了,不知能用多久.:

2009-11-23
1.CSPE.IMG镜像核心改动,替换了XP资源为0PE的最新版,替换了里面的WDSYS.SYS为FIRADISK.SYS新版(以前是通过EXT.ZIP改的)
2.MICROPE.LST,优化调整。【测试】现在如果内存>512MB,就自动停用FBWF功能(防止和某些程序出现冲突)。
3.EXT.ZIP,调整优化。


请大家测试一下,看看没有开启FBWF后会不会有什么不良影响。
回复

使用道具 举报

1399#
 楼主| 发表于 2009-11-23 22:34:17 | 只看该作者
没有LIVE MESH的朋友下载方法(正在上传)
1.千脑(分散上传)
http://down.qiannao.com/space/li ... 206-4eab/CSPE/.page
2.威盘(单个RAR压缩包)
http://www.vdisk.cn/chenall
回复

使用道具 举报

1400#
发表于 2009-11-24 07:56:47 | 只看该作者
呵呵  我也扔个分流地址好了 注意只有cspe 组件 使用自身脚本生成。
MicroPE.ISO
回复

使用道具 举报

1401#
发表于 2009-11-24 16:37:17 | 只看该作者
rehook增加一个磁道的问题好像很难解决。

现在不知道出错的具体位置。

根据报告,在小于 4G 的机器上,没有问题。在 4G+ 的机器上就有问题了。但我们的代码实际上与内存的大小无关,那么问题也就难以定位了。怀疑是某个未知的 bug,它在一定的条件下表现出来了。

能够让 map 增加一个磁道的可能情况有以下几种:

1)map (md)XXXX+YYYY 的时候,读取的 (md)XXXX+YYYY 的第一扇区(放置在 0000:8000 处,也就是 BS 所在的位置)被后续的某个操作覆盖掉了。这样,map 就不能发现分区表的存在,于是就构造一个新的分区表。

试试 cat --hex (md)XXXX+1 看看能否正确显示 MBR 扇区数据?(估计这一点是没问题的)

2)读的第一扇区并未被破坏掉,但 probe_mbr 函数本身发生了错误,未能发现由 map 自动构造的合法分区表。

具体的原因我们可能没有精力去仔细查找了,但我们可以设法阻止 rehook 去构造 MBR 磁道,这一点应该容易做到,比如通过 设置 map 的 flags 参数来实现,或者通过一个全局变量来控制。
回复

使用道具 举报

1402#
 楼主| 发表于 2009-11-24 18:19:28 | 只看该作者
@不点,这个我也有查了代码并对比了内存数据,发现0000:8000处的MBR和要操作的磁盘的MBR不一样,具体什么时候发生了变化,就不太清楚了,只能一步步跟踪过去,我现在还没有找到可能出现问题的地方。

所以暂时还是直接让map --rehook不重新构造 MBR 磁道,其它的时候照常,只是map --rehook的时候不去检测就可以了。

[ 本帖最后由 chenall 于 2009-11-24 18:22 编辑 ]
回复

使用道具 举报

1403#
 楼主| 发表于 2009-11-24 20:35:10 | 只看该作者
@zhaohj
我对AWK不熟,要不然也许可以想办法利用AWK来操作INI文件,这样就没有inifile 60K的限制了。
对于处理TXTSETUP.SIF上效率也会有很大的提高。

接触了一下AWK,还是没有入门。有深度。
回复

使用道具 举报

1404#
发表于 2009-11-25 11:04:34 | 只看该作者
60K的限制虽有不便,也将就着过得去。SRS驱动反正有多种方式。
现在的SRS驱动支持方式,C大应该在一楼明示,我相信很多人不知道。
有空改一下“网卡驱动ID生成”的批处理,使程序支持打包的文件名可以任意,可以不与INF文件同名。还有让它支持多目录。
最近整理了网卡驱动,好像网卡驱动也支持多种格式:CAB/7Z,不知支持ZIP吗?
有一点不明,原来的DRIVERS目录现在不用了吗?象显卡声卡
OPE的网卡驱动方式也不错,发觉网卡驱动打包不大,一般不会超过4M(无线除外)。整体打包就不用考虑ID了。

[ 本帖最后由 zhaohj 于 2009-11-25 11:20 编辑 ]
回复

使用道具 举报

1405#
 楼主| 发表于 2009-11-25 11:54:55 | 只看该作者
DRIVERS目录
还是一样的,里面有的网卡驱动,同样会使用的.
回复

使用道具 举报

1406#
 楼主| 发表于 2009-11-25 11:56:48 | 只看该作者
原帖由 zhaohj 于 2009-11-25 11:04 发表
60K的限制虽有不便,也将就着过得去。SRS驱动反正有多种方式。
现在的SRS驱动支持方式,C大应该在一楼明示,我相信很多人不知道。
有空改一下“网卡驱动ID生成”的批处理,使程序支持打包的文件名可以任意,可 ...


懒得再写了,呵呵,反正懂得用的就用.不懂的可以用0PE
回复

使用道具 举报

1407#
发表于 2009-11-25 13:19:44 | 只看该作者
@zhaohj
  ftp2已经修复好了...............................
回复

使用道具 举报

1408#
发表于 2009-11-25 13:22:13 | 只看该作者
原帖由 wang6610 于 2009-11-25 13:19 发表
@zhaohj
  ftp2已经修复好了...............................


已经修复,现在就更新到最新。
发觉NETID.TXT中目录名及文件名需大写,特别是目录名,小写的不认。在内存>=4G的机器上有些还是不能启动,不点大人还得辛苦,不知需要提供什么资料?

[ 本帖最后由 zhaohj 于 2009-11-25 17:13 编辑 ]
回复

使用道具 举报

1409#
发表于 2009-11-26 10:24:27 | 只看该作者
lvemesh上最新版11.24测试结果如下(机器内存=4G):
下面图片中本人写错unmap=1:0x79,0xPe:0xfe实际上是unmap=1:0x79,0x9e:0xfe,测试也是unmap=1:0x79,0x9e:0xfe,笔误。
title MicroPE
erroecheck off
checkrange 6009 read 0x60008 && map --mem (fd1)+1 (fd0)
ls (fd0)/F6DISK.FLG && map --mem (fd1)+1 (fd0)
map --hook
map --unmap=1:0x79,0x9e:0xfe
ls (fd0)/grub.exe && map --unmap=0
map --hook
map --hook=0x80
errorcheck on
makeactive (hd0,1)
chainloader (hd0,0)/setupldr.bin

[ 本帖最后由 zhaohj 于 2009-11-26 10:45 编辑 ]

IMG048.jpg (125.97 KB, 下载次数: 173)

IMG048.jpg

IMG049.jpg (135.31 KB, 下载次数: 172)

IMG049.jpg

IMG050.jpg (143.51 KB, 下载次数: 167)

IMG050.jpg

IMG051.jpg (145.87 KB, 下载次数: 175)

IMG051.jpg

IMG052.jpg (152.76 KB, 下载次数: 172)

IMG052.jpg

IMG053.jpg (131.42 KB, 下载次数: 172)

IMG053.jpg

IMG054.jpg (136.09 KB, 下载次数: 189)

IMG054.jpg

IMG055.jpg (139.12 KB, 下载次数: 175)

IMG055.jpg
回复

使用道具 举报

1410#
 楼主| 发表于 2009-11-26 13:24:50 | 只看该作者
看图片这个(HD0)早就不能访问了,得先确一下进DOS后是否可以访问.
在启动PE时,进DOS,快速按F8,进入纯DOS模式,DIR C:\
看一下.

最好带有前面启动过程,可以使用DEBUG模式进入.
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-14 10:38

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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