无忧启动论坛

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

grub4dos-0.4.6a-2014-01-16

[复制链接]
跳转到指定楼层
1#
发表于 2014-1-16 18:54:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请提交。

1.  当 FDD 模式的 u 盘(有 BPB,没有分区表)被 BIOS 分配驱动器号 0x80 时,映射为 0x00,
同时屏蔽驱动器号 0x80(避免通过 BIOS 读 u 盘,有可能死机)。
    这一更改也避免了 Issue 162 读 64 位逻辑扇区的问题。
    FDD 模式的 u 盘被识别为硬盘,问题多多。已经发现的问题是执行 find,不返回 (hd0);
精简 PE 加载映像文件死机。

2.  解决了FDD 模式的 u 盘,执行 find 时返回 (fd0,n) 的问题。
   
3.  修正了 menu.lst 中 0PE.ISO 的默认位置。

4.  usb2.0 驱动通过菜单或命令行,使用 usb --init 加载。

5.  usb2.0 驱动增加了对集线器(HUB)的支持。
    若加载失败,可重启试一试。
   
6.  读多扇区失败时,会给出提示:拔出 u 盘然后再插入,按任意键继续。
    此时会重新初始化 u 盘,并采用每次读 1 扇区方式从失败处继续。

7.  修正了启动分区识别问题。
    增加:从 PBR 加载时,若 MBR 采用 Windows NT 5.x/6.x MBR 或 UltraISO USB_HDD+/USB_ZIP+ ,
则可以正常传递启动分区。

8.  增强文件名识别,便于重命名。
    a.  文件名可以任意大小写,但是在 grldr.mbr 及 grldr.pbr 中必须大写。
    b.  在 grldr.pbr 中:
        FAT16、FAT32 分区使用 8.3 格式;
        ext2、exFAT、NTFS 分区使用 12 字符。
    c.  在 grldr.mbr 中:使用 12 字符。
        为了兼容各类分区,建议文件名不要大于 8 字符,后缀不要大于 3 字符。若有分隔符“.”,不可省略。

grub4dos-0.4.6a-2014-01-16.7z.rar

291.34 KB, 下载次数: 411, 下载积分: 无忧币 -2

评分

参与人数 1无忧币 +5 收起 理由
神的马甲 + 5 赞一个!

查看全部评分

2#
发表于 2014-1-16 19:08:47 | 只看该作者
强大,这下更好玩了
回复

使用道具 举报

3#
发表于 2014-1-16 19:57:13 | 只看该作者
新版本在神舟台式机上加载USB驱动没有错误提示,应该是正确加载了驱动吧?
回复

使用道具 举报

4#
发表于 2014-1-16 20:32:27 来自手机 | 只看该作者
强大……………下载试试着…
回复

使用道具 举报

5#
发表于 2014-1-16 23:00:55 | 只看该作者
本帖最后由 不点 于 2014-1-17 01:02 编辑

yaya 对 find 命令的修改,有一个比较严重的错误,就是,人为地限定了 partition ID 的范围。这破坏了一直以来的搜索逻辑(破坏了兼容性),即,忽略 partition ID 字节。

mygamexxx 报告了这一问题。

我在 multimbr 里面的那个 grldr 中修复了这一问题。等我整理之后,可以发布一个用于 0.4.5c 的补丁,提交之后,再打到 yaya 的 0.4.6a 上。

0.4.5c 的补丁已经弄好了。chenall 检验一下是否有问题。如果没问题,就可以提交了。

--------------

刚刚看了 yaya 的补丁,发现 yaya 已经去除了有问题的代码,改用 probe_mbr 来实现了,所以已经不存在我前面提到的问题了。

chenall 只需检查 0.4.5c 的补丁是否有问题。0.4.5c 的补丁,只适合打在 0.4.5c 上,不适合打在 0.4.6a 上。

grub4dos-0.4.5c-2014-01-16.7z

269.6 KB, 下载次数: 63, 下载积分: 无忧币 -2

0.4.5c 的补丁可以提交了

回复

使用道具 举报

6#
 楼主| 发表于 2014-1-17 10:28:21 | 只看该作者
