无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6833|回复: 14

[求助] 请教:在0PE中添加了WIN7PE,如何在Win7PE中显示0PE.ISO挂载的光盘

  [复制链接]
发表于 2014-7-23 14:23:22 | 显示全部楼层 |阅读模式
本帖最后由 stevenldj 于 2014-7-23 16:39 编辑

我在 0PE.ISO 的 BOOT 目录中添加了“我心如水”的 Win7PE(添加了 bootmgr 等文件)然后将 0PE.ISO 和  grldr 两个文件放在了 UD 中。

从 UD 启动后,进入 0PE 可以看到 0PE.ISO 挂载出来的光驱,里面有 PETOOLS,但进入 Win7PE 中却看不到这个光驱,无法使用 PETOOLS。

请问如何才能在 Win7PE 中显示 0PE.ISO 挂载出来的光驱,我在 Win7PE 中添加了 WinVBlock 驱动,也看不到光驱。
 楼主| 发表于 2014-7-23 23:09:16 | 显示全部楼层
pseudo 发表于 2014-7-23 17:38
我写有fbinstool教程,里面有速成例子。
把例子中的8pe换成7pe+petools就好了。0pe.iso里不用包含petools ...

不知道 p 大说的是哪一个 FbinstTool 教程,在 P 大的帖子列表中没有“FbinstTool 教程”这样标题的帖子,浏览了 P 大最近的几个帖子,和 8PE 相关的大多是分区表项法、EFI 启动之类的教程,还是不懂如何在 7PE 中显示 0PE.ISO 挂载的光驱,请 p 大明示。
回复

使用道具 举报

发表于 2014-7-23 17:38:10 | 显示全部楼层
我写有fbinstool教程,里面有速成例子。
把例子中的8pe换成7pe+petools就好了。0pe.iso里不用包含petools了。

点评

不知道 p 大说的是哪一个 FbinstTool 教程,在 P 大的帖子列表中没有“FbinstTool 教程”这样标题的帖子,浏览了 P 大最近的几个帖子,和 8PE 相关的大多是分区表项法、EFI 启动之类的教程,还是不懂如何在 7PE 中显  详情 回复 发表于 2014-7-23 23:09
回复

使用道具 举报

发表于 2014-7-24 19:42:28 | 显示全部楼层
1.5版以后不建议将0PE.ISO解开,你试试。iso外面可增加petools目录放新增外置工具。

无论如何,启动时按一下空格就不会停在nativeshell。

修改efi分区格式类型,改成0x1B、0x1E之类,有利于识别隐藏区文件。

多img动态映射原理上大致可以,但没多大必要,不如把多个img都扔进一个分区,用run选择启动某个。
现在菜单项是支持静态映射多个分区的。没采用动态方式是感觉分区表不宜经常改。
回复

使用道具 举报

发表于 2014-7-24 09:48:10 | 显示全部楼层
某帖有以下内容,提供了线索:


★0PE_NBv1.5.1(2014-04-05)测试:
0PE_NBv1.5.1(2014-04-05).zip (1.05 KB, 下载次数: 2404) (含安装方法教程,FbinstTool_1.607.2014.331.exe)请自行更新FbinstTool为1.607.2014.513,并阅读【教程】FBinstTool新功能:映射ufi分区,使ud里的8PE能EFI启动。关于支持efi启动的8pe的部署,请按该教程里的“速成参考例子”操作,先尽快成功再变通。在#2316楼5大提供了一个补丁,涉及SISO及内置其中的SRUN,请自己打上(替换同名文件即可)。

注意:涉及分区表项法映射UFI分区的操作,可使用0pe菜单项,也可使用fbinsttool新增的映射UFI分区相关功能。但暂时不要混合使用两者。
回复

使用道具 举报

 楼主| 发表于 2014-7-24 18:59:17 | 显示全部楼层
