无忧启动论坛

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

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

    [复制链接]
2791#
 楼主| 发表于 2009-12-27 14:05:12 | 只看该作者
原帖由 zxw 于 2009-12-26 18:03 发表
一个小bug:
regfile 关联:regedit.exe %1 应为:regedit.exe “%1 ”
在桌面等有空格的文件夹或目录中双击reg文件出现错误。

谢谢指正。
好像是这段SYS_CP.CMD:

  1. ::关联REG文件thanks yulongjin
  2. REG ADD HKCR\regedit\shell\open\command /ve /t REG_SZ /d "%WINDIR%\system\regedit.exe "%%1"" /f
  3. REG ADD HKCR\regfile\shell\open\command /ve /t REG_SZ /d "%WINDIR%\system\regedit.exe "%%1"" /f
复制代码

yulongjin兄提供的代码,看样子似乎有双引号。
回复

使用道具 举报

2792#
发表于 2009-12-27 19:18:56 | 只看该作者
Pseudo兄

上周五同步了一下大作0PE,目前正在与我这里的PXE环境集成,遇到一个问题

我的PXE(gPXE)环境对从TFTP读取含有”#“文件名是有问题的,这一点正巧和0PE中的命名规范有些兼容性问题

在0PE\AUTORUNS\此目录文件说明.txt做了如下定义
@        %SystemDrive% (X:)
@0        %WinDIR%
@1        %ProgramFiles%
@2        B:\WimTools
#        代表"\"

由于#的特殊性,在某些版本的PXE协议栈,以及HTTP协议中,URI中如果包含#,#会当作特殊字符处理,导致的结果是#后的字符被忽略。
因此,在我这里的环境中,请求@0#NET_.WIM文件时,在封装为HTTP或者TFTP请求报文时,被转换为请求@0文件

Pseudo兄,建议0PE对于代表"\"(下级目录)的特殊字符修改为其他特殊符合,例如$

另外,为了尽快与我这里的PXE兼容起来,想请教一下,对于以上特殊符合,在哪个文件中做判断? 我希望临时自行修改一下,还望不要见怪 呵呵


p.s  关于将特殊符号#改为$的建议,是基于与更多的PXE环境集成考虑的,这样可以增强0PE的兼容性。目前PXE可以支持使用多种协议读取文件,例如TFTP HTTP iSCSI等,所以0PE的特殊字符定于最好不与这些协议的URI定义有冲突。 当然,对于0PE自身而言,也会受到自身存储的文件系统的制约,例如ISO9660(或其他)的文件系统是否允许某些特殊字符做为包含在文件名中。有关这点,朗月繁星恐怕无才考虑周全,还望P兄深思熟虑后,再做打算

[ 本帖最后由 朗月繁星 于 2009-12-27 19:29 编辑 ]
回复

使用道具 举报

2793#
发表于 2009-12-27 19:20:50 | 只看该作者
另外,UdtoMem.ini中

;例如去掉分号即支持pe作xpe网启服务器端

怀疑,是否为笔误, xpe=>PXE
回复

使用道具 举报

2794#
发表于 2009-12-27 21:26:08 | 只看该作者
原帖由 pseudo 于 2009-12-27 14:05 发表

谢谢指正。
好像是这段SYS_CP.CMD:

::关联REG文件thanks yulongjin
REG ADD HKCR\regedit\shell\open\command /ve /t REG_SZ /d "%WINDIR%\system\regedit.exe "%%1"" /f
REG ADD HKCR\regfile\shell ...

应该这样吧:
REG ADD HKCR\regedit\shell\open\command /ve /t REG_SZ /d "%WINDIR%\system\regedit.exe \"%%1\"" /f
REG ADD HKCR\regfile\shell\open\command /ve /t REG_SZ /d "%WINDIR%\system\regedit.exe \"%%1\"" /f
回复

使用道具 举报

2795#
发表于 2009-12-27 22:02:05 | 只看该作者
直接使用以下命令就可以了,省去写一大堆注册表路径的麻烦。
ftype REGFILE=regedit.exe "%%1"
ftype regedit=regedit.exe "%%1"
回复

使用道具 举报

2796#
 楼主| 发表于 2009-12-27 22:57:30 | 只看该作者

回复 #2816、#2817 朗月繁星 的帖子

已经多处硬编码了,一下子不好改。可以换种启动方式:
启动整个/0PE/0PE.ISO,如果网速慢可移petools到iso外,减小iso体积。不使用2003-pe的可删除0pe\2003目录。
参考:http://bbs.wuyou.net/forum.php?m ... &extra=page%3D2
如此网上就不需要传送名字含#的文件了。有时传整个大文件比传多个小文件要快。

