无忧启动论坛

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

0PE:可剪裁统一PE

    [复制链接]
1#
发表于 2010-6-22 22:05:49 | 显示全部楼层
近来的几个疑问?
原帖见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=163626&page=2#pid1984364,向pseudo和plantsoot等高手求助ing。

下午按pseudo和plantsoot的续尾法在grldr上续了个plpbt.img.gz,得到grldr,按pseudo的重新生成可启动ISO的工具.rar中的向导生成了.iso,在虚拟机Virtual PC中测试通过,但在本机上,通过在boot.ini中追加c:\grldr="plpbt"(本地NTFS分区),出错,只能到grub提示符下,请问我这样制作的grldr是不能在NTFS上工作?还是别的原因??

之所以要在grldr上续了个plpbt.img.gz,主要相通过plpbt,简单的实现光盘和U盘启动,避免每次都修改BIOS,当然也希望借助续尾法实现单文件化,传统的方法grldr(内置菜单调用plpbt.img)+plpbt.img可以在NTFS上通过,已测试!

顺便问一下,0PE能否象其他PE一样(据称可实现,没试过)安装到本地硬盘或者移动硬盘(两者都是NTFS分区),有什么需要特别注意的?试过将0PE安装到本地硬盘或者移动硬盘(两者都是NTFS分区)都失败了,

我现在的标配:

一个小U:0PE内置ud分区,专用
1G-U:0PE外置,以备不时之需,可以临时删掉0PE等维护工具以扩充空间
40G移动硬盘:尝试0PE安装到移动硬盘(NTFS分区)失败,目前为ntldr引导的 真正的U盘LPC(XP SP3精简版)+自己定制的Ghost启动盘

grldr续plpbt.img.gz菜单:
debug off
clear
pause --wait=0 PE loader by nerdpal 2010.06
map --mem=0xB000 /GRLDR (rd)
map --mem (rd)435+162,82584 (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

图和附件,请移步上面的链接。
回复

使用道具 举报

2#
发表于 2010-6-22 23:36:53 | 显示全部楼层
原帖由 pseudo 于 2010-6-22 22:38 发表
1. 这个
map --mem=0xB000 /GRLDR (rd)
中,文件名GRLDR有无大小写方面问题?

2. 尝试去掉
=0xB000

3. 用grldr冒名顶替ntldr试试。


多谢pseudo和plantsoot,我刚才又仔细测试了一下,似乎我附件的那个.iso中的grldr提取后追加到boot.ini中在NFTS下是可以引导的,可能是我下午的时候有点急、有些仓促,把续尾前、后的grldr搞混了,将续尾前的grldr放在了c:\下,刚才按“文件名GRLDR有无大小写方面问题”时,发现之前c:\grldr的大小有误。
回复

使用道具 举报

3#
发表于 2010-8-29 17:44:58 | 显示全部楼层
关于0PE整体启动,请教一下:
1、7.25版的0PE整体启动时,提示找不到/SRS/1.ZIP,按任意键后,出现一个选择界面,最后可以启动到PE桌面,8.28版则没有提示找不到/SRS/1.ZIP,是自动找到1.ZIP了?还是没有找到后自动忽略了?
2、8.28版的整体启动测试结果:
1)、本地硬盘全NTFS分区,系统盘在c:,将0PE复制到D:\0PE\0PE.iso,解开grldr到c:\,设置好boot.ini后可以正常启动到PE桌面,即本地硬盘的0PE整体启动正常;
2)、U启(FAT21,可见区),将0PE复制到K:\0PE\0PE.iso,解开grldr到K:\,用BootICE设置grldr引导后可以正常启动到PE桌面,这里U盘盘符为K,即U启的0PE整体启动正常;
3)、介质换成移动硬盘(NTFS,可见区),与2)同样的操作,只能启动到CMD界面,
界面提示:
查找桌面背景并创建内存盘B:,大约4~5分钟后提示:
Windows找不到文件‘PECMD07’,接着又是几分钟后提示:
Error loading Virtual Disk Driver:由于超时时间已过,该操作返回。
X:\WXPE\Systems32>
请问如何实现移动硬盘(NTFS,可见区)上的0PE的整体启动??
多谢!!
回复

使用道具 举报

4#
发表于 2010-8-29 20:17:29 | 显示全部楼层
多谢pseudo,等测试后再回复。。。
回复

使用道具 举报

5#
发表于 2010-8-30 10:53:25 | 显示全部楼层
之前的测试,是自己写的grldr菜单,引导0PE,现在直接解开0PE.iso中的grldr到移动硬盘(显示为NTFS5),错误更多了,还不能找到SRS下的文件。。。出错的地方似乎更多了,还是到CMD下,在X:\WXPE\Systems32>下dir,不能发现不能识别移动硬盘,按pseudo的提示,应该是没有把iso存储成不连续的,事实上我的0PE.iso却是是连续存放的。

我现在的问题是怎么实现iso的不连续存储??
——在网上没有查到可行的方案,毕竟在移动硬盘剩余空间很大的时候,NTFS本来就不易产生碎片啊,我总不能先用文件将移动硬盘写满。。。再。。。