新版本在神舟台式机上加载USB驱动没有错误提示,应该是正确加载了驱动吧?

是的。有问题时,会有错误提示,显示10秒(视乎不精确),按任意键跳过。

点评

联想台式机 加载USB驱动,显示扫描USB设备后,自动进入命令行但键盘失去响应,应该是加载不成功,但没有提示。  详情 回复 发表于 2014-1-18 13:08
回复

使用道具 举报

7#
发表于 2014-1-17 10:56:56 | 只看该作者
yaya大大,建议支持 grldr.mbr 及 grldr.pbr 改名吧,不知道是不是操作的问题,改名后无法加载,双硬盘直接丢失。
回复

使用道具 举报

8#
 楼主| 发表于 2014-1-17 11:09:57 | 只看该作者
不清楚把  grldr.mbr 及 grldr.pbr 改名有何用?
回复

使用道具 举报

9#
发表于 2014-1-17 15:39:15 | 只看该作者
源码已更新...
同时稍微修改了一下build脚本方便编译.
之前
使用colinux + cofs 的情况下编译GRUB4DOS需要很长时间,(这是COFS的问题)
新的版本,只要设置GRUB4DOS_TEMP变量到内存盘目录就可以加快编译速度
比如.
export GRUB4DOS_TEMP=/tmp/grub4dos-temp
回复

使用道具 举报

10#
 楼主| 发表于 2014-1-17 17:03:09 | 只看该作者
export GRUB4DOS_TEMP=/tmp/grub4dos-temp

上述语句,无论使用与否,编译成功。但是编译结果不知道保存到哪里了,找不到!

另外,语句要加在什么地方?
回复

使用道具 举报

11#
发表于 2014-1-17 17:07:51 | 只看该作者
本帖最后由 不点 于 2014-1-17 17:11 编辑

看看编译结果是不是在这里: /tmp/grub4dos-temp


我猜,chenall 的意思是说,假如你不想让结果保存到 /tmp/grub4dos-temp ,你就需要在 make 之前先执行:

export GRUB4DOS_TEMP=<你的结果文件夹>

这样,就会把编译结果保存到你指定的位置了。

回复

使用道具 举报

12#
 楼主| 发表于 2014-1-17 17:12:44 | 只看该作者
搜索后没有此目录。Windows 7 环境。

点评

我只是修改了之前的grub4dos-temp为${GRUB4DOS_TEMP} 其它的没有变.如果没有GRUB4DOS_TEMP变量则和之前的一样. 如果源码在COFS目录中,添加这个变量之后你会发现编译速度明显快很多. export GRUB4DOS_TEMP=/tm  详情 回复 发表于 2014-1-17 17:30
回复

使用道具 举报

13#
发表于 2014-1-17 17:22:57 | 只看该作者
不要搜索,直接在 shell 命令窗口找 /tmp/ 目录。
回复

使用道具 举报

14#
发表于 2014-1-17 17:30:18 | 只看该作者
2011yaya2007777 发表于 2014-1-17 17:12
搜索后没有此目录。Windows 7 环境。

我只是修改了之前的grub4dos-temp为${GRUB4DOS_TEMP}
其它的没有变.如果没有GRUB4DOS_TEMP变量则和之前的一样.

如果源码在COFS目录中,添加这个变量之后你会发现编译速度明显快很多.

export GRUB4DOS_TEMP=/tmp/grub4dos-temp
编译之后的文件在${GRUB4DOS_TEMP}/../目录下,上面的例子就是/tmp,自己用linux命令处理下.
cp /tmp/grub4dos*.7z /mnt/cofs/






回复

使用道具 举报

15#
发表于 2014-1-17 17:47:33 | 只看该作者
本帖最后由 不点 于 2014-1-17 17:49 编辑

chenall 你的 build 脚本犯了个 shell 语法错误:

正确的应该是这样:

[ -z "$GRUB4DOS_TEMP" ] && GRUB4DOS_TEMP=/tmp/grub4dos-temp

你的等号两边带有空格,这是错误的,无法执行。

默认时就应该采用 /tmp/grub4dos-temp,免得还得手动设置它。


