无忧启动论坛

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

【原创】★新型全外置结构:《零体积全能可扩展PE》ZIP版

    [复制链接]
2251#
 楼主| 发表于 2009-11-4 16:34:34 | 只看该作者
我试图在VMware中重现Ghost重启问题,似曾成功重现,但后来重现不了。所以ghost方面不好说。

不过可以重现的是,在用了firadisk的PE中用DiskGenius看其它盘的磁头数、每道扇区数,会显示成与X:盘一样的。
在0PE中磁头数/每道扇区数为128/63,MicroPE中是80/32。这点可以验证。我怀疑是这些参数带来ghost重启问题。

zhaohj兄#2272楼的说法与之前说法似有矛盾。磁头数255的情形在MicroPE、0PE中都是看不到的。
从0PE用无盘天使驱动冒充firadisk.sy_(wdsys.sys文件cab压缩后改名firadisk.sy_替换真正的firadisk.sy_),就一切正常来看,问题还是与firadisk有关。

[ 本帖最后由 pseudo 于 2009-11-4 16:40 编辑 ]
回复

使用道具 举报

2252#
发表于 2009-11-4 16:46:33 | 只看该作者
原帖由 pseudo 于 2009-11-4 16:34 发表
我试图在VMware中重现Ghost重启问题,似曾成功重现,但后来重现不了。所以ghost方面不好说。

不过可以重现的是,在用了firadisk的PE中用DiskGenius看其它盘的磁头数、每道扇区数,会显示成与X:盘一样的。
在 ...


刚才不小心,上面已改正。0PE用FIRADISK分区有问题,MICPOPE用FIRADISK分区没有问题。现在毛病难查了...
回复

使用道具 举报

2253#
发表于 2009-11-4 16:57:02 | 只看该作者
firadisk肯定是有问题的,但是出现问题的原因还没有找到。
回复

使用道具 举报

2254#
发表于 2009-11-4 17:17:41 | 只看该作者
刚看了firadisk讨论区的贴子,也许这个也是一个问题。

Don't unmap 0x81.
回复

使用道具 举报

2255#
发表于 2009-11-4 17:23:37 | 只看该作者
正常系统 和 其他PE, 以及microPE中1/2/3菜单启动PE中的分区截图:


micrope中4菜单(firadisk驱动)的不正常分区截图:


0PE新版(firadisk驱动)的不正常分区截图:

----------------------------------------------------------------------------------------------------
从上图看, 使用了firadisk驱动的0PE和micrope的4菜单PE, 分区参数异常, 并且ope和micrope的还不相同.
回复

使用道具 举报

2256#
发表于 2009-11-4 17:50:50 | 只看该作者
我尝试了一下,不覆盖原来的(hd0)。
启动后显示的C/H/S正常,但GHOST是否正常我就没有办法测试了,因为我自己的测试一直都是成功的。

如果有办法从软盘上启动PE就不用这么麻烦了。
谁对这些比较有研究?应该是有办法的。
回复

使用道具 举报

2257#
 楼主| 发表于 2009-11-4 19:01:00 | 只看该作者

回复 #2279 chenall 的帖子

我为虚拟机再增加一个硬盘,成为主从双硬盘,那么MicroPE将两个硬盘的H/S都认作255/63,去掉一个硬盘,即单硬盘覆盖hd0情形,认作80/32。
初步结论:在grub4dos中被虚拟硬盘覆盖的物理硬盘hd0,进入windows后firadisk会按虚拟盘的参数去访问该物理硬盘,可能带来问题。
不过双硬盘时被覆盖盘的处理又为什么与单硬盘不同呢?
回复

使用道具 举报

2258#
 楼主| 发表于 2009-11-4 19:22:07 | 只看该作者

诸位试试

已经联系firadisk作者,他说使用firadisk时
Don't unmap 0x81.

据此,诸位试试,在auto_exe.bat中搜索
0x81:
都改为
0x84:
是不是一切都好了。
auto_exe.bat在0PE的KERNEL.ZIP里KERNEL目录下。KERNEL.ZIP是用winrar以zip格式最大压缩比打包的。
回复

使用道具 举报

2259#
发表于 2009-11-4 20:45:22 | 只看该作者
原帖由 pseudo 于 2009-11-4 19:22 发表
已经联系firadisk作者,他说使用firadisk时
Don't unmap 0x81.