看了教程,明白怎么处理了。既然 UEFI 分区可以自由编辑,我想把 0PE.ISO 中的文件也解压到 UEFI 分区中去启动,不再将 0PE.ISO 放入 UD 了。结果,当 UEFI 分区不隐藏的时候,可以正常启动,当 UEFI 分区隐藏的时候,启动到 Native Shell 的时候就停住了,显示找不到 PE.WIM 文件。这个可有方法解决?

有个想法:既然可以搞出一个 UEFI 分区,也就是一个 FAT32 分区(efi.img),那应该还可以搞出更多的 FAT32 分区(更多的 img 文件,弄出10个来),再想个办法在启动的时候修改分区表,将要启动的分区(img 文件)作为第一主分区激活(动态主分区),然后启动进入 PE。各个 FAT32 分区(img 文件)中存放不同的 PE 文件(解开的 PE 文件,启动的时候不用再调入内存了,直接从主分区读取文件并启动,像硬盘启动一样),这样就可以在各个 FAT32 分区中自由编辑 PE 文件了,岂不很方便。不知道这样的想法可以实现吗?
回复

使用道具 举报

 楼主| 发表于 2014-7-24 19:58:45 | 显示全部楼层
本帖最后由 stevenldj 于 2014-7-24 20:13 编辑

弄多个分区主要是想吧 PE 文件解开启动,方便修改,不然每个 PE 都是一个包,修改时要解包,修改完了还要重新打包,有些 PE 还是一个包套一个包,很麻烦。

再一个原因,就是 PE 启动的时候要创建内存盘,然后再将包文件解压到内存盘,再从内存盘启动,这样一方面对内存要求高,另一方面浪费加载时间。如果所有 PE 文件都散放在 U 盘分区中,启动的时候直接读取,不用消耗太多内存,也减少启动时间,岂不很好。

再一个原因,就是 PE 的 ISO 文件通常需要连续存放,否则就要调入内存挂载,所以常常需要碎片整理操作。如果将 PE 散放在 U 盘分区中,则散开的文件无需连续存放,岂不省事。

感觉 U 盘的分区表经常修改应该没什么大影响啊,不像硬盘容易出现零扇区损坏的问题,U 盘都有自动屏蔽坏块的功能啊。

不知 P 大感觉如何?
回复

使用道具 举报

发表于 2014-7-24 23:23:41 | 显示全部楼层
大致可以这样做:
1、grldr内置菜单:

#非ud启动则重启,假定u盘被识别为hd0。
if not exist (hd0)/fb.cfg reboot

title 1 启动PE1.img
#用事先保存的首扇区文件MBR1动态覆盖u盘首扇区
dd if=(hd0)/MBR1 of=(hd0)+1
#启动ufi区bootmgr
rootnoverify (hd0,1)
chainload (hd0,1)/boot/bootmgr

title n 启动PEn.img
#用事先保存的首扇区文件MBRn动态覆盖u盘首扇区
dd if=(hd0)/MBRn of=(hd0)+1
#启动ufi区bootmgr
rootnoverify (hd0,1)
chainload (hd0,1)/boot/bootmgr

2、ud里放多个img,每次映射一个,例如映射第n个img(假定名为PEn.img)为UFI区(假定对应(hd0,1)),然后设法备份u盘首个物理扇区(512字节)到文件MBRn,MBRn放入ud,然后取消UFI映射。
对所有img逐个处理,得到多个首扇区文件,这些首扇区文件用于启动不同img。当它们覆盖到首扇区时,分区表动态还原到当时映射ufi后的情形。

我只能给个大概,具体要自己实践、完善。

点评

感觉修改整个首扇区不是很灵活,如果想把 PE1.IMG 写入到 MBR 的第一分区,把 TOOL.IMG 写入到第二分区,再动态添加其他 IMG 到第三分区,方便在 PE 中显示,单只编辑这个扇区文件就够折腾的了。 我在 Grub4Dos  详情 回复 发表于 2014-7-25 08:33
回复

使用道具 举报

 楼主| 发表于 2014-7-25 08:33:21 | 显示全部楼层
本帖最后由 stevenldj 于 2014-7-25 08:48 编辑
pseudo 发表于 2014-7-24 23:23
大致可以这样做:
1、grldr内置菜单:


