无忧启动论坛

标题: G4D代码仓库master分支版本号是0.4.5c吗? [打印本页]

作者: seekyou2008    时间: 2016-9-15 15:52
标题: G4D代码仓库master分支版本号是0.4.5c吗?
今天从G4D的github仓库里fork了份源码在ubuntu下重新编译,然后直接替换机器原来的0.4.6a版本,重启机器引导G4D直接跳出commandline界面,不显示菜单界面,一看版本号竟然是0.4.5c的,在命令输入界面configfile ()/menu.lst会显示菜单界面,按ESC也会显示菜单界面。重启机器引导进入commandline之前的瞬间有NTFS字样一闪而过。0.4.6a没有这个问题,我机器启动分区是NTFS的,是不是0.4.5c本来就有这个问题?
作者: 不点    时间: 2016-9-15 16:12
本帖最后由 不点 于 2016-9-15 16:14 编辑

我猜是 ubuntu 的问题。

ubuntu 是不兼容性的制造者。我怀疑 ubuntu 又采取了某个不兼容性措施,比如更换系统 shell 为某个不兼容性的 sh,导致编译 grub4dos 时产生有问题的、不正常的版本。也有可能是 gcc 版本有 bug 造成的。gcc 的 bug 我们曾经多次发现过。

请用 grub4dos 发布的 0.4.5c 软件包测试。


作者: freesoft00    时间: 2016-9-15 19:27
常规的发行版linux,使用哪个版本编译比较好呢?gcc 使用哪个版本?最新版本是否合适?
作者: 不点    时间: 2016-9-15 19:43
freesoft00 发表于 2016-9-15 19:27
常规的发行版linux,使用哪个版本编译比较好呢?gcc 使用哪个版本?最新版本是否合适?

Linux 发行版已经很少用了,不太清楚一般情况。

gcc 4.8, 4.9 好像可以用。我用过 debian 上的 gcc 4.9 来编译。估计高版本也可以的。

对 grub4dos 影响较大的是 /bin/sh。如果它是 bash,就没问题。如果不是的,就可能出问题,而且出问题的可能性很大。


作者: seekyou2008    时间: 2016-9-15 23:38
不点 发表于 2016-9-15 16:12
我猜是 ubuntu 的问题。

ubuntu 是不兼容性的制造者。我怀疑 ubuntu 又采取了某个不兼容性措施,比如更 ...

我又重新编译了0.4.6a还是会有这个问题,然后依你所言用0.4.5c的软件包测试确实没有问题。如你分析可能是ubuntu导致的,但也可能是我在make时导入的一个不确定性,make时缺少两个编译时软件,一个是NASM,另一个是UPX,前者安装我是确定的,后者我不确定,用的是 http://upx.sf.net 里的一款压缩软件。
作者: 不点    时间: 2016-9-16 08:25
seekyou2008 发表于 2016-9-15 23:38
我又重新编译了0.4.6a还是会有这个问题,然后依你所言用0.4.5c的软件包测试确实没有问题。如你分析可能是 ...

编译时缺少 nasm 和 upx,只影响 eltorito.sys 的生成,不影响别的 grub4dos 文件。

你试试修改 /bin/sh,让它 link 到 /bin/bash,看看此时编译的结果怎么样?


作者: seekyou2008    时间: 2016-9-16 09:57
不点 发表于 2016-9-16 08:25
编译时缺少 nasm 和 upx,只影响 eltorito.sys 的生成,不影响别的 grub4dos 文件。

你试试修改 /bin/ ...

/bin/sh 也改过了,问题照旧。。。这证实了你的猜测,是ubuntu的问题,我系统版本是16.4.2, sh是dash,gcc是5.4.0。
作者: 不点    时间: 2016-9-16 10:25
seekyou2008 发表于 2016-9-16 09:57
/bin/sh 也改过了,问题照旧。。。这证实了你的猜测,是ubuntu的问题,我系统版本是16.4.2, sh是dash,g ...

如果你有时间和精力,你可以多试试几个发行版。

如果你没有时间和精力,你就试试 chenall 在 Windows 下建立的那个 colinux 编译环境吧。

是这个文件名:grub4dos_dev_2014-06-25.7z 你试试在网上搜,看能否搜到?


作者: seekyou2008    时间: 2016-9-16 11:30
不点 发表于 2016-9-16 10:25
如果你有时间和精力,你可以多试试几个发行版。

如果你没有时间和精力,你就试试 chenall 在 Windows  ...

如下为修改后/bin/sh的效果图:

0.4.6a重新编译后引导进入commandline界面,End:364E1D,按ESC后,End:364EEB
还有make && install相关信息打包如下:

