hurley25/hurlex-doc

Error 13: Invalid or unsupported executable format

chenxiang2019 opened this issue · 1 comments

作者您好,

我是一名新手,刚刚开始根据您的《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进行升级。

我想请教下您如何解决这个问题呢?谢谢!

您好,我已经解决了这个问题,我将原Makefile文件中的:

LD_FLAGS = -T scripts/kernel.ld -m elf_i386 -nostdlib

中的-T参数误写成了小写。

很抱歉提了一个冒昧的问题。

谢谢您!