11

I'm looking for the line of code where GRUB2 finally jumps to kernel code and thus hands over execution on x86 systems? I guess it's in an assembler file since this is very low architecture stuff. I looked at the source files in /grub-core/boot/i386/pc/*.S and found a JMP in boot.S at line 455 but kernel_address could be the address of the GRUB2 kernel in memory and not the linux kernel.

Anyone with assembly and GRUB2 knowledge that can help me out?

  • Did you track the kernel parameters? – phk Oct 14 '15 at 17:15
  • 1
    I can't add too much here since I'm posting from a phone, but I can guess based on what I remember of PC compatibles and GRUB2 that it loads the kernel image into memory at 0x900000 (real mode), with 0x0c000000 being the address jumped to once you jump out of real mode into protected mode. This was on an EFI system with "trusted boot", though, though so I could be incorrect. Maybe your initrd image will contain clues? – Wyatt8740 Jul 10 '16 at 20:49
1

Just from reading the source, this should be the place in the linux loader and this the place in the relocater (independent from the loader).

I hope that helps :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.