make.tar

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

make相关信息。


作者: seekyou2008    时间: 2016-9-16 11:33
不点 发表于 2016-9-16 10:25
如果你有时间和精力,你可以多试试几个发行版。

如果你没有时间和精力,你就试试 chenall 在 Windows  ...

谢谢回复及建议。
作者: 不点    时间: 2016-9-16 12:18
seekyou2008 发表于 2016-9-16 11:30
如下为修改后/bin/sh的效果图:

0.4.6a重新编译后引导进入commandline界面,End:364E1D,按ESC后,En ...

看了给出的信息文件,但看不出哪里有问题。无非就是这几个方面:

1、编译器 gcc 的版本,新的 bug,或新引进的不兼容参数,导致 grub4dos 不适应。这在以前屡屡发生。
2、系统 shell 的情况变化。前面已经谈到了。
3、系统工具的不兼容变化,比如 binutils 之类的。它们会影响 Makefile 里面的执行过程和执行结果。

我个人对 ubuntu 越来越不信任了。我不好意思劝你也离开它。但是,我可以劝你采用 chenall 在 windows 下建立的那个 colinux 环境。这就不会有麻烦了。


作者: seekyou2008    时间: 2016-9-16 18:45
不点 发表于 2016-9-16 12:18
看了给出的信息文件,但看不出哪里有问题。无非就是这几个方面:

1、编译器 gcc 的版本,新的 bug,或 ...

采用前辈推荐的工具软件git源码,下载完成后有如下提示:
cofuse: unsuppored request 13
在XP系统的colinux下编译OK后,直接替换原来的,重启机器结果显示还是一样的,引导后进入commandline,End:3587b5,按ESC后,End:358922
崩溃中...
人品问题还是手法问题?


作者: 不点    时间: 2016-9-16 20:45
本帖最后由 不点 于 2016-9-16 22:03 编辑

说说你是怎么编译的?

附:正确的编译方法:

cd  grub4dos
ls
【此处列出的文件中有 GNUmakefile,看到它,就想到应该敲入 make 命令进行编译】
make

简单地说,就是 “敲入 make 命令进行编译”,其他编译方法都是错的。



作者: seekyou2008    时间: 2016-9-16 22:07
不点 发表于 2016-9-16 20:45
说说你是怎么编译的?

我是按源码包里INSTALL文件要求的步骤进行编译的,先用./configure --prefix=/home/pan/grub/生成Makefile,接着执行make,再接着make install,然后粘贴生成的grldr,grldr.mbr,grub.exe三个文件复制到C:\,最后重启。
作者: 不点    时间: 2016-9-16 22:20
本帖最后由 不点 于 2016-9-16 22:23 编辑
seekyou2008 发表于 2016-9-16 22:07
我是按源码包里INSTALL文件要求的步骤进行编译的,先用./configure --prefix=/home/pan/grub/生成Makefil ...


果然是这样的,因而也是错的。

可惜,我没把正确的编译方法写进 README_grub4dos.txt 里面,这也给不少人带来了困惑。

但通常,当你看到有 Makefile 或 GNUmakefile 存在时,是不是就应该敲入 make 进行编译呢?用不着再去阅读 INSTALL 和 README 了吧?既然能看到 INSTALL 和 README,那就也能看到 GNUmakefile。

Makefile 和 GNUmakefile 存在的意义,就是暗示要敲入 make 命令的,否则,它们没必要存在。

INSTALL 和 README 是原始的 GNU GRUB 里面的文件,它们完全没有经过任何更改。它们也不适用于 grub4dos。对于 grub4dos 来说,它们是个摆设,根本就是没用的。
作者: seekyou2008    时间: 2016-9-16 23:14
不点 发表于 2016-9-16 22:20
果然是这样的,因而也是错的。

可惜,我没把正确的编译方法写进 README_grub4dos.txt 里面,这也给 ...

转了一圈,原来一开始我就错了,还错得这般离谱,该打!经前辈指点,顺利通关,ubuntu改/bin/sh为bash后,也OK了。赞一个
作者: freesoft00    时间: 2016-9-17 18:17
不点 发表于 2016-9-16 20:45
说说你是怎么编译的?

附:正确的编译方法:

fbinst.exe wee等也是都是按照这个方法编译吗?
作者: 不点    时间: 2016-9-17 18:20
freesoft00 发表于 2016-9-17 18:17
fbinst.exe wee等也是都是按照这个方法编译吗?

wee 是需要在 Linux 环境下编译。

fbinst.exe 恐怕需要 Windows 编译环境吧?我没编译过,不知道。






欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3