无忧启动论坛

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

基于grub4dos的合盘,新突破,★11.14新增续尾法

  [复制链接]
跳转到指定楼层
1#
发表于 2009-11-13 15:11:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
=========================
09.11.13

pe区研究合盘的高手多,转一下。详见:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=142163&page=2#pid1829891

使用grub4dos-0.4.4-2009-11-13.zip的--replace功能,可以方便修改文件,如果介质不可写,可考虑载入内存后修改。其意义在于在一定程度上使grub4dos支持了变量功能。

至少就”合盘“而言,这是重要突破。合盘者得研究一下了。

原帖由 chenall 于 2009-11-12 23:35 发表
...
说明下为什么要加这个功能,主要是为了使用方便,像启动PE1.X时。还有需要使用变量的时候可以把文件先加载到内存然后替换掉。
比如要把几个PE1.X合在一起,按照以前的方式,需要多个启动文件(SETUPLDR.BIN)。
有了这个就不需要了,呵呵
只要一个SETUPLDR.BIN就通用(这个SETUPLDR.BIN需要没有自校验)。
一个例子(未测试,理论上可用)
title WXPE and WINNT.XPE
map --mem /WXPE/SETUPLDR.BIN (rd)
cat --locate=I386 --replace=WXPE (rd)+1
cat --locate=WINNT.SIF --replace=WINNT.XPE (rd)+1
chainloader (rd)+1
root ()

title TYPE and TYPE.XPE
map --mem /WXPE/SETUPLDR.BIN (rd)
cat --locate=I386 --replace=TYPE (rd)+1
cat --locate=WINNT.SIF --replace=TYPE.XPE (rd)+1
chainloader (rd)+1
root ()

=========================
09.11.14 《grldr续尾法》
为演示grub4dos的高级命令和程式菜单技术,这里提供一个新方法,我称之为《grldr续尾法》。

原理是在grldr的尾部续上一些东西,在grub4dos菜单中用高级命令甚至程式菜单去访问。这样可以减少文件数,甚至单文件化。并且便于藏入ud、置于网启服务器端等。

这是对老毛桃911pe改造后的结构:
H:\
│  grldr
│  
└─MINIPE
        OP.WIM
        WINPE.INI
        WINPE.IS_
注意启动相关文件只有一个grldr,原来setupldr.bin、ntdetect.com、winnt.xpe等都不见了(被封装到grldr尾部了)。WINPE.IS_(核心)、OP.WIM(外置)、WINPE.INI(配置)保持原版没动,其它东西精简掉了。这样清爽些吧。
即使合盘,也不难做到所有启动相关文件只有一个grldr。并且,grldr和核心WINPE.IS_可以轻易藏入ud、置于网启服务器端成为本地启动/网启两用等等。

这是grldr内置菜单:

  1. ;说明:
  2. ;1、使grldr内置菜单后体积是512的整数倍,例如体积为222720字节(即435扇区),不满时可通过增加本菜单注释内容凑满。
  3. ;2、复制原版启动光盘iso得到iso副本,对副本保留其中setupldr.bin、ntdetect.com、winnt.xpe、WINPE.IS_四个文件,删除其它文件。
  4. ;3、将副本中WINPE.IS_用同体积空白文件替换,目的是减少压缩后体积,WINPE.IS_实际长度为26655412。
  5. ;4、副本iso用gzip压缩后体积为208897,占409个扇区,
  6. ;5、将副本iso续于grldr尾部,得到最终的大体积grldr,作为最终iso的引导文件。
  7. debug off
  8. clear
  9. pause --wait=0 PE loader by Pseudo 2009.11.14
  10. pause --wait=0 Loading /MINIPE/WINPE.IS_...
  11. map --mem=0xB000 /GRLDR (rd)
  12. map --mem (rd)435+409,208897 (0xff)
  13. map --hook
  14. dd if=(cd)/MINIPE/WINPE.IS_ of=(0xff)/MINIPE/WINPE.IS_
  15. chainloader (0xff)
  16. ;这里随便写些注释使grldr内置菜单凑满435扇区...
  17. ;123456789012345678901234567890123456789012345678901234567890
  18. ;123456789012345678901234567890123456789012345678901234567890
  19. ;123456789012345678901234567890123456789012345678901234567890
  20. ;123456789012345678901234567890123456789012345678901234567890
  21. ;12345678901234567890123456