编译完成之后,应该打印一条信息,通知结果文件的位置在哪里。


点评

编程习惯了留空,汗,忘记了.. 得再改一下.顺便要把生成的文件放在$GRUB4DOS_TEMP目录下,这样可以避免一些问题. 再加上一个提示..  详情 回复 发表于 2014-1-17 18:50
回复

使用道具 举报

16#
 楼主| 发表于 2014-1-17 18:30:40 | 只看该作者
本帖最后由 2011yaya2007777 于 2014-1-17 18:53 编辑

不在命令行输入:export GRUB4DOS_TEMP=/tmp/grub4dos-temp
执行结果是:
dev@grub4dos_dev:/mnt/cofs/yaya-0.4.6a$ make
./build
./build: line 16: GRUB4DOS_TEMP: not found
./build: line 87: can't create /grub4dos_r371.diff: Permission denied
./build: line 87: can't create /Get_Source_of_This_Build.txt: Permission denied
make[1]: Entering directory `/home/dev'
make[1]: *** No rule to make target `clean'.  Stop.
make[1]: Leaving directory `/home/dev'
./build: line 95: ./configure: not found
make: *** [build_default] Error 127


在命令行输入:export GRUB4DOS_TEMP=/tmp/grub4dos-temp
编译成功。
再执行:
dev@grub4dos_dev:/$ cp /tmp/grub4dos*.7z /mnt/cofs/
看到复制内容了,在 colinux 目录 。

在哪里加入什么语句,可以省去命令行输入:
export GRUB4DOS_TEMP=/tmp/grub4dos-temp
cp /tmp/grub4dos*.7z /mnt/cofs/


点评

如果按照我的建议,默认时就是 GRUB4DOS_TEMP=/tmp/grub4dos-temp 因此不需要做任何工作。 chenall 正在修复 bug。  详情 回复 发表于 2014-1-17 19:07
回复

使用道具 举报

17#
发表于 2014-1-17 18:50:51 | 只看该作者
不点 发表于 2014-1-17 17:47
chenall 你的 build 脚本犯了个 shell 语法错误:

正确的应该是这样:

编程习惯了留空,汗,忘记了..
得再改一下.顺便要把生成的文件放在$GRUB4DOS_TEMP目录下,这样可以避免一些问题.
再加上一个提示..
回复

使用道具 举报

18#
发表于 2014-1-17 19:07:10 | 只看该作者
2011yaya2007777 发表于 2014-1-17 18:30
不在命令行输入:export GRUB4DOS_TEMP=/tmp/grub4dos-temp
执行结果是:
dev@grub4dos_dev:/mnt/cofs/ya ...

如果按照我的建议,默认时就是

GRUB4DOS_TEMP=/tmp/grub4dos-temp

因此不需要做任何工作。

chenall 正在修复 bug。

回复

使用道具 举报

19#
发表于 2014-1-17 19:15:43 | 只看该作者
好了,改了一下,默认使用/tmp/grub4dos-temp目录编译 生成的压缩文件和源码放在一起(保持和以前的版本一样)

点评

不知道老大的最新版编译环境在哪下载呢? 搜到以下两个地方,都不是最新版的: http://www.chenall.net/post/grub4dos_dev/ http://code.google.com/p/grub4dos-chenall/  详情 回复 发表于 2014-1-18 19:21
回复

使用道具 举报

20#
 楼主| 发表于 2014-1-17 19:47:13 | 只看该作者
本帖最后由 2011yaya2007777 于 2014-1-17 20:02 编辑

重新下载后,一切 OK !
回复

使用道具 举报

21#
发表于 2014-1-18 13:08:13 | 只看该作者
2011yaya2007777 发表于 2014-1-17 10:28
是的。有问题时,会有错误提示,显示10秒(视乎不精确),按任意键跳过。


联想台式机
加载USB驱动,显示扫描USB设备后,自动进入命令行但键盘失去响应,应该是加载不成功,但没有提示。 使用的命令是usb --init
回复

使用道具 举报

22#
发表于 2014-1-18 19:21:28 | 只看该作者
chenall 发表于 2014-1-17 19:15
好了,改了一下,默认使用/tmp/grub4dos-temp目录编译 生成的压缩文件和源码放在一起(保持和以前的版本一样)

不知道老大的最新版编译环境在哪下载呢?
搜到以下两个地方,都不是最新版的:

http://www.chenall.net/post/grub4dos_dev/

http://code.google.com/p/grub4dos-chenall/
回复

使用道具 举报

23#
发表于 2014-1-18 21:10:16 | 只看该作者
这个只是改源码,.....
回复

使用道具 举报

24#
 楼主| 发表于 2014-1-20 10:20:46 | 只看该作者
联想台式机
加载USB驱动,显示扫描USB设备后,自动进入命令行但键盘失去响应,应该是加载不成功,但没有提示。 使用的命令是usb --init

怪哉!返回命令行怎么会没有提示信息?
重启一次试一试。关机再重启。

点评

可能是成功了,但会导致USB键盘失去响应,有什么办法吗?  详情 回复 发表于 2014-1-20 12:29
回复

使用道具 举报

25#
发表于 2014-1-20 12:29:54 | 只看该作者
2011yaya2007777 发表于 2014-1-20 10:20
怪哉!返回命令行怎么会没有提示信息?
重启一次试一试。关机再重启。

可能是成功了,但会导致USB键盘失去响应,有什么办法吗?
回复

使用道具 举报

26#
发表于 2014-1-20 14:35:36 | 只看该作者
支持更新
回复

使用道具 举报

27#
 楼主| 发表于 2014-1-20 15:42:37 | 只看该作者
可能是成功了,但会导致USB键盘失去响应,有什么办法吗?

由于当前 usb2.0 驱动没有包含鼠标、键盘驱动,因此可能会影响鼠标、键盘。
当 usb 主机控制器通过同伴端口,使用 UHCI 控制鼠标、键盘,则不会受影响;
当 usb 主机控制器不通过同伴端口,使用 EHCI 分裂传输控制鼠标、键盘,则会受影响。

解决办法是在菜单加载:先加载 usb 驱动,再加载 PE 映像,起到了加速作用。
加载 PE 映像后,他自己会驱动鼠标、键盘。
或者使用 ps2 接口的键盘;或者通过 usb-ps2 转换接头。

加入鼠标、键盘驱动,太占用空间。

点评

能通过什么方式来判定USB主机控制器的不同控制方式?  详情 回复 发表于 2014-1-20 20:15
回复

使用道具 举报

28#
发表于 2014-1-20 20:15:33 | 只看该作者
本帖最后由 mygamexxx 于 2014-1-21 08:02 编辑
2011yaya2007777 发表于 2014-1-20 15:42
由于当前 usb2.0 驱动没有包含鼠标、键盘驱动,因此可能会影响鼠标、键盘。
当 usb 主机控制器通过同伴 ...


能通过什么方式来判定USB主机控制器的不同控制方式?

我将键盘插到前面板也一样。
回复

使用道具 举报

29#
 楼主| 发表于 2014-1-21 10:11:16 | 只看该作者
本帖最后由 2011yaya2007777 于 2014-1-21 10:12 编辑
能通过什么方式来判定USB主机控制器的不同控制方式?

需要读主机控制能力控制器。
配置为自动运行,不要手动干预即可。

我想知道:在联想台式机,从菜单自动加载usb驱动及0PE,是否成功?若失败后重启一次又如何?

点评

内置菜单 graphicsmode -1 640:800 usb --init map --mem /0pe/0pe.iso (0xff) map --hook chainloader (0xff) boot 启动0PE成功  详情 回复 发表于 2014-1-21 12:58
回复

使用道具 举报

30#
发表于 2014-1-21 12:58:54 | 只看该作者
2011yaya2007777 发表于 2014-1-21 10:11
需要读主机控制能力控制器。
配置为自动运行,不要手动干预即可。


联想台式机
内置菜单
graphicsmode -1 640:800
usb --init
map --mem /0pe/0pe.iso (0xff)
map --hook
chainloader (0xff)
boot
启动0PE成功
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-22 13:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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