freesoft00 发表于 2016-9-17 18:17 wee 是需要在 Linux 环境下编译。 fbinst.exe 恐怕需要 Windows 编译环境吧?我没编译过,不知道。 |
不点 发表于 2016-9-16 20:45 fbinst.exe wee等也是都是按照这个方法编译吗? |
不点 发表于 2016-9-16 22:20 转了一圈,原来一开始我就错了,还错得这般离谱,该打!经前辈指点,顺利通关,ubuntu改/bin/sh为bash后,也OK了。赞一个 |
本帖最后由 不点 于 2016-9-16 22:23 编辑 seekyou2008 发表于 2016-9-16 22:07 果然是这样的,因而也是错的。 可惜,我没把正确的编译方法写进 README_grub4dos.txt 里面,这也给不少人带来了困惑。 但通常,当你看到有 Makefile 或 GNUmakefile 存在时,是不是就应该敲入 make 进行编译呢?用不着再去阅读 INSTALL 和 README 了吧?既然能看到 INSTALL 和 README,那就也能看到 GNUmakefile。 Makefile 和 GNUmakefile 存在的意义,就是暗示要敲入 make 命令的,否则,它们没必要存在。 INSTALL 和 README 是原始的 GNU GRUB 里面的文件,它们完全没有经过任何更改。它们也不适用于 grub4dos。对于 grub4dos 来说,它们是个摆设,根本就是没用的。 |
不点 发表于 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:03 编辑 说说你是怎么编译的? 附:正确的编译方法: cd grub4dos ls 【此处列出的文件中有 GNUmakefile,看到它,就想到应该敲入 make 命令进行编译】 make 简单地说,就是 “敲入 make 命令进行编译”,其他编译方法都是错的。 |
seekyou2008 发表于 2016-9-16 11:30 看了给出的信息文件,但看不出哪里有问题。无非就是这几个方面: 1、编译器 gcc 的版本,新的 bug,或新引进的不兼容参数,导致 grub4dos 不适应。这在以前屡屡发生。 2、系统 shell 的情况变化。前面已经谈到了。 3、系统工具的不兼容变化,比如 binutils 之类的。它们会影响 Makefile 里面的执行过程和执行结果。 我个人对 ubuntu 越来越不信任了。我不好意思劝你也离开它。但是,我可以劝你采用 chenall 在 windows 下建立的那个 colinux 环境。这就不会有麻烦了。 |
不点 发表于 2016-9-16 10:25 谢谢回复及建议。 |
seekyou2008 发表于 2016-9-16 09:57 如果你有时间和精力,你可以多试试几个发行版。 如果你没有时间和精力,你就试试 chenall 在 Windows 下建立的那个 colinux 编译环境吧。 是这个文件名:grub4dos_dev_2014-06-25.7z 你试试在网上搜,看能否搜到? |
不点 发表于 2016-9-16 08:25 /bin/sh 也改过了,问题照旧。。。这证实了你的猜测,是ubuntu的问题,我系统版本是16.4.2, sh是dash,gcc是5.4.0。 |
seekyou2008 发表于 2016-9-15 23:38 编译时缺少 nasm 和 upx,只影响 eltorito.sys 的生成,不影响别的 grub4dos 文件。 你试试修改 /bin/sh,让它 link 到 /bin/bash,看看此时编译的结果怎么样? |
不点 发表于 2016-9-15 16:12 我又重新编译了0.4.6a还是会有这个问题,然后依你所言用0.4.5c的软件包测试确实没有问题。如你分析可能是ubuntu导致的,但也可能是我在make时导入的一个不确定性,make时缺少两个编译时软件,一个是NASM,另一个是UPX,前者安装我是确定的,后者我不确定,用的是 http://upx.sf.net 里的一款压缩软件。 |
freesoft00 发表于 2016-9-15 19:27 Linux 发行版已经很少用了,不太清楚一般情况。 gcc 4.8, 4.9 好像可以用。我用过 debian 上的 gcc 4.9 来编译。估计高版本也可以的。 对 grub4dos 影响较大的是 /bin/sh。如果它是 bash,就没问题。如果不是的,就可能出问题,而且出问题的可能性很大。 |
本帖最后由 不点 于 2016-9-15 16:14 编辑 我猜是 ubuntu 的问题。 ubuntu 是不兼容性的制造者。我怀疑 ubuntu 又采取了某个不兼容性措施,比如更换系统 shell 为某个不兼容性的 sh,导致编译 grub4dos 时产生有问题的、不正常的版本。也有可能是 gcc 版本有 bug 造成的。gcc 的 bug 我们曾经多次发现过。 请用 grub4dos 发布的 0.4.5c 软件包测试。 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.