Grub 2 não detectando o cabeçalho Multiboot no kernel

Estou tendo um problema com o Grub 2 (e o QEMU-kernel) não detectando o cabeçalho Multiboot v1 no meu kernel. Eu tenho o cabeçalho em uma seção separada antes.text.

linker.ld:

SECTIONS
{
    . = 1M;

    .multiboot ALIGN(4K) :
    {
        *(.multiboot)
    }

    .text ALIGN(4K) :
    {
        *(.text)
    }

    [snip]

boot.s (GNU como sintaxe):

.set MAGIC, 0x1badb002
.set FLAGS, (1<<0 | 1<<1) # align, provide mem map
.set CHECKSUM, -(MAGIC + FLAGS)

.section .multiboot
    .long MAGIC
    .long FLAGS
    .long CHECKSUM

.section .text
    [snip]

Eu verifiquei que a seção de cabeçalho está sendo adicionada conforme especificado com o número mágico:

kernel.bin:     file format elf32-i386

Contents of section .multiboot:
 101000 02b0ad1b 03000000 fb4f52e4           .........OR.    
Contents of section .text:
 [snip]

No entanto, o Grub 2 diz que o kernel não tem um cabeçalho Multiboot válido e usa o QEMU-kernel opção faz com que:

qemu: fatal: Trying to execute code outside RAM or ROM at 0x000a000

que parece ser um endereço no intervalo mapeado pelo BIOS, não onde deveria ser o Multiboot.

Eu comparei com o código usual em Bran e OSDev (além de um kernel anterior), mas não consigo descobrir o que estou fazendo de errado.

questionAnswers(1)

yourAnswerToTheQuestion