估计要求不连续存储的原因是
——map 不加--mem参数进行仿真,要求对应的映像文件在硬盘上一定要连续存放,用map --mem应该总是能够成功的(但要求你的内存足够大)。
回复

使用道具 举报

6#
发表于 2010-8-30 17:10:06 | 显示全部楼层
呵呵,
上午的时候,做了一下测试:自己写的grldr菜单,引导移动硬盘下的/0PE/0PE.iso,如下:
title [2] 启动0PE 2010(整体)
find --set-root /0PE/0PE.ISO
map --mem /0PE/0PE.ISO (0xff)
map --hook
chainloader (0xff)
此时,0PE整体启动到PE桌面,可是资源管理器中只能看到本地硬盘(NTFS),不能看到我的移动硬盘(NTFS)。。。

“在X:\WXPE\Systems32>下dir,不能识别移动硬盘,是不是因为它是ntfs?”
——可以dir本地硬盘(NTFS),不能看到我的移动硬盘(NTFS)。。。

“如果是fat能识别吗?这点需要对照一下。”
——不是很明白怎么操作?同样的配置,我的U启(FAT32)不加 --mem是可以正常工作的。

pseudo 的作品很好,我几乎集齐了所有的0PE版本,也多谢你的热心帮助!
回复

使用道具 举报

7#
发表于 2010-8-30 21:53:53 | 显示全部楼层
U启0PE后,接入移动硬盘不能识别,设备管理器截图

在DiskGenius中查看移动硬盘

在本机Windows环境中,移动硬盘完全可见,是不是PE的USB驱动的事儿啊?
回复

使用道具 举报

8#
发表于 2010-8-31 07:00:16 | 显示全部楼层
@pseudo,freesoft00

在家里的HP机上测试了一下,在移动硬盘(NTFS)上启动0PE(之前是在联想的机子上测试的),“不加 --men、0PE连续存储”却一切正常,可以启动到PE桌面,只是移动硬盘被识别为D:(本地硬盘全部NTFS,原分为c:,d:,...h:),现在有些盘符交错,不过终于可以到PE桌面了,这样看来,

不是PE的USB驱动的事儿;
移动硬盘(NTFS)的0PE制作应该也没有问题;
应该是与freesoft00的问题相同。

多谢2位的指点,移动硬盘(NTFS)的制作也就基本这样了,之前出于应用的需要,试图把手边所有的介质上都加上PE,以后还是在16G的小U(FAT32)上做U启了。
回复

使用道具 举报

9#
发表于 2010-12-4 16:41:05 | 显示全部楼层

关于通用IMG、ISO启动

一直以来用pseudo 的ISO/IMG启动模块,效果很好,只是为了使U盘目录清爽些,采用了直接在0PE目录中放0PE.iso的方式,而不是将MENU.0PE和0PE.GZ解开,放到相应的文件夹中

调用:

title [8] 启动任意ISO(扩展接口,默认:pe.iso)
find --set-root /0PE/0PE.ISO
map /0PE/0PE.ISO (0xff) || map --mem /0PE/0PE.ISO (0xff)
map --hook
write 0x60300 0x60300
write 0x60100 6
configfile (0xff)/BOOT/GRUB/MENU.0PE

这样带来的问题是:

0PE在执行
ls (bd)/BOOT/IMGS/ || echo
时,只能找到加载的0PE.iso中的/BOOT/IMGS/,而不能找到我本地的/BOOT/IMGS/

目前采用的办法:

title [8] 启动任意ISO(扩展接口,默认:pe.iso)
uuid
ls (bd)/BOOT/IMGS/ || echo

pause
find --set-root /0PE/0PE.ISO
map /0PE/0PE.ISO (0xff) || map --mem /0PE/0PE.ISO (0xff)
map --hook
#find --set-root /BOOT/GRUB/MENU.0PE
#这行表示绕过0PE第一菜单界面,直接调用其菜单项
write 0x60300 0x60300
#指定调用0PE第6菜单项(加载/PE.ISO或任意输入ISO)
write 0x60100 6
configfile (0xff)/BOOT/GRUB/MENU.0PE



在Input PATH here:后输入(hd0,0)/,后按Tab键,得到本地目录和文件。。。



请问,
1、是否有更方便的方式找到我本地的/BOOT/IMGS/;
2、除了uuid(临时搜索的),是否还有其他方式可以更好的枚举本地的硬盘和分区??

另外参考pseudo的0PE,sratlf的通用启动IMG/ISO菜单,chenall的ntboot,自己做了一个通用的IMG/ISO启动,但是现在还只是构思阶段。。。