复制代码
附件是模板,使用UltraISO工具,用老毛桃911原版(MD5:9354b013057548d1282451008309b7e9  BootCD.ISO)里的WINPE.IS_,OP.WIM替换模板里的同名文件即可使用。
直接刻盘、量产为usb-cdrom。或用bootice装grub4dos到U盘mbr,然后把iso中文件放入u盘即可。
——sorry,好像写死了(cd)/MINIPE/WINPE.IS_,只能刻盘、量产为usb-cdrom,如果放入u盘、硬盘得自己相应修改一下这里的(cd)。参见#52楼

附件只是演示原理,故只针对老毛桃911原版,有兴趣者可以参考此法原理DIY自己的PE,有关数值对应关系已经给出,相应变动即可。后面有时间我可以提供更通用的模板。

整个改造过程不动刀子,没有改动原版文件内容,比较忠实于原版,只是做引导文件单一化处理。
许多pe都可以这么处理。

[ 本帖最后由 pseudo 于 2009-11-16 17:34 编辑 ]

grldr911.rar

295.55 KB, 下载次数: 516, 下载积分: 无忧币 -2

评分

参与人数 2无忧币 +10 收起 理由
879792799 + 5 很给力!
gues1688 + 5 很给力!

查看全部评分

63#
发表于 2024-5-10 19:55:31 | 只看该作者
谢谢分享
回复

使用道具 举报

62#
发表于 2022-6-17 23:02:17 | 只看该作者
大师独创
回复

使用道具 举报

61#
发表于 2022-6-17 19:43:32 | 只看该作者
学习了,非常好的东西。
回复

使用道具 举报

60#
发表于 2022-6-17 13:02:23 | 只看该作者
支持了
回复

使用道具 举报

59#
发表于 2010-2-8 23:39:14 | 只看该作者
呵呵。。不错。。佩服。。
回复

使用道具 举报

58#
 楼主| 发表于 2009-12-6 21:33:51 | 只看该作者

回复 #57 dhbtljj 的帖子

只给出示例以说明原理和可行性,要做通用模板得编程了
回复

使用道具 举报

57#
发表于 2009-12-6 19:29:09 | 只看该作者
学习中~~~~牛人真多
回复

使用道具 举报

56#
发表于 2009-12-6 17:29:41 | 只看该作者
请教大师:
你们2位都是大师,就别客气了!

能否给个做好的硬盘启动模板呀,谢谢!
我的PE是在硬盘FAT32分区的,WXPE\TQXZ.IS_
回复

使用道具 举报

55#
 楼主| 发表于 2009-12-5 01:05:17 | 只看该作者
原帖由 天涯海角1216 于 2009-12-4 19:37 发表
大师:
如果用硬盘使用,应该如何修改?用什么工具?
谢谢!

大师不在。
我代为解答:
#1楼chenall给出的菜单,可以用于从硬盘启动。
我给的菜单,用Ultraedit改为#52楼的,可用于从硬盘启动。此外,使用chenall的新版grldr,还支持将(cd)改为(bd),但新版体积有变,相关数据要相应调整。
回复

使用道具 举报

54#
发表于 2009-12-4 19:37:27 | 只看该作者
大师:
如果用硬盘使用,应该如何修改?用什么工具?
谢谢!
回复

使用道具 举报

53#
发表于 2009-12-2 15:46:57 | 只看该作者
好帖子怎能下沉,顶上来!!!

评分

参与人数 1无忧币 -20 收起 理由
zhxy9804 -20 恶意灌水

查看全部评分

回复

使用道具 举报

52#
发表于 2009-11-16 18:31:08 | 只看该作者

回复 #52 pseudo 的帖子

描蓝处是我适应fbinst启动而添加的。现为了减少干扰因素,在原硬盘隐藏分区grldr引导来测试,但不好意思,我这里制作还有点问题,目前只能启动到命令行。

[ 本帖最后由 zxw 于 2009-11-17 15:48 编辑 ]
回复

使用道具 举报

51#
 楼主| 发表于 2009-11-16 17:31:06 | 只看该作者

兼顾光启、U启

原帖由 zxw 于 2009-11-15 15:38 发表
...描蓝处是我增加的一句,不知是否恰当?...