这里xpe指xp-pe,即不是2k3-pe。这个列表可以自行做些调整,例如,可使之只包含部分petools必要维护工具,以减少内存占用。
回复

使用道具 举报

2797#
 楼主| 发表于 2009-12-27 22:58:14 | 只看该作者
回复 #2818 zxw 的帖子、回复 #2819 chenall 的帖子
学习了
回复

使用道具 举报

2798#
发表于 2009-12-28 09:42:55 | 只看该作者
看着新版的0PE心痒啊。。。。。
回复

使用道具 举报

2799#
发表于 2009-12-28 09:57:09 | 只看该作者
原帖由 chenall 于 2009-12-27 22:02 发表
直接使用以下命令就可以了,省去写一大堆注册表路径的麻烦。
ftype REGFILE=regedit.exe "%%1"
ftype regedit=regedit.exe "%%1"

受教了,不过0pe中还是要这样写:
ftype REGFILE=%WINDIR%\system\regedit.exe  "%%1"
ftype regedit=%WINDIR%\system\regedit.exe  "%%1"
回复

使用道具 举报

2800#
发表于 2009-12-28 15:14:29 | 只看该作者
请教P大:
BUF下的空体积文件大小如何计算确定?以原文件大小为基准,凑满扇区为原则?

[ 本帖最后由 zxw 于 2009-12-28 16:07 编辑 ]
回复

使用道具 举报

2801#
 楼主| 发表于 2009-12-28 16:58:04 | 只看该作者

回复 #2824 zxw 的帖子

“容器”文件至少比原文件多4字节。
容器img大小必须保证扩展版及零体积版的网启客户端进桌面后可正常复制整个X:盘文件到硬盘。
回复

使用道具 举报

2802#
发表于 2009-12-29 10:42:38 | 只看该作者
原帖由 pseudo 于 2009-12-25 21:30 发表

0PE12.20版使用了chenall兄的自动搜索/执行petools工具:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=158014&extra=page%3D1%26amp%3Bfilter%3Ddigest

跟以往版本不同,
现在硬盘、光盘、U盘各分区的petools目录下的一些
PECMD.INI、SETUP.BAT,setup.inf,setup.cmd,好像还有*.reg?
等,会在启动到桌面时被自动执行!!! ...


建议: BAT、CMD之类还是不要自动运行了,添加到菜单即可。因为是搜索所有盘的petools目录,在对不熟悉的机器进行维护时,这样自动运行存在极大的安全隐患,排除病毒不说,编写不当的BAT、CMD也会有造成破坏等不安全因素,特别是在进行数据恢复时!
回复

使用道具 举报

2803#
发表于 2009-12-29 10:49:35 | 只看该作者
BAT、CMD、exe、wim只创建快捷方式,不要自动运行。
回复

使用道具 举报

2804#
发表于 2009-12-29 11:22:44 | 只看该作者
关于chenall的petools搜索配置工具的使用,补充几点建议:
1、改为手动执行,节省启动速度,很多时候不需要搜索的(有哪些工具一般自己也清楚)。
2、增加可选项,可指定搜索范围。
3、取消自动执行安装(或可选)

[ 本帖最后由 tpod 于 2009-12-29 14:43 编辑 ]
回复

使用道具 举报

2805#
发表于 2009-12-29 11:28:20 | 只看该作者
fantasy (幻想精灵)啥时候弄个合盘啦
回复

使用道具 举报

2806#
发表于 2009-12-29 14:54:33 | 只看该作者
原帖由 tpod 于 2009-12-29 10:42 发表


建议: BAT、CMD之类还是不要自动运行了,添加到菜单即可。因为是搜索所有盘的petools目录,在对不熟悉的机器进行维护时,这样自动运行存在极大的安全隐患,排除病毒不说,编写不当的BAT、CMD也会有造成破坏 ...


记得pseudo之前讨论过某些PE启动时写硬盘的问题,0PE如要确保不自动写硬盘,必须排除一切不确定的操作,因此可控范围之外的所有存在写盘可能性的自动运行都应该禁止。
回复

使用道具 举报

2807#
 楼主| 发表于 2009-12-29 17:14:24 | 只看该作者

回复 #2830 tpod 的帖子