希望实现:
1、枚举本地的硬盘和分区,按3的方式得到相应分区的目录和文件。。。
2、列出/BOOT/GRUB/下的文件,可以象0PE一样,输入文件名后,自动附加/BOOT/GRUB/,然后加载
3、输入:如(hd0,0)/,后按Tab键,得到(hd0,0)/目录和文件。。。需要识别以“/”和“(”开头。。。
4、自动识别扩展名,默认:.iso和.is_自动按ISO加载,其他按IMG加载;若文件名;iso、文件名;img,则强制按ISO、IMG加载。。。
5、按Q可以返回主菜单。。。

其实pseudo的0PE的ISO/IMG启动模块,确实已经很强大了,我自己弄的ISO加载 功能实在是。。。更希望pseudo的0PE的ISO/IMG启动模块加入以上功能,我等就有福了,呵呵

多谢pseudosratlfchenall 等的无私共享!

[ 本帖最后由 nerdpal 于 2010-12-4 16:49 编辑 ]
回复

使用道具 举报

10#
发表于 2010-12-4 17:02:24 | 显示全部楼层
呵呵,是啊,其实pseudo已经想到了,
0PE在执行
ls (bd)/BOOT/IMGS/ || echo

只是我的调用方式另类了些。。。

0PE的专用菜单真的很难懂啊
回复

使用道具 举报

11#
发表于 2010-12-5 09:41:28 | 显示全部楼层

回复 #2155 nerdpal 的帖子

pseudo的0PE的ISO/IMG启动模块,才注意到 接口:

#1
title ISO
#这样启动ISO可找到硬盘不蓝屏
#这行表示绕过0PE第一菜单界面,直接调用其菜单项
write 0x60300 0x60300
#指定调用0PE第6菜单项(加载/PE.ISO或任意输入ISO)
write 0x60100 6
WENV call write (md)0x301+1 ${tmp}
#指定串${tmp}的长度,如/ISO/XP_CON.ISO长为15个字符
WENV get tmp && WENV calc len=${?_GET}
WENV call write 0x60360 ${len}
find --set-root /0PE/0PE.ISO
map /0PE/0PE.ISO (0xff) || map --mem /0PE/0PE.ISO (0xff)
map --hook
configfile (0xff)/BOOT/GRUB/MENU.0PE



[ 本帖最后由 nerdpal 于 2010-12-5 10:18 编辑 ]
回复

使用道具 举报

12#
发表于 2011-4-15 15:26:38 | 显示全部楼层

实现0PE.ISO在“加点”的目录中启动

为了让小U更清爽些(当然fbinst可以做到很清爽,但感觉拖入大文件较慢),试着把0PE放在“加点”的目录中启动成功。

grldr:
set PEISO=/../BOOT/0PE.ISO

title 1. 0PE(整体启动)
find %PEISO% && configfile /../BOOT/IMGS/0peldr.lst
...

0peldr.lst:(红色为添加部分)
if /i "%PEISO:~,4%"=="/../" set PEISO=/E2E2~1%PEISO:~3%
write --offset=200 (hd-1,0)/BAT/_ENV.BAT set PEISO=%PEISO%\r\n

另外如果不想设置PEISO,此时可以把PEISO放到任意的路径,当PE找不到外置,启动到CMD窗口时,默认的AUTORUN_.CMD停在:EXT2_X,可以DIY一个RUN_.CMD,手工设置PEISO,并继续启动PE到桌面。

相比0PE自带的xp_shell(有时候收集启动资源较慢,或者本地没有XP,而0PE.ISO一般是存在的),找不到外置只是因为PEISO的路径不对,没有很好的映射,一旦设置好了,就可以‘完美’启动了。

RUN_.CMD:(仅列出了修改部分)
::::::::::手动更改外置.iso, nerdpal 2011.01
:::::用法: RUN_.CMD [\BOOT\IMGS\0PE.iso [CHS/ENG]]
set PEISO=%1
set LNG=%2

goto :EXT2_X


:EXT2_X
if not defined PEISO set PEISO=\BOOT\0PE.ISO
::if exist X:\WXPE\setPEISO.cmd (
:: call X:\WXPE\setPEISO.cmd
::)


[ 本帖最后由 nerdpal 于 2011-4-17 09:29 编辑 ]
回复

使用道具 举报

13#
发表于 2011-4-15 19:55:42 | 显示全部楼层
原帖由 pseudo 于 2011-4-15 15:55 发表

能不能简化为:

set PEISO=/../BOOT/0PE.ISO
configfile /../BOOT/MENU.0PE


在MENU.0PE中适当添加判断的话,有助于启动时找到外置。

[ 本帖最后由 nerdpal 于 2011-4-17 09:23 编辑 ]
回复

使用道具 举报

14#
发表于 2011-4-18 10:58:36 | 显示全部楼层
原帖由 zxw 于 2011-4-17 11:57 发表
petools也可以藏入这个畸形目录。
要在REFRESH.INI添加修改。
118528


多谢,收下了。我一般直接用0PE.ISO整体启动,清爽、防毒,速度也很快,只要PEISO设置对,就可以找到外置。。。

又写了一个:
#PEISO=/BOOT./0PE.ISO
if /i "%PEISO:~-9,-7%"=="./" set PEISO=%PEISO:~,-9%~1/%PEISO:~-7%
...
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-11 12:43

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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