描蓝处可删?试试这样子能不能兼顾光启、U启:

  1. ;说明:
  2. ;1、使grldr内置菜单后体积是512的整数倍,例如体积为222720字节(即435扇区),不满时可通过增加本菜单注释内容凑满。
  3. ;2、复制原版启动光盘iso得到iso副本,对副本保留其中setupldr.bin、ntdetect.com、winnt.xpe、WINPE.IS_四个文件,删除其它文件。
  4. ;3、将副本中WINPE.IS_用同体积空白文件替换,目的是减少压缩后体积,WINPE.IS_实际长度为26655412。
  5. ;4、副本iso用gzip压缩后体积为208897,占409个扇区,
  6. ;5、将副本iso续于grldr尾部,得到最终的大体积grldr,作为最终iso的引导文件。
  7. debug off
  8. clear
  9. pause --wait=0 PE loader by Pseudo 2009.11.14
  10. pause --wait=0 Loading /MINIPE/WINPE.IS_...
  11. map --mem=0xB000 /GRLDR (rd)
  12. map --mem (rd)435+409,208897 (0xff)
  13. map --hook
  14. dd if=()/MINIPE/WINPE.IS_ of=(0xff)/MINIPE/WINPE.IS_
  15. chainloader (0xff)
  16. ;这里随便写些注释使grldr内置菜单凑满435扇区...
  17. ;123456789012345678901234567890123456789012345678901234567890
  18. ;123456789012345678901234567890123456789012345678901234567890
  19. ;123456789012345678901234567890123456789012345678901234567890
  20. ;123456789012345678901234567890123456789012345678901234567890
  21. ;1234567890123456789012345678
复制代码
回复

使用道具 举报

50#
 楼主| 发表于 2009-11-16 17:30:02 | 只看该作者
原帖由 chenall 于 2009-11-15 19:29 发表
附加到GRLDR,
我倒是觉得这样做更麻烦,,,
还不如直接打包为一个ISO文件,更简单。

如果是指整体启动iso,这是现成的。
如果是指将准备附加到grldr的东西打包为一个iso文件单独放置,那么外面就多了个文件。
附加到grldr是不改变原来格局,只把引导相关部分单文件化的方式之一。
回复

使用道具 举报

49#
发表于 2009-11-15 19:29:05 | 只看该作者
附加到GRLDR,
我倒是觉得这样做更麻烦,,,
还不如直接打包为一个ISO文件,更简单。
回复

使用道具 举报

48#
发表于 2009-11-15 16:58:53 | 只看该作者
好方法!
我试试,谢谢楼主!
回复

使用道具 举报

47#
 楼主| 发表于 2009-11-15 16:50:54 | 只看该作者

回复 #47 zxw 的帖子

描红处(0xff)前空一格
描蓝处你比我有经验。不过建议先删掉,后面(hd-1,0)处根据具体某台机器情况直接写死为(fd0)、(hd0,0)、(hd0,3)之类。

我觉得成功之前往往怎么弄都弄不好,成功之后往往怎么弄都弄不坏。所以先务求在特定环境尽快成功,有成功先例再考虑通用性。
回复

使用道具 举报

46#
发表于 2009-11-15 15:38:54 | 只看该作者

回复 #44 pseudo 的帖子

谢谢P大的热心指导。
我测试的是天意的PE.安装在U盘。
grldr内置菜单凑满到435扇区,
副本iso压缩后为376912,占737个扇区。

内置菜单为:
debug off
clear
pause --wait=0 PE loader by Pseudo 2009.11.14
pause --wait=0 Loading /WXPE/TYPE.IS_...
checkrange 0xff3f80 read 0x82b9 || map (fd0) (hd)
map --mem=0xB000 /GRLDR (rd)
map --mem (rd)435+737,376912(0xff)
map --hook
dd if=(hd-1,0)/WXPE/TYPE.IS_ of=(0xff)/MINIPE/TYPE.IS_
chainloader (0xff)
描红处修改是否正确?描蓝处是我增加的一句,不知是否恰当?

[ 本帖最后由 zxw 于 2009-11-15 15:47 编辑 ]
回复

使用道具 举报

45#
发表于 2009-11-15 15:35:31 | 只看该作者
原帖由 pseudo 于 2009-11-15 13:39 发表
原理上字体、背景等等,随便什么都可以,甚至整个pe都可以做成单个grldr文件,不过那样意义不大。
我主要是提倡引导相关东西单文件化,即使合盘也可以做到。总之,按这样的理念去做会有利于清爽:
统一引导文 ...

