Error 13: Invalid or unsupported executable format
chenxiang2019 opened this issue · 1 comments
chenxiang2019 commented
作者您好,
我是一名新手,刚刚开始根据您的《x86架构操作系统内核的实现》进行一个简单的实现,目前在第三章这里出现了一个对我来说不是很友好的问题。
环境
Mac OSX 下 使用 VMware Fusion 虚拟机,系统为Ubuntu 14.04 64bit,在虚拟机配置中已开启虚拟化。
出现问题的步骤
1.根据您的教程:hurlex <三> 裸机上运行的 Hello OS Kernel 编写相关程序等(说是编写,其实只是基于您的代码添加了些许注释)。
2.编译:
make
make qemu
3.Grub提示错误:
Error 13: Invalid or unsupported executable format
一些尝试
在谷歌了相关资料之后,目前可能存在的情况有两种:
第一种解释是:
The GNU Multiboot Specification requires the Multiboot Header to be aligned on a 4 byte boundary within the first 8 KB of the kernel executable file. should your kernel's image not fit this description, GrUB will promptly issue an Error 13.
第二种解释是需要对grub进行升级。
我想请教下您如何解决这个问题呢?谢谢!
chenxiang2019 commented
您好,我已经解决了这个问题,我将原Makefile文件中的:
LD_FLAGS = -T scripts/kernel.ld -m elf_i386 -nostdlib
中的-T
参数误写成了小写。
很抱歉提了一个冒昧的问题。
谢谢您!