无忧启动论坛

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

准备对 grub4dos 的启动过程进行微调,请留意

  [复制链接]
跳转到指定楼层
1#
发表于 2014-10-9 09:11:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 不点 于 2014-10-10 15:59 编辑

最近 mdyblog 报告,说 wee 下启动 grub.exe 没能传递当前 root 值到新的环境。我看了 wee 的代码,发现 wee 已经做了传递的工作,只是 grub4dos 启动逻辑过于复杂,才导致 grub4dos 忽略了 wee 所传递的 root 信息。

我们知道,grub4dos 的文件结构是 “头部+主体”。头部是用汇编语言写成的,具有搜索的功能。头部还有一个作用,那就是设定主体的 install_partition 以及 config_file(还可能有别的少量设置,我们本次不讨论)。

当初这两项设置之所以要在头部进行,是因为想直接支持 gnu grub legacy 的 pre_stage2,属于兼容性的考量。现在我们没有必要再去兼容 grub legacy 了,所以,头部的这两项设定,可以挪到主体(即 pre_stage2)里面,这样启动逻辑更加清晰,不至于产生混乱。兼容的越多,就越混乱。所以,我们头部代码今后不再支持加载原版的 grub legacy 里面的 pre_stage2(即,只支持加载 grub4dos 自己的 pre_stage2)。

本次改动就是准备撤销头部关于 install_partition 和 config_file 的两项设定,改为在主体中进行设定。

一般情况下不影响大家的使用。受影响的范围大概会是极少数对 grub4dos 进行深度定制的应用者。

调整之后会更方便那些深入研究 grub4dos 的应用者们。调整之后,install_partition 和 boot_drive 都可以被外部程序修改。


附件是个测试版,请 mdyblog 看看有没有问题。

说明:外部程序可以修改 boot_drive 和 install_partition(位于 grub4dos 的内部变量区),修改后的值将用来强制设置为启动设备。换句话说,启动 grub4dos 之前,用户可以控制启动后的 boot 设备和 root 设备为用户自己设定的 boot_drive 和 install_partition,只需把自己要设置的值注入到 grub4dos 主体部分的内部变量区,然后启动修改后的 grub4dos 即可达到目的。

对于 mdyblog 来说,在 wee 中通过设置 root 然后启动 grub.exe,也应该可以把 root 传递给新的 grub4dos 环境。

grub4dos-0.4.5c-2014-10-10.7z

258.41 KB, 下载次数: 24, 下载积分: 无忧币 -2

这个是0.4.5,可以提交了

grub4dos-0.4.6a-2014-10-10.7z

267.8 KB, 下载次数: 14, 下载积分: 无忧币 -2

这个是 0.4.6,如果没问题,也可以提交

评分

参与人数 1无忧币 +5 收起 理由
糊涂 + 5 很给力!

查看全部评分

2#
发表于 2014-10-9 09:16:09 | 只看该作者
关注中……
感谢不点大师提醒!
支持
回复

使用道具 举报

3#
发表于 2014-10-9 09:18:38 | 只看该作者
WEE本地写入一直在使用,相当方便!
回复

使用道具 举报

4#
发表于 2014-10-9 09:55:49 | 只看该作者
越来越好了。。。。辛苦了
回复

使用道具 举报

5#
发表于 2014-10-9 10:33:49 | 只看该作者
顶起! 支持!!
回复

使用道具 举报

6#
发表于 2014-10-9 21:12:42 | 只看该作者
先占个位置。
回复

使用道具 举报

7#
发表于 2014-10-10 13:29:26 | 只看该作者
可以了。  屏幕截图00139.png (2.52 KB, 下载次数: 0)
下载附件
26 秒前 上传




有没有0.46?

为什么2个版本 长时间 并存? 还要用户选择,不太好。
用户直接总是用最新版本的好。

就一个0.46 就好了,而0.45c作为旧版好了。

回复

使用道具 举报

8#
 楼主| 发表于 2014-10-10 13:41:16 | 只看该作者
谢谢你的报告。不等着你报告成功,我不敢对 0.4.6 进行改动。

0.4.5是个参照物。也属于一套稳定的系统了。0.4.6的革新,需要有参照物才行。当用户发现0.4.6不行而0.4.5行的时候,那么就提醒开发者,有bug需要解决了。

待到某个时刻,0.4.6能够全面取代 0.4.5的时候,那时才会只维护一个版本。

回复

使用道具 举报

9#
 楼主| 发表于 2014-10-10 16:02:12 | 只看该作者
本帖最后由 不点 于 2014-10-10 16:15 编辑

既然 0.4.5 的已经证明没问题,那就可以提交了。源代码整理了一下,需要重新下载。编译结果应该与昨天一样。

今天上载了 0.4.6,估计也没问题的吧。试试看,如果没问题,也可以提交。

回复

使用道具 举报

10#
发表于 2014-10-12 11:39:04 | 只看该作者
今天上载了 0.4.6,估计也没问题的吧。试试看,如果没问题,也可以提交。

已经提交更新。
回复

使用道具 举报

11#
发表于 2014-10-13 10:16:58 | 只看该作者
编译后的文件怎么大了很多啊?是否跟编译版本有关?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 14:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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