无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
12
返回列表 发新帖
楼主: 不点

menu.wee 的一点微调,chenall 留意一下

  [复制链接]
发表于 2016-1-29 20:11:05 | 显示全部楼层
不点 发表于 2016-1-29 18:04
我再解释一下如下菜单的执行细节:

find --set-root /g4d/pwins

刚才,进入wee命令行进行了测试:
用root (hd0,0)命令,出现unknown的提示,该分区是esp分区,看来要对wee修正后才能较好地支持gpt分区硬盘。

点评

你调试得很好。你确定 root 命令显示的分区是 esp 分区吗?它的起始扇区号和分区总扇区数都显示得正确吗? 如果都正确,那就说明是 wee 的 bug,即,wee 无法识别这个分区的文件系统。那就只好让 chenall 来修复  详情 回复 发表于 2016-1-29 21:20
回复

使用道具 举报

 楼主| 发表于 2016-1-29 21:20:34 | 显示全部楼层
qj_tzy 发表于 2016-1-29 20:11
刚才,进入wee命令行进行了测试:
用root (hd0,0)命令,出现unknown的提示,该分区是esp分区,看来要对w ...

你调试得很好。你确定 root 命令显示的分区是 esp 分区吗?它的起始扇区号和分区总扇区数都显示得正确吗?

如果都正确,那就说明是 wee 的 bug,即,wee 无法识别这个分区的文件系统。那就只好让 chenall 来修复 bug 了。

如果显示的分区起始扇区号和分区长度不正确,那说明 (hd0,0) 不一定是 ESP 分区,你可以再试试 (hd0,1) 、(hd0,2) 等等。

点评

1.确定显示的分区是ESP分区,用bootice显示的起始扇区号和分区总扇区数(用winhex显示的两分区的起始位置相减与此扇数总数相等 )应该是正确的,因总扇区数*512/1024/1024/1024,与显示的容量相同。 2.我把g4d移  详情 回复 发表于 2016-1-29 22:39
回复

使用道具 举报

发表于 2016-1-29 22:39:07 | 显示全部楼层
本帖最后由 qj_tzy 于 2016-1-29 23:07 编辑
不点 发表于 2016-1-29 21:20
你调试得很好。你确定 root 命令显示的分区是 esp 分区吗?它的起始扇区号和分区总扇区数都显示得正确吗 ...


1.确定显示的分区是ESP分区,用bootice显示的起始扇区号和分区总扇区数(用winhex显示的两分区的起始位置相减与此扇数总数相等 )应该是正确的,因总扇区数*512/1024/1024/1024,与显示的分区容量相同。

2.我把g4d移动到(hd0,1)分区测试:root (hd0,1)无错误提示,但运行/g4d/grldr,出现wee 17 >

点评

帮不上你。等着 chenall 处理吧。  详情 回复 发表于 2016-1-29 22:58
回复

使用道具 举报

 楼主| 发表于 2016-1-29 22:58:46 | 显示全部楼层