据此,诸位试试,在auto_exe.bat中搜索
0x81:
都改为
0x84:
是不是一切都好了。
auto_exe.bat在0PE的KERNEL.ZIP里KERNEL目录下。KERNEL ...


真是好消息!!!不知是否0PE只需修改auto_exe.bat?
回复

使用道具 举报

2260#
发表于 2009-11-5 01:05:27 | 只看该作者
加油啊!!!!顶哦!!!!!支持楼主,支持你~
回复

使用道具 举报

2261#
发表于 2009-11-5 08:29:57 | 只看该作者
原帖由 pseudo 于 2009-11-4 19:22 发表
已经联系firadisk作者,他说使用firadisk时
Don't unmap 0x81.

据此,诸位试试,在auto_exe.bat中搜索
0x81:
都改为
0x84:
是不是一切都好了。
auto_exe.bat在0PE的KERNEL.ZIP里KERNEL目录下。KERNEL ...


Don't unmap 0x81,0x81都改为0x84,这个问题解决了:

Snap1.jpg (144.87 KB, 下载次数: 178)

Snap1.jpg
回复

使用道具 举报

2262#
发表于 2009-11-5 08:50:39 | 只看该作者
好消息啊,Don't unmap 0x81后利用FIRADISK驱动的0PE,硬盘分区解决了。
GHOST后硬盘完美启动!!!
祝贺一下!
再解决MICROPE的Don't unmap 0x81。
回复

使用道具 举报

2263#
发表于 2009-11-5 08:53:43 | 只看该作者
原帖由 pseudo 于 2009-11-4 19:22 发表
已经联系firadisk作者,他说使用firadisk时
Don't unmap 0x81.

据此,诸位试试,在auto_exe.bat中搜索
0x81:
都改为
0x84:
是不是一切都好了。
auto_exe.bat在0PE的KERNEL.ZIP里KERNEL目录下。KERNEL ...

回复P大:
      今天第一时间测试, 修改为0x84后, diskgenus磁盘参数正确, 格式化及ghost后, 硬盘第一启动正常.
      此问题解决!

     还请chenall大侠修改下micrope, 或说明一下修改哪里的0x81......
回复

使用道具 举报

2264#
发表于 2009-11-5 09:07:34 | 只看该作者
micope 在ext.zip 里面menu.lst 别的地方没有发现
回复

使用道具 举报

2265#
发表于 2009-11-5 09:38:24 | 只看该作者
原帖由 fantasy 于 2009-11-5 09:07 发表
micope 在ext.zip 里面menu.lst 别的地方没有发现


MicroPE 因为一直以来都没有map交换磁盘,我稍后再进行修正上传。
回复

使用道具 举报

2266#
发表于 2009-11-5 09:42:58 | 只看该作者
原帖由 fantasy 于 2009-11-5 09:07 发表
micope 在ext.zip 里面menu.lst 别的地方没有发现

修改后, micrope中磁盘参数还是不正确, ghost后不能启动.
原帖由 chenall 于 2009-11-5 09:38 发表
MicroPE 因为一直以来都没有map交换磁盘,我稍后再进行修正上传。

还是等C大的修正吧!
回复

使用道具 举报

2267#
发表于 2009-11-5 10:26:49 | 只看该作者
哦  我只是那天看配置的时候见到了。。既然这样等c大同步吧
回复

使用道具 举报

2268#
 楼主| 发表于 2009-11-5 10:41:50 | 只看该作者

哪位朋友有条件试一下,0PE和MicroPE里安装win7

用普通pe下装win7的方法能否安装,用这里的工具安装能否安装:
PETOOLS\系统工具\安装windows系统\NT6.X快速安装器090915.EXE
回复

使用道具 举报

2269#
发表于 2009-11-5 10:53:43 | 只看该作者
0pe 我上次装有点问题。最后直接g4d写链式引导过去安装的。。就是chainlader
安装没问题 但是无法引导。。大概是10月5号左右的那个版本
回复

使用道具 举报