合盘直接引导iso就够清爽的了:(
现在的麻烦大概就是在光盘使用 Grub 菜单的中文字体
回复

使用道具 举报

44#
发表于 2009-11-15 14:59:18 | 只看该作者
等以后的通用版本,,,
回复

使用道具 举报

43#
 楼主| 发表于 2009-11-15 14:56:09 | 只看该作者
原帖由 zxw 于 2009-11-15 14:27 发表
最开始我请教提问之前就是这样压缩的。
看来还要多研究一下。

附件是拼接前的两个文件以及用来执行拼接的批处理。拼接后就得到#1楼模板的最终grldr文件。

拼接前.rar

281.87 KB, 下载次数: 158, 下载积分: 无忧币 -2

回复

使用道具 举报

42#
发表于 2009-11-15 14:27:39 | 只看该作者
原帖由 pseudo 于 2009-11-15 13:20 发表

用7-zip工具以gzip格式将其压缩 ...

最开始我请教提问之前就是这样压缩的。
看来还要多研究一下。
回复

使用道具 举报

41#
 楼主| 发表于 2009-11-15 13:39:56 | 只看该作者

回复 #41 玄天 的帖子

原理上字体、背景等等,随便什么都可以,甚至整个pe都可以做成单个grldr文件,不过那样意义不大。
我主要是提倡引导相关东西单文件化,即使合盘也可以做到。总之,按这样的理念去做会有利于清爽:
统一引导文件,用于引导的文件、目录尽量少,盘上目录清爽,单独存在的文件一般都是可删除组件,否则尽量打包合并
回复

使用道具 举报

40#
发表于 2009-11-15 13:23:03 | 只看该作者
原帖由 pseudo 于 2009-11-14 23:32 发表

有所不同。

以往启动的是整个iso,iso内含启动相关文件setupldr.bin、ntdetect.com、winnt.xpe等。整个iso被启动后,有的pe可能找不到“外置程序”。整体启动iso可能慢、耗内存。
现在被grldr启动的是不含 ...

是有可能,不过直接将ISO中的外置程序剪切到合盘上还是没问题的,这样够简单
也许将字体和背景文件内置进去或许可解决光盘版的中文和背景图问题?
回复

使用道具 举报

39#
 楼主| 发表于 2009-11-15 13:20:44 | 只看该作者
原帖由 nu852 于 2009-11-15 10:01 发表
請問沒有 "匯編知識", 是否也可以個人將 原来 setupldr.bin、ntdetect.com、winnt.xpe 等文件,
续上 grldr 的尾部.
有否一步一步的教程, 讓個人也嘗試 將文件, 续上 grldr 的尾部.

不需要什么汇编语言知识。

把老毛桃的iso文件BootCD_070911.ISO用UltraISO工具打开,删除文件,保留setupldr.bin、ntdetect.com、winnt.xpe、WINPE.IS_四个文件(我给的模版中好像还多了个winpe.ini忘记删掉),再按#35楼方法弄个同体积的空白文件WINPE.IS_覆盖iso内同名文件,就得到要附于grldr尾部的iso文件。

用7-zip工具以gzip格式将其压缩(只是为了减少体积,其实不压缩也可以),假设压缩后文件为BootCD_070911.ISO.gz,那么,将其续于grldr后的dos命令是
  1. copy /b grldr+BootCD_070911.ISO.gz /b
复制代码

这样就得到一个由两个文件拼接起来的grldr了。grub4dos在使用这个grldr时,会忽略后面拼接的部分。

当然,拼接前对grldr应处理一下:
一是内置好菜单,不内置也可以,但外面多个菜单文件,稍微不爽,另外菜单外置找起来困难,还容易找错。
二是扇区对齐,就是说使grldr的体积刚好为512的整数倍,这样便于将来定位访问后面拼接的BootCD_070911.ISO.gz部分。由于菜单内置,可以通过增减菜单内容,例如加些垃圾注释来调整grldr的大小达到扇区对齐。
原帖由 zxw 于 2009-11-15 10:22 发表
谢谢,我就是用7-zip压缩的,启动无反应

用7-zip工具以gzip格式将其压缩
回复

使用道具 举报

38#
发表于 2009-11-15 10:22:40 | 只看该作者

回复 #31 pseudo 的帖子

谢谢,我就是用7-zip压缩的,启动无反应
回复

使用道具 举报

37#
发表于 2009-11-15 10:01:41 | 只看该作者
請問沒有 "匯編知識", 是否也可以個人將 原来 setupldr.bin、ntdetect.com、winnt.xpe 等文件,
续上 grldr 的尾部.
有否一步一步的教程, 讓個人也嘗試 將文件, 续上 grldr 的尾部.
回复

使用道具 举报

36#
 楼主| 发表于 2009-11-15 00:13:10 | 只看该作者

回复 #36 go2 的帖子

去年的圣诞版、今年的〇peZip扩展版二合一090620.zip和ftp上最新版(可能后面还有点变动)是0PE比较好的版本。

不一定有时间再出个终结版,有可能是不了了之的淡出。

谢谢go2兄和其他朋友关心支持。
回复

使用道具 举报

35#
发表于 2009-11-14 23:59:57 | 只看该作者
收到,谢谢,P大,现在的0PE是否来个终结。

或说0PE将会以新的高度出现?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 19:38

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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