可以DIY一下KERNEL.ZIP\KERNEL\KERNEL\WXPE\SYSTEM32\TOOLS\refresh.ini
不调用chenall的搜索工具,仍调用老方案, 取消自动执行安装.
要修改处很简单,只需改变两行注释位置,一看就明。
回复

使用道具 举报

2808#
发表于 2009-12-29 19:32:45 | 只看该作者
原帖由 pseudo 于 2009-12-27 22:57 发表
已经多处硬编码了,一下子不好改。可以换种启动方式:
启动整个/0PE/0PE.ISO,如果网速慢可移petools到iso外,减小iso体积。不使用2003-pe的可删除0pe\2003目录。
参考:http://bbs.wuyou.net/viewthread.php ...


P兄,再次建议改变一下定义下一级目录的特殊字符为$,或者其他。

http://en.wikipedia.org/wiki/Uniform_Resource_Identifier 请翻看一下这个连接,重点内容如下
A URI reference is another type of string that represents a URI, and (in turn) the resource identified by that URI. Informal usage does not often maintain the distinction between a URI and a URI reference, but protocol documents should not allow for ambiguity.
A URI reference may take the form of a full URI, or just the scheme-specific portion of one, or even some trailing component thereof – even the empty string. An optional fragment-identifier, preceded by "#", may be present at the end of a URI reference. The part of the reference before the "#" indirectly identifies a resource, and the fragment identifier identifies some portion of that resource.

#被用于fragment identifier 这一点与0PE某些文件的命名冲突。目前,非所有厂商的网卡严格按照Intel的PXE标准做,也不一定遵循URI,标准判断#的存在。换而言之,如果0PE所依赖的PXE Stack依照URI判断#,则类似@0#NET_.WIM的文件下载会失败,反而不判断#的PXE Stack到可以下载成功。其实这是个“反面”的例子。但是,确实目前大部分厂商网卡的PXE Stack不判断#的存在,我们可以理解为“存在既有道理”,但谁又能预测将来的会不会有越来越多的厂商在编码PXE Stack将URI规范纳入呢? 甚至将来所有的网卡可以PXE引导,通过HTTP或其他高级协议下载引导文件,来完善TFTP不稳定传输(UDP)无认证的缺陷。 然而,HTTP由于充分标准化,网站上的文件名都不会包含#,虽然这一初始判断在客户端完成,有关这点可以试着访问一下

http://down5.flashget.com/flashget3.3.0.1092en.exe
http://down5.flashget.com/flashget3.3.0.1092en###.exe
http://down5.flashget.com/flashget3.3.0.1092en.exe#
http://down5.flashget.com/flashget3.3.0.1092en.exe$