qj_tzy 发表于 2016-1-29 22:39
1.确定显示的分区是ESP分区,用bootice显示的起始扇区号和分区总扇区数(用winhex显示的两分区的起始位 ...

帮不上你。等着 chenall 处理吧。

点评

我试了一下,测试是双硬盘其中一个是GPT分区,一个是MBR的 启动WEE63直接进入按C键进入命令行 测试访问GPT分区正常,再执行find命令 再次访问GPT磁盘出现异常了,被识别为MBR分区了. 我看了代码没有找到原因  详情 回复 发表于 2016-1-30 13:37
您的回复,让我明白了一些东西,非常感谢!  详情 回复 发表于 2016-1-29 23:08
回复

使用道具 举报

发表于 2016-1-29 23:08:28 | 显示全部楼层
本帖最后由 qj_tzy 于 2016-1-29 23:10 编辑
不点 发表于 2016-1-29 22:58
帮不上你。等着 chenall 处理吧。


您的回复,让我明白了一些东西,非常感谢!

同时,也非常希望 chenall 能出手解决这一问题。
回复

使用道具 举报

发表于 2016-1-30 13:37:29 | 显示全部楼层
不点 发表于 2016-1-29 22:58
帮不上你。等着 chenall 处理吧。

我试了一下,测试是双硬盘其中一个是GPT分区,一个是MBR的

启动WEE63直接进入按C键进入命令行

测试访问GPT分区正常,再执行find命令

再次访问GPT磁盘出现异常了,被识别为MBR分区了.

我看了代码没有找到原因,通过HEXDUMP查看0x3e8000可以看到分区表不对.
看0x3e9000是0扇区的内容(正常情况下应该是GPT的分区表内容).

也不知是哪里错了,

如果是单单一个GPT硬盘没发现问题..


点评

有没有试试,不执行 find 命令,是否一切正常? 试试手动执行 root 命令切换到 hd1,然后再用 root 命令切换回到 hd0,这样 gpt 是否也会乱掉了? 测试的目的,暴露问题,缩小范围。  详情 回复 发表于 2016-1-30 14:13
回复

使用道具 举报

 楼主| 发表于 2016-1-30 14:13:40 | 显示全部楼层
chenall 发表于 2016-1-30 13:37
我试了一下,测试是双硬盘其中一个是GPT分区,一个是MBR的

启动WEE63直接进入按C键进入命令行

有没有试试,不执行 find 命令,是否一切正常?

试试手动执行 root 命令切换到 hd1,然后再用 root 命令切换回到 hd0,这样 gpt 是否也会乱掉了?

测试的目的,暴露问题,缩小范围。

点评

就是只要root (hd1) 再root (hd0)切换一下就不行了.  详情 回复 发表于 2016-1-30 14:33
回复

使用道具 举报

发表于 2016-1-30 14:33:38 | 显示全部楼层
不点 发表于 2016-1-30 14:13
有没有试试,不执行 find 命令,是否一切正常?

试试手动执行 root 命令切换到 hd1,然后再用 root 命 ...


就是只要root hd1 再root hd0切换一下就不行了.

点评

看了 list partitions 函数的代码,但无法准确地确定哪些是你改动的。 仅凭直觉,以及纯代码方面的逻辑关系,感觉上述代码可能有问题。 当 current slice 被设定为 0xff 即 -1 后,第一个 cmp 的结果将总是  详情 回复 发表于 2016-1-30 16:31
回复

使用道具 举报

 楼主| 发表于 2016-1-30 16:31:25 | 显示全部楼层
chenall 发表于 2016-1-30 14:33
就是只要root hd1 再root hd0切换一下就不行了.
  1.         cmpl        $0xff, ABS(EXT_C(current_slice))
  2.         je        100f
  3.         movl        $0xFF, ABS(EXT_C(current_slice))
  4.         cmpb        $0xee, 4(%esi)
  5.         jne        100f
复制代码

看了 list partitions 函数的代码,但无法准确地确定哪些是你改动的。

仅凭直觉,以及纯代码方面的逻辑关系,感觉上述代码可能有问题。

当 current slice 被设定为 0xff 即 -1 后,第一个 cmp 的结果将总是: 相等,

于是总是跳转到 100 标号的 mbr 老代码去执行,不再执行 gpt 代码。

我不确定我是否看准了。只是模模糊糊的,仅供参考。

回复

使用道具 举报

发表于 2016-1-30 16:52:46 | 显示全部楼层
本帖最后由 chenall 于 2016-1-31 12:24 编辑

把这一行注释掉目前看起来正常..

这些代码是我加的吗?太久了没什么印像了,没有注释现在也想不起来为什么当时要这一行了.

EDIT: 另外看了前后的代码,感觉以下好像是多余的??


  1.         cmpl        $0xff, ABS(EXT_C(current_slice))
  2.         je        100f
  3.         movl        $0xFF, ABS(EXT_C(current_slice))
复制代码

点评

关键是得把原来的代码找回来,才能比较。否则的话,那就只有摸着石头过河了。 我反正好长时间没有接触了,对此已经没有印象。 一切都得靠你自己调试了。  详情 回复 发表于 2016-1-30 17:17
回复

使用道具 举报

 楼主| 发表于 2016-1-30 17:17:53 | 显示全部楼层
chenall 发表于 2016-1-30 16:52
把这一行注释掉目前看起来正常..

这些代码是我加的吗?太久了没什么印像了,没有注释现在也想不起来为什么 ...

关键是得把原来的代码找回来,才能比较。否则的话,那就只有摸着石头过河了。

我反正好长时间没有接触了,对此已经没有印象。

一切都得靠你自己调试了。

回复

使用道具 举报

发表于 2016-1-31 10:09:25 | 显示全部楼层
看了相关的代码发现这些是没有用处的,直接注释掉了

新的版本上传在这里
https://github.com/chenall/grubutils/releases/tag/2016-01-31

点评

下载不了,能否上传一份到其他地方,谢谢!  详情 回复 发表于 2016-1-31 11:43
preset_menu_used 中的一些文件名和路径,是大写字母,是我的疏忽,应该统一采用小写字母。 这个菜单本来只考虑了 mbr 的情况,不知道是否适用于 gpt 的情况,你可以仔细研究,加以改进完善。 weesetup 里面  详情 回复 发表于 2016-1-31 10:43
回复

使用道具 举报

 楼主| 发表于 2016-1-31 10:43:09 | 显示全部楼层
chenall 发表于 2016-1-31 10:09
看了相关的代码发现这些是没有用处的,直接注释掉了

新的版本上传在这里

preset_menu_used 中的一些文件名和路径,是大写字母,是我的疏忽,应该统一采用小写字母。

这个菜单本来只考虑了 mbr 的情况,不知道是否适用于 gpt 的情况,你可以仔细研究,加以改进完善。


weesetup 里面的 menu.wee 依旧是几年前的版本,需要更新。

回复

使用道具 举报

发表于 2016-1-31 11:43:42 | 显示全部楼层
chenall 发表于 2016-1-31 10:09
看了相关的代码发现这些是没有用处的,直接注释掉了

新的版本上传在这里

下载不了,能否上传一份到其他地方,谢谢!
回复

使用道具 举报

发表于 2016-1-31 12:23:45 | 显示全部楼层
附件传到这里

wee63.zip

19.52 KB, 下载次数: 37

点评

gpt+mbr双硬盘启动该wee的情况,测试正常。  详情 回复 发表于 2016-1-31 20:15
回复

使用道具 举报

发表于 2016-1-31 12:48:04 | 显示全部楼层
下载测试gpt分区单硬盘,启动正常。谢谢!

晚上回家再测试一下gpt+mbr双硬盘启动情况。
回复

使用道具 举报

发表于 2016-1-31 20:15:29 | 显示全部楼层

gpt+mbr双硬盘启动该wee的情况,测试正常。
回复

使用道具 举报

发表于 2016-2-2 10:12:15 | 显示全部楼层
wee有启动扇区备份文件的功能没有。比如磁盘的1扇区备份出来,wee启动它。

点评

启动一个标准的 55 AA 引导扇区,是基本功能,当然不能没有。 grldr、ntldr、bootmgr、io.sys、vmlinuz 等等很多复杂格式都能在 wee 下识别,更不用说单扇区的简单格式了。 看看里面的 readme,就了解大致用法  详情 回复 发表于 2016-2-2 11:04
回复

使用道具 举报

 楼主| 发表于 2016-2-2 11:04:19 | 显示全部楼层
freesoft00 发表于 2016-2-2 10:12
wee有启动扇区备份文件的功能没有。比如磁盘的1扇区备份出来,wee启动它。

启动一个标准的 55 AA 引导扇区,是基本功能,当然不能没有。

grldr、ntldr、bootmgr、io.sys、vmlinuz 等等很多复杂格式都能在 wee 下识别,更不用说单扇区的简单格式了。

看看里面的 readme,就了解大致用法了。

点评

好的,谢谢! 主要是用wee少,有时候用一下grub,看到不点说在硬盘上用wee更好,所以想以后如果在硬盘上用转到wee算了,想尝试一下。 另外, title 4. Vboot find --set-root /vbootldr /vbootldr 这个是支持那  详情 回复 发表于 2016-2-2 15:21
回复

使用道具 举报

发表于 2016-2-2 15:21:20 | 显示全部楼层
不点 发表于 2016-2-2 11:04
启动一个标准的 55 AA 引导扇区,是基本功能,当然不能没有。

grldr、ntldr、bootmgr、io.sys、vmlinu ...

好的,谢谢!
主要是用wee少,有时候用一下grub,看到不点说在硬盘上用wee更好,所以想以后如果在硬盘上用转到wee算了,想尝试一下。
另外,
title 4. Vboot
find --set-root /vbootldr /vbootldr
这个是支持那个vhd版区的vboot功能吗?是否占用wee代码多,如果多,个人感觉去掉支持它也可以,启动vhd系统,win7以后支持,只是想xp用的时候使用这个vboot,但是xp已经淘汰了,而且vboot也收费的。不如去掉支持,减少些wee代码大小,如果不占用什么留着也可以。不知道其他人用不用vboot,我是没有使用过。

点评

最难支持的是 vmlinuz ,所花费的代码最多。其它格式的支持都很简单,与 vmlinuz 相比可以忽略不计。 并未特别去支持 vbootldr。它很可能就是 ntldr 格式,既然 wee 支持 ntldr,也就支持了 vbootldr。  详情 回复 发表于 2016-2-2 19:01
回复

使用道具 举报

 楼主| 发表于 2016-2-2 19:01:02 | 显示全部楼层
freesoft00 发表于 2016-2-2 15:21
好的,谢谢!
主要是用wee少,有时候用一下grub,看到不点说在硬盘上用wee更好,所以想以后如果在硬盘上 ...

最难支持的是 vmlinuz ,所花费的代码最多。其它格式的支持都很简单,与 vmlinuz 相比可以忽略不计。

并未特别去支持 vbootldr。它很可能就是 ntldr 格式,既然 wee 支持 ntldr,也就支持了 vbootldr。

回复

使用道具 举报

发表于 2016-3-18 11:57:49 | 显示全部楼层
不点真仔细啊。。。敬佩。。。
回复

使用道具 举报

发表于 2019-10-24 06:20:50 | 显示全部楼层
https://github.com/chenall/grubu ... ee/preset_menu_used

find --set-root /boot/grub/grldr
/boot/grub/grldr
timeout 1
default 0

title 1. DOS/Windows
    find --set-root --active /boot/BCD /bootmgr
    find --set-root --active /boot.ini /ntldr
    find --set-root --active /command.com /io.sys
    find --set-root --active /command.com /kernel.sys
    find --set-root /boot/BCD /bootmgr
    find --set-root /boot.ini /ntldr
    find --set-root /command.com /io.sys
    find --set-root /command.com /kernel.sys

title 2. GRUB4DOS
    find --set-root /boot/grub/grldr /boot/grub/grldr
    find --set-root /boot/grub.exe /boot/grub.exe
    find --set-root /boot/grldr /boot/grldr
    find --set-root /grldr /grldr

title 3. Plop Boot Manager
    find --set-root /boot/grub/plpbt.bin /boot/grub/plpbt.bin

title 4. Vboot
    find --set-root /vbootldr /vbootldr

title 5. Burg
    find --set-root /buldr /buldr

title 6. Previous MBR
    (hd0)1+1

title 7. Command Line
    exit
回复

使用道具 举报

发表于 2019-10-24 06:21:48 | 显示全部楼层
本帖最后由 hilsonma 于 2019-10-30 06:01 编辑

wee63.mbr 建议使用 求道者 编译的版本 http://bbs.wuyou.net/forum.php?m ... page%3D1&page=3 (在28楼)
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 22:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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