感觉修改整个首扇区不是很灵活,如果想把 PE1.IMG 写入到 MBR 的第一分区,把 TOOL.IMG 写入到 MBR 的第二分区,再动态添加其他 IMG 到 MBR 的第三分区,方便在 PE 中显示,单只编辑这些个扇区文件就够折腾的了。

我在 Grub4Dos 的命令行下用 blocklist /pe1.img 显示出来的“地址”、“大小”信息和 BootICE 中显示的分区信息一样。只是不知道如何将这些信息用 Grub4Dos 正确的写入到分区表中。

如果 Grub4Dos 支持将 file 直接映射到 MBR 就好了,在 Grub4Dos 中有 partnew 和 parttype 两个命令可以操作分区表,但是不会用,不知到能不能实现 file 映射到 MBR 的操作。希望 Grub4Dos 给 map 命令添加一个 -mbr 参数(map 命令可以检测文件是否连续存放,相对安全一些)。

P 大有没有好方法?
回复

使用道具 举报

 楼主| 发表于 2014-7-25 08:59:38 | 显示全部楼层
本帖最后由 stevenldj 于 2014-7-25 09:08 编辑

看了 P 大的 MPart.bat,好复杂的感觉。不知道 ud、uplus 和 verbose 参数怎么用。

看了 M1.LST 中的 “生成UFI分区表项” 菜单项,大致可以依葫芦画出瓢来。

如果将 MPart.bat 放到 /BOOT/GRUB/ 中,是否可以在不启动 0PE 的情况下直接调用?其中的 ud、uplus 和 verbose 参数该怎么用?
回复

使用道具 举报

发表于 2014-7-25 11:23:45 | 显示全部楼层
支持ud和U+深度隐藏两种情形,通过第X个参数是ud还是uplus来区分,你该用ud。

verbose 参数用于决定操作过程中途是有对话、信息显示,还是不显示、不对话。
前者便于你了解情况,后者适合那些调用了mpart.bat又不想让人知道他调用了mpart.bat的人。

MPart.bat是比较独立、通用的。

点评

执行 mpart.bat 后可以挂载 img,再次执行 mpart.bat 后就是卸载 img 了,有没有参数可以只挂载不卸载。 下面是 FBA 测试文件,可以在 Qemu 中测试:  详情 回复 发表于 2014-7-25 13:59
回复

使用道具 举报

 楼主| 发表于 2014-7-25 13:59:00 | 显示全部楼层
本帖最后由 stevenldj 于 2014-7-25 14:03 编辑
pseudo 发表于 2014-7-25 11:23
支持ud和U+深度隐藏两种情形,通过第X个参数是ud还是uplus来区分,你该用ud。

verbose 参数用于决定操作 ...


执行 mpart.bat 后可以挂载 img,再次执行 mpart.bat 后就是卸载 img 了,有没有参数可以只挂载不卸载。



下面是 FBA 测试文件,可以在 Qemu 中测试:

mpart.fba.7z (259.6 KB, 下载次数: 2)
回复

使用道具 举报

 楼主| 发表于 2014-7-25 19:46:10 | 显示全部楼层
我把 MPart.bat 中的 :do 过程改了一下,不再判断 pn 了,应该可以了。

:do
::if exist pn goto :hasitem || goto :noitem
goto :noitem
回复

使用道具 举报

发表于 2014-7-25 20:31:48 | 显示全部楼层
在verbose状态,
还没有分区表项时,有提示
pause Press <ESC> key to Cancel or <Enter> key to continue...
按回车可创建分区表项。

已有分区表项时,有提示
pause Press <ESC> key to Cancel or <Enter> key to Clean or <Space> key to Refresh...
按空格可以刷新分区表项,刷新指先清除后写入,可以达到目的。按回车则清除。
回复

使用道具 举报

 楼主| 发表于 2014-7-27 08:46:04 | 显示全部楼层
谢谢 P 大指点,我已经实现了我需要的功能,非常感谢!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 10:38

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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