看看返回结果是什么,可以抓包看一下  (结果是#后的内容全部被忽略)

总之,希望在那个时候,像0PE一样的优秀作品已经准备好了


另外,P兄,我昨天试图修改相关0PE的文件,以改变#的特殊定义,在未完全测试情况下,应该是取得成功。需要修改的文件应该并不算多,简述如下

改名@0#NET_.WIM =》 @0$NET_.WIM (如有其他含#的WIM文件,将#改为$)


0PE\BUFXP\menu.gz (2003的也做相应修改)

0PE\KERNEL\auto_exe.bat
0PE\KERNEL\system\autorun_.cmd
0PE\KERNEL\system32\TOOLS\自动挂载.cmd (判断#的关键文件)
0PE\KERNEL\udtomem.ini

[ 本帖最后由 朗月繁星 于 2009-12-29 19:36 编辑 ]
回复

使用道具 举报

2809#
发表于 2009-12-30 01:33:44 | 只看该作者
报告错误
我神舟q1600,xp系统, C盘NTFS格式,硬盘安装0pe到c盘
我用 0pe1220版本,错误提示如下
loading /0PE/KERNEL.ZIP...
cat --length=0 (rd)+1 && dd if=(md) of=(hd7,0)/BUF/_KERNEL.ZIP bs=1 count=4 skip=0x8290
Error 5: partition table invalid or corrunt

而我换成0pe0620 版本后,启动pe算是正常了,只是到加载显卡的时候花屏了,估计是显卡驱动错误吧
回复

使用道具 举报

2810#
发表于 2009-12-30 11:13:23 | 只看该作者
P兄,想了解一下 12.20版
3. 处理pxe网启相关若干细节便于用户理解,增加对服务器多ip情形的智能处理。

更具体些的细节

谢谢
回复

使用道具 举报

2811#
 楼主| 发表于 2009-12-30 15:05:30 | 只看该作者
回复 #2833 he200377 的帖子
这个提示表示出现了新旧版本混淆。
请检查grldr、MENU.0PE、BUF*.GZ、KERNEL.ZIP等文件的日期标志,0pe1220版提供了这些文件的新版。
还要清理非启动盘/分区的同名文件。
回复 #2834 朗月繁星 的帖子
谢谢郎兄提供#相关资料。
12.20版不首先做guest连接等容易失败的尝试,直接以指定用户名来连接服务器。连接后在通知区域显示图标。创建用户、共享目录失败时有显式提示,多ip情形(例如装了VMware的VMnet8)自动尽量使用本地连接对应的ip。
回复

使用道具 举报

2812#
发表于 2009-12-30 15:25:40 | 只看该作者
再次建议增加引导img镜像的串接菜单接口,使之多功能化,谢谢!本来引导img命令很简单,但对菜鸟要加入压缩包有点难,对老鸟懒得动手,增加一个串接菜单接口,只需要改一下需要启动的img名字,菜鸟老鸟都喜欢。本来已经很好了,谢谢这么好的pe!!
回复

使用道具 举报

2813#
发表于 2009-12-30 19:32:42 | 只看该作者
谢谢P兄关于“处理pxe网启相关若干细节”的解释

不解为何最新版的 以下自动连接的语句被注释掉了
::net use Y: \\%PXE_SERVER%\%SHARE_NAME% %SHARE_PASS% /user:%SHARE_USER% /persistent:no
::pecmd wait 2000
::IF EXIST y:\grldr goto startloadop
::IF EXIST y:\0PE.BIN goto startloadop
::net use Y: \\%PXE_SERVER%\%SHARE_NAME% %SHARE_PASS% /user:%SHARE_USER%@%COMPUTERNAME%
::pecmd wait 2000
::IF EXIST y:\nul goto startloadop

不知道是否由于自动连接不稳定? 至少我这边测试自动连接情况如下:

A.第一次NET USE 不含%COMPUTERNAME%变量
发生系统错误 1312。
指定的登录会话不存在。可能已被终止
B.第二次NET USE 包含%COMPUTERNAME%变量
发生系统错误 1326。
登录失败: 未知的用户名或错误密码。

关于修改:如果pseudo存在于TFTP服务器的本地账户,需要得到TFTP端的%COMPUTERNAME%,至少我测试的环境,测过TFTP服务器端为XP SP3 以及Windows 2008,在使用NET USE时,不提供%COMPUTERNAME%都不能连接成功。不知道其他人的情况,另外,建议用%COMPUTERNAME%\%USERNAME%,不要用%USERNAME%@%COMPUTERNAME%,成功率会高! (甚至用 任意字符\\%USERNAME%都比 只用%USERNAME% 或 %USERNAME%@%COMPUTERNAME%的成功率高)

此外,最新版的0PE %COMPUTERNAME%为本机的HOSTNAME,应该不对。
另外一个考虑, 如果pseudo被新建为域账户,自动连接的NET USE,以及后边需要手动输入密码的NET USE,显然都不会成功连接。  当然,这种情况可能不对,加不加额外代码可能不重要。暂时能想到的方法,是截取NBTSTAT -A %PXE_SERVER%的输出,<1E> GROUP 那行的Name就是Domain的Netbios名称。
回复

使用道具 举报

2814#
发表于 2009-12-30 19:36:56 | 只看该作者
IE死了,多发了一条,看楼下的吧 。。。。

[ 本帖最后由 朗月繁星 于 2009-12-30 19:39 编辑 ]
回复

使用道具 举报

2815#
发表于 2009-12-30 19:38:52 | 只看该作者
在报告一个情况

物理机: Intel DG45ID + Q9400 + 4GB

测试1: DHCP Op67 直接指向0PE的grldr引导,TFTP读取过程非常之慢!但可以顺利进入PE
测试2: DHCP Op67指向gPXE(一个能增强内置网卡PXE协议栈功能的Boot Loader),之后在从gPXE引导至0PE的grldr, TFTP读取速度至少快10被,但是进入PE失败,表现为黑屏,什么都不显示!  初定定位了错误点,执行到startPE.bat 中的 a:\grub --config-file=c:\0pemenu.lst  时 死掉! 按CTRL ALT DEL 无效!

不知是否与4GB有关? 大概是什么问题? 能有Debug的方法可用吗?
回复

使用道具 举报

2816#
发表于 2009-12-30 20:14:23 | 只看该作者
在C 盘有系统的情况下。启动到PE后,会出现不能格式化C盘的情况,而我们进Pe很多情况下都是要格C盘的,P大能不能处理下????

(0PE是不是进入PE后就会自动搜索加载C盘的系统文件?)
回复

使用道具 举报

2817#
发表于 2009-12-30 21:02:20 | 只看该作者
回复 #2835 pseudo
我看了下 0620 和 1220 的grlbr 确实不一样,我换了grlbr 可以启动了,但是 不管是 0620 还是 1220 都是到了 启动画面那走两下进度条就黑屏了

神舟q1600

[ 本帖最后由 he200377 于 2009-12-30 21:03 编辑 ]
回复

使用道具 举报

2818#
 楼主| 发表于 2009-12-30 22:22:48 | 只看该作者
原帖由 朗月繁星 于 2009-12-30 19:32 发表
谢谢P兄关于“处理pxe网启相关若干细节”的解释
不解为何最新版的 以下自动连接的语句被注释掉了
::net use Y: \\%PXE_SERVER%\%SHARE_NAME% %SHARE_PASS% /user:%SHARE_USER% /persistent:no
::pecmd wai ...

原来设计以多种方式尝试连接,后来发现那些尝试一旦出现报错信息,比连不上还吓人,所以不尝试了,就减为一种简单的方式。
原帖由 朗月繁星 于 2009-12-30 19:38 发表
在报告一个情况
物理机: Intel DG45ID + Q9400 + 4GB
测试1: DHCP Op67 直接指向0PE的grldr引导,TFTP读取过程非常之慢!但可以顺利进入PE
测试2: DHCP Op67指向gPXE(一个能增强内置网卡PXE协议栈功 ...

grdlr与之前加载到内存的东西可能冲突。
原帖由 he200377 于 2009-12-30 21:02 发表
回复 #2835 pseudo
我看了下 0620 和 1220 的grlbr 确实不一样,我换了grlbr 可以启动了,但是 不管是 0620 还是 1220 都是到了 启动画面那走两下进度条就黑屏了
神舟q1600

呵呵,我已经就你开始遇到的问题作了解释,那是版本混杂、grldr版本陈旧所致。
解决这个问题后又遇到的新问题得靠自己分析了。
原帖由 超无限 于 2009-12-30 20:14 发表
在C 盘有系统的情况下。启动到PE后,会出现不能格式化C盘的情况,而我们进Pe很多情况下都是要格C盘的,P大能不能处理下????
(0PE是不是进入PE后就会自动搜索加载C盘的系统文件?)

我们拥有核打击能力,但不时时处处动用。
0pe拥有就地取材的能力,但不是进入pe后就自动加载C盘的系统文件。
0pe启动到桌面的过程,即使访问硬盘文件,也是只读、复制方式,不会破坏、锁住硬盘文件。

1、如果你把0pe部署在C盘上并从C盘启动,那么0pe的文件有可能会(也有可能不会)被锁住不能删除、格式化。
2、如果你在C盘上有PETOOLS目录,那么0PE12.20版会自动加载该目录下autoruns目录的wim文件,以及一些setup.*等文件(详见http://bbs.wuyou.net/forum.php?mod=viewthread&tid=158014&extra=page%3D1%26amp%3Bfilter%3Ddigest)。如果这种自动加载有什么副作用,只能怪你在PETOOLS目录放了不当的东西。
并非自动加载有问题,只是你将它放在C盘可能有问题,放D盘就没问题了。你也可以按#2831楼的说明取消自动加载。
3、进桌面后你主动运行了设计本地资源的程序,那是自己的事了。
4、你使用的是零体积版,或者缺少启动到桌面所需核心组件,这时可能0pe会自动就地取材设法启动到桌面。
回复

使用道具 举报

2819#
发表于 2009-12-30 22:45:41 | 只看该作者
pe 启动后访问网络共享的问题,如图

疑问:net use 都可以映射成功,说明访问网络共享没问题,但为啥从地址栏不能直接 \ \ ip 访问那?同局域网的xp则无此问题

[ 本帖最后由 he200377 于 2009-12-30 22:47 编辑 ]

未命名.jpg (62.76 KB, 下载次数: 203)

pe启动后访问网络共享的问题

pe启动后访问网络共享的问题
回复

使用道具 举报

2820#
 楼主| 发表于 2009-12-30 23:29:52 | 只看该作者

回复 #2843 he200377 的帖子

PE与XP有所不同。

可以输入
\\192.168.9.101\0pe$
或输入
Y:
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-6-7 16:25

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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