2270#
发表于 2009-11-5 11:14:01 | 只看该作者
原帖由 pseudo 于 2009-11-5 10:41 发表
@echo off
::映射网络驱动器 Pseudo 2008.12.11,2009.1,2009.4,2009.5,2009.9
::参考了小小强Pe工具箱PXE版V1.2的START_NET.CMD文件,chenall的PE中启动网络自动运行.cmd
rem 以下内容用于映射网络驱动器Y盘,以便通过网络加载外置程序请根据实际情况
rem 自行修改KERNEL.ZIP中WXPE目录下的SERV_SET.bat进行设置。
rem SHARE_USER指定了服务器上的某个帐户,默认为pseudo,此帐户只需有对外共享并读取外置程
rem 序文件夹的权限即可,其它的权限都不需要。
rem SHARE_NAME指定了服务器端共享目录的共享名,默认为0pe$,该共享只需让由SHARE_USER指定的
rem 帐户有只读权限即可,其它的用户和权限都不需要。
rem 连接时,程序将首先尝试连接Guest和administrator,如果此两个帐户不可用或设有密码,
rem 才进一步尝试连接由SHARE_USER指定的帐户。
rem PXE_SERVER用来指定服务器的IP,如果保持空着,就会使用自动检测到的IP(普通情况下是合适的)。
rem =========================================================================================
NBTSTAT -N >nul 2>nul|| GOTO :网卡错误
if exist %WinDir%\SERV_SET.bat call %WinDir%\SERV_SET.bat
if not defined SHARE_NAME set SHARE_NAME=0pe$
if not defined SHARE_USER set SHARE_USER=pseudo
if not defined SHARE_PASS set SHARE_PASS="0pe"


guest账户密码空的情况大多第一次连不上。能不能把SERV_SET.bat单独提取出来放在0PE目录下,方便用户修改。
还有,自动连接网络能不能像C大一样不用penetcfg,不需要用户按键真正实现全自动。你修改一下还是方便大家吧。
参见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=144916&highlight=%2Bzhaohj

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

使用道具 举报

2271#
发表于 2009-11-5 11:28:27 | 只看该作者
原帖由 zhaohj 于 2009-11-5 11:14 发表


guest账户密码空的情况大多第一次连不上。能不能把SERV_SET.bat单独提取出来放在0PE目录下,方便用户修改。
还有,自动连接网络能不能像C大一样不用penetcfg,不需要用户按键真正实现全自动。你修改一下还 ...




能实现PXE启动,PETOOLS等应用软件都放在服务器上,网启时全自动连接网络,真是我等菜鸟的福音啊,迫切希望P大出手完善!!
回复

使用道具 举报

2272#
发表于 2009-11-5 11:38:11 | 只看该作者
#2292
我已经有安装过了,可以正常使用。


经过几次的测试,发现如果不交换磁盘那被覆盖的磁盘在WINDOWS下的识别可能不太对(表现为C/H/S的值不对,不管是使用WDSYS还是FIRADISK驱动,都会这样子)

所以我准备尝试修改一下GRUB4DOS代码,看看能否实现这样一个功能,不知有没有意义。

例子
map (hd0) (hd+)
把(hd0)映射到最后盘符。
比如当前已经有3个磁盘(hd2)。
那上面的语句最终执行会变成
map (hd0) (hd3)
回复

使用道具 举报

2273#
 楼主| 发表于 2009-11-5 11:55:53 | 只看该作者
原帖由 zhaohj 于 2009-11-5 11:14 发表
guest账户密码空的情况大多第一次连不上。能不能把SERV_SET.bat单独提取出来放在0PE目录下,方便用户修改。
还有,自动连接网络能不能像C大一样不用penetcfg,不需要用户按键真正实现全自动。你修改一下还 ...

1、SERV_SET.bat在KERNEL.ZIP里WXPE目录下,zip格式很方便,一般大家都装有winrar,包括pe里也有。所以双击KERNEL.ZIP就可以用winrar打开它,把SERV_SET.bat拖出来,改好拖入,就行了。
单独提取出来放在0PE目录下,没有多大必要,这不是频繁改动的文件,放在外面影响清爽。更重要的是,如果将0pe解开藏入ud(这种部署目前还比较常用),这个文件放在ud内zip外,就不能直接访问了。
综上,放在zip内是较好的方案。
2、“不用penetcfg,不需要用户按键真正实现全自动”也可以做到,只需删掉@0#NET_.WIM里面Start_Net.cmd的这行
Start /wait PENETCFG.EXE
这行是有意加上的,作为见证加载网络支持成功的标志(NBTSTAT探测网卡错误并不十分可靠),并提供一个手工指定ip、共享目录的机会。
注意,所带的“IP切换器”切换ip后,最好运行一下penetcfg并点确认,否则有时切换得不彻底。
回复

使用道具 举报

2274#
发表于 2009-11-5 12:10:18 | 只看该作者
请P大把上述问题更新一下,让zhaohj同步一下后下载!谢谢你们的辛苦劳动
回复

使用道具 举报

2275#
 楼主| 发表于 2009-11-5 12:13:29 | 只看该作者

回复 #2296 chenall 的帖子

chenall兄出手,好啊。
另一种方式,只需要增加一个可访问的最大盘数变量。变量值大概只有0-3的范围吧。有了变量,
map (hd0) (hd+)
可用
checkrange 3 read ... && map (hd0) (hd3)
checkrange 2 read ... && map (hd0) (hd2)
checkrange 1 read ... && map (hd0) (hd1)
checkrange 0 read ... && map (hd0) (hd0)
来代替

如果交换过但后来又unmap,WDSYS没问题。如果有未覆盖的(双硬盘),被覆盖的firadisk可能也没问题。
回复

使用道具 举报

2276#
发表于 2009-11-5 12:31:01 | 只看该作者
这个最大盘数变量的值在0x475位置(使用READ读到的可能是8个字节的)
所以需要把把这个值移到临时内存再读取
例子
dd if=(md)2+1 of=(md)0x300+1 bs=1 count=1 skip=0x75
read 0x60000
0x60000的值就是当前所有磁盘数量。


附件是基于10-16版本上修改的,大家可以测试下。

为map命令添加了一个功能。(hd+)自动获取最后一个磁盘号

例子
当前的硬盘总数是2  (hd0,h1)
map /xxx.img (hd+) 可以把xxx.img 映射到 (hd2)

map (hd0) (hd+) 可以把(hd0)映射到(hd2)

[ 本帖最后由 chenall 于 2009-11-5 12:34 编辑 ]

grub4dos-0.4.4-2009-11-05.rar

238.49 KB, 下载次数: 30, 下载积分: 无忧币 -2

回复

使用道具 举报

2277#
发表于 2009-11-5 12:34:14 | 只看该作者
#2299
这个说法也不全对,虽然看起来是没有问题,实际上,获取到的C/H/S值并不太对。
我昨天有测试了一下,发现WDSYS默认把覆盖的磁盘的值设为255/63,firadisk是取覆盖后的磁盘信息像MICROPE启动后就是80/32
回复

使用道具 举报

2278#
发表于 2009-11-5 12:38:20 | 只看该作者
原帖由 pseudo 于 2009-11-4 19:22 发表
已经联系firadisk作者,他说使用firadisk时
Don't unmap 0x81.

据此,诸位试试,在auto_exe.bat中搜索
0x81:
都改为
0x84:
是不是一切都好了。
auto_exe.bat在0PE的KERNEL.ZIP里KERNEL目录下。KERNEL ...


改成0x84后对于多分区(可见分区)的U盘会报"line 5709 in d:\srvrtm\base\boot\setup\setup.c"错误。但分区的U盘没问题。
我是用1块4G金士顿(单分区)和1块8G(带量产和加密分区)U盘测得,用0x81时都好用,改0x84后只有4G的好用,通常"line 5709 in d:\srvrtm\base\boot\setup\setup.c"这个错误是内存问题,但已排除。

请P大看一下,谢谢
回复

使用道具 举报

2279#
发表于 2009-11-5 12:39:38 | 只看该作者
能不能这样,OPE下可以放一个SERV_SET.bat,先判断这个文件是否存在,如存在就加载这个,如果没有加载WXPE\SERV_SET.bat。这样·既照顾了ud,也方便了大家。
回复

使用道具 举报

2280#
 楼主| 发表于 2009-11-5 13:39:52 | 只看该作者

回复 #2303 zhaohj 的帖子

打包进zip没有带来很大的麻烦,外置则代价高。
ud只有fbinst/grldr能访问,fbinst不能访问服务器文件,grldr访问的文件有可能需要大于2K/4K之类,grldr的find查找文件效率较低,查某些特殊软盘、光盘甚至会死机,不宜多用。
此外,如果这个bat外置,那么pecmd.ini等等是否同理外置?那样就不像“zip版”了:)
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-7-22 10:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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