无忧启动论坛

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

[求助] 请教P大,关于native 03pe一级内核的启动问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-9-19 13:48:36 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前的一级内核都是放img里,再压缩成im_,最后套个ISO启动。


最近在解决A5的ACPI蓝屏问题,看到P大的菜单上直接改sif中的dll轻松解决。
我也模仿了一下。
具体是这样改造的:
把img解开扔到ISO里,把ISO再lzma压缩,用map成0xff直接启动。这样虽然能启动一级内核,但是到native的时候,好像不是x盘环境,而且fbwf好像不能工作,导致x盘不可写,也就挂载不了二级内核。这种方法没找到思路。


另外一种方法是学0pe,把内核放img里,然后把img压缩,在map成hd。这种方法也遇到问题了,直接不能启动,因为原版启动方式需要弄成光驱类型,不过看0pe可以这样启动,想知道其中玄机,奈何0pe菜单太复杂,看不懂,,,,


请P大有空帮帮忙。
需要传两种方案的一级内核吗?
2#
发表于 2016-9-19 14:52:05 | 只看该作者
不懂,混个脸熟...
回复

使用道具 举报

3#
发表于 2016-9-19 17:16:48 | 只看该作者
我对native、一级、二级这些习惯代表什么拿得不准,暂不说它们。
0pe里用了winvblk来让img映射的hd保持到保护模式,并成为x:盘。这比较另类,也不说了。

我看老毛桃BootCD_070911.iso里有WINPE.IS_,WINPE.IS_由WINPE.ISO以cab格式压缩而来。
其实可以不压缩,把WINPE.ISO直接改名WINPE.IS_就能启动了。另外txtsetup.si_也可换直接换成不压缩的txtsetup.sif

当WINPE.ISO未压缩时,也许能直接修改其内容,示意脚本如下:

map --mem BootCD_070911.iso (0xff)
map --hook
map WINPE.IS_ (0xfe)
map --hook
dd if=(0xff)/yourfile of=(0xfe)/wxpe/txtsetup.sif
chainloader (0xff)
rootnoverify (0xff)
这里yourfile跟txtsetup.sif最好同体积。

0pe的核心是动态构建的,其它pe也可以一定程度上动态构建其核心。

点评

按照您的思路,确实实现了。但是有个问题。没有保护原来的ISO,结果执行之后原来的ISO就被修改了。。。 我是放硬盘里执行的。 http://pan.baidu.com/s/1o8plfIE 一级内核改造成这样了的,上传了。 菜单  详情 回复 发表于 2016-9-20 01:14
回复

使用道具 举报

4#
 楼主| 发表于 2016-9-19 18:02:40 来自手机 | 只看该作者
这个变通的思路看上去很帅,看看winpe.IS_能不能这样玩。
晚上试下反馈给您
回复

使用道具 举报

5#
 楼主| 发表于 2016-9-20 01:14:49 | 只看该作者
本帖最后由 红毛樱木 于 2016-9-20 01:16 编辑
pseudo 发表于 2016-9-19 17:16
我对native、一级、二级这些习惯代表什么拿得不准,暂不说它们。
0pe里用了winvblk来让img映射的hd保持到 ...


按照您的思路,确实实现了。但是有个问题。没有保护原来的ISO,结果执行之后原来的ISO就被修改了。。。
我是放硬盘里执行的。


http://pan.baidu.com/s/1o8plfIE
一级内核改造成这样了的,上传了。


菜单这样模仿您的,动态改的DLL,先用老五的SRSF6加载SRS,然后再加载PE。
内核是IMG格式的,没有压缩。不知道怎么保护到这个TEST.ISO不会执行之后被修改。
  1. title  TEST A5
  2. find --set-root --ignore-floppies --ignore-cd /BOOT/GRUB/SRSF6 && /BOOT/GRUB/SRSF6
  3. map --mem (bd)/BOOT/TEST.ISO (0xff)
  4. find --set-root --ignore-floppies --ignore-cd /BOOT/TEST.ISO && map /BOOT/TEST.ISO (0xff) || map --mem /BOOT/TEST.ISO (0xff)
  5. map --e820cycles=3
  6. map --hook
  7. map (0xff)/BOOT/03BOOTLN.IMG (hd)
  8. map --hook
  9. cat --locatei="halaacpi.dll" --replace="     hal.dll" (hd-1)/WXPE/TXTSETUP.SIF
  10. cat --locatei="halmacpi.dll" --replace="     hal.dll" (hd-1)/WXPE/TXTSETUP.SIF
  11. cat --locatei="Halmps.dll" --replace="   hal.dll" (hd-1)/WXPE/TXTSETUP.SIF
  12. chainloader (0xff)
  13. rootnoverify (0xff)
复制代码

点评

最终我把test.ISO,压缩成lzma没有被修改了,但是不知道这样做是不是稳妥?  详情 回复 发表于 2016-9-20 01:33
回复

使用道具 举报

6#
 楼主| 发表于 2016-9-20 01:33:59 来自手机 | 只看该作者
