OUTPUT_ARCH(i386) PAGE_SIZE = 1 << 12; PART_TABLE_START = 0x00007DBE; MEMORY { STAGE1_VMA : ORIGIN = 0x00007C00, LENGTH = 0x00001000 STAGE2_VMA : ORIGIN = 0x00001000, LENGTH = 0x00001000 BOOT_DATA : ORIGIN = 0x00009000, LENGTH = 0x00001000 KERNEL_VMA : ORIGIN = 0xC0000000, LENGTH = 0x30000000 } SECTIONS { STAGE1 : AT(0x0000) { */*(.mbr) . = 510; BYTE(0x55) BYTE(0xAA) } >STAGE1_VMA STAGE2 : AT(LOADADDR(STAGE1) + SIZEOF(STAGE1)) { */*(.text) */*(.rodata*) */*(.data) } >STAGE2_VMA .data : AT(LOADADDR(STAGE2) + SIZEOF(STAGE2)) { } >STAGE2_VMA .bss : { */*(.bss) } >BOOT_DATA }