红毛樱木 发表于 2016-9-20 01:14
按照您的思路,确实实现了。但是有个问题。没有保护原来的ISO,结果执行之后原来的ISO就被修改了。。。 ...

最终我把test.ISO,压缩成lzma没有被修改了,但是不知道这样做是不是稳妥?
回复

使用道具 举报

7#
发表于 2016-9-20 08:37:08 | 只看该作者
但是有个问题。没有保护原来的ISO,结果执行之后原来的ISO就被修改了。。。我是放硬盘里执行的。


有很多人想要这个写入 ISO 文件的功能,却不知道这本来就支持。你的情况却是:你不想让它写入,但它偏要写入。换句话说,你想要的是一开始让它写入,但用过了之后就期望它 “自动” 恢复原样。这不可能做到,除非你的 ISO 已经 map 到内存里面,那么,写入内存里的 ISO 是不会影响硬盘上的 ISO 的。

最终我把test.ISO,压缩成lzma没有被修改了,但是不知道这样做是不是稳妥?


其实不是由于压缩造成的,而是因为虚拟光驱是在内存中(即,用了 --mem),于是这才不至于写入硬盘上的 ISO。

回复

使用道具 举报

8#
发表于 2016-9-20 10:21:05 | 只看该作者
坐等毛毛更新推送USM。。。
回复

使用道具 举报

9#
发表于 2016-9-20 10:29:22 | 只看该作者
围观学习一下
回复

使用道具 举报

10#
发表于 2016-9-20 11:12:40 | 只看该作者
我给的脚本忘了写路径。map WINPE.IS_ (0xfe)是语法不通的,应为map (0xff)/MINIPE/WINPE.IS_ (0xfe)
BootCD_070911.iso可gzip/lzma压缩,也可不压缩。它被带--mem载入内存映射为 (0xff),以后动 (0xff)相关的东西只动了内存,不会改动盘上的BootCD_070911.iso,这就保护了BootCD_070911.iso。
WINPE.IS_原来在BootCD_070911.iso内,现在在 内存(0xff)里,它被不带--mem映射为(0xfe),此后修改(0xfe)里的东西会影响 (0xff)里的WINPE.IS_,这正需要。
按我的脚本该保护的会保护,该修改的会修改,应该不会有问题。

你的脚本中
map /BOOT/TEST.ISO (0xff) || map --mem /BOOT/TEST.ISO (0xff)
表示先尝试||号前的map /BOOT/TEST.ISO (0xff) ,若失败才尝试||后的map --mem /BOOT/TEST.ISO (0xff)。
压缩过的iso不加--mem会失败,所以压缩后脚本总是等价于map --mem /BOOT/TEST.ISO (0xff),
如果不压缩,则map /BOOT/TEST.ISO (0xff) 有成功的机会,一旦成功,修改(0xff)上的东西就直接动到TEST.ISO了。
总之,你的脚本中对盘上的/BOOT/TEST.ISO一律加--mem就不会破坏/BOOT/TEST.ISO。

点评

这样就有点纠结了。 不压缩LZMA,体积大了; 压缩LZMA,必须map --mem,USB1.1老机器耗时间。 有点纠结了,各有优缺点。  详情 回复 发表于 2016-9-20 13:26
回复

使用道具 举报

11#
 楼主| 发表于 2016-9-20 13:26:21 | 只看该作者
pseudo 发表于 2016-9-20 11:12
我给的脚本忘了写路径。map WINPE.IS_ (0xfe)是语法不通的,应为map (0xff)/MINIPE/WINPE.IS_ (0xfe)
Boot ...

这样就有点纠结了。
不压缩LZMA,体积大了;
压缩LZMA,必须map --mem,USB1.1老机器耗时间。

有点纠结了,各有优缺点。
回复

使用道具 举报

12#
发表于 2016-9-20 13:37:55 | 只看该作者
呵呵,那属于其它问题了,办法总比问题多。

点评

看来我还是老老实实先做个内核单独用吧  详情 回复 发表于 2016-9-20 13:41
回复

使用道具 举报

13#
 楼主| 发表于 2016-9-20 13:41:47 来自手机 | 只看该作者
pseudo 发表于 2016-9-20 13:37
呵呵,那属于其它问题了,办法总比问题多。

看来我还是老老实实先做个内核单独用吧

点评

NT5的PE单核与双核有啥区别???  详情 回复 发表于 2016-9-20 22:50
回复

使用道具 举报

14#
发表于 2016-9-20 22:50:31 | 只看该作者
红毛樱木 发表于 2016-9-20 13:41
看来我还是老老实实先做个内核单独用吧

NT5的PE单核与双核有啥区别???

点评

能识别几个脑袋  详情 回复 发表于 2016-9-21 01:46
回复

使用道具 举报

15#
 楼主| 发表于 2016-9-21 01:46:30 来自手机 | 只看该作者
邪恶海盗 发表于 2016-9-20 22:50
NT5的PE单核与双核有啥区别???

能识别几个脑袋
回复

使用道具 举报

16#
发表于 2016-10-22 12:48:34 | 只看该作者
很好的学习例子。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-20 06:10

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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