grubby/boot/grub/persistent/docs/21_supported_boot_targets

152 lines
7.3 KiB
Text

21 Supported boot targets
*************************
X86 support is summarised in the following table. "Yes" means that the
kernel works on the given platform, "crashes" means an early kernel
crash which we hope will be fixed by concerned kernel developers. "no"
means GRUB doesn't load the given kernel on a given platform.
"headless" means that the kernel works but lacks console drivers (you
can still use serial or network console). In case of "no" and "crashes"
the reason is given in footnote.
BIOS Coreboot
BIOS chainloading yes no (1)
NTLDR yes no (1)
Plan9 yes no (1)
Freedos yes no (1)
FreeBSD bootloader yes crashes (1)
32-bit kFreeBSD yes crashes (5)
64-bit kFreeBSD yes crashes (5)
32-bit kNetBSD yes crashes (1)
64-bit kNetBSD yes crashes
32-bit kOpenBSD yes yes
64-bit kOpenBSD yes yes
Multiboot yes yes
Multiboot2 yes yes
32-bit Linux (legacy protocol) yes no (1)
64-bit Linux (legacy protocol) yes no (1)
32-bit Linux (modern protocol) yes yes
64-bit Linux (modern protocol) yes yes
32-bit XNU yes ?
64-bit XNU yes ?
32-bit EFI chainloader no (2) no (2)
64-bit EFI chainloader no (2) no (2)
Appleloader no (2) no (2)
Multiboot Qemu
BIOS chainloading no (1) no (1)
NTLDR no (1) no (1)
Plan9 no (1) no (1)
FreeDOS no (1) no (1)
FreeBSD bootloader crashes (1) crashes (1)
32-bit kFreeBSD crashes (5) crashes (5)
64-bit kFreeBSD crashes (5) crashes (5)
32-bit kNetBSD crashes (1) crashes (1)
64-bit kNetBSD yes yes
32-bit kOpenBSD yes yes
64-bit kOpenBSD yes yes
Multiboot yes yes
Multiboot2 yes yes
32-bit Linux (legacy protocol) no (1) no (1)
64-bit Linux (legacy protocol) no (1) no (1)
32-bit Linux (modern protocol) yes yes
64-bit Linux (modern protocol) yes yes
32-bit XNU ? ?
64-bit XNU ? ?
32-bit EFI chainloader no (2) no (2)
64-bit EFI chainloader no (2) no (2)
Appleloader no (2) no (2)
ia32 EFI amd64 EFI
BIOS chainloading no (1) no (1)
NTLDR no (1) no (1)
Plan9 no (1) no (1)
FreeDOS no (1) no (1)
FreeBSD bootloader crashes (1) crashes (1)
32-bit kFreeBSD headless headless
64-bit kFreeBSD headless headless
32-bit kNetBSD crashes (1) crashes (1)
64-bit kNetBSD yes yes
32-bit kOpenBSD headless headless
64-bit kOpenBSD headless headless
Multiboot yes yes
Multiboot2 yes yes
32-bit Linux (legacy protocol) no (1) no (1)
64-bit Linux (legacy protocol) no (1) no (1)
32-bit Linux (modern protocol) yes yes
64-bit Linux (modern protocol) yes yes
32-bit XNU yes yes
64-bit XNU yes (4) yes
32-bit EFI chainloader yes no (3)
64-bit EFI chainloader no (3) yes
Appleloader yes yes
ia32 IEEE1275
BIOS chainloading no (1)
NTLDR no (1)
Plan9 no (1)
FreeDOS no (1)
FreeBSD bootloader crashes (1)
32-bit kFreeBSD crashes (5)
64-bit kFreeBSD crashes (5)
32-bit kNetBSD crashes (1)
64-bit kNetBSD ?
32-bit kOpenBSD ?
64-bit kOpenBSD ?
Multiboot ?
Multiboot2 ?
32-bit Linux (legacy protocol) no (1)
64-bit Linux (legacy protocol) no (1)
32-bit Linux (modern protocol) ?
64-bit Linux (modern protocol) ?
32-bit XNU ?
64-bit XNU ?
32-bit EFI chainloader no (2)
64-bit EFI chainloader no (2)
Appleloader no (2)
1. Requires BIOS
2. EFI only
3. 32-bit and 64-bit EFI have different structures and work in
different CPU modes so it's not possible to chainload 32-bit
bootloader on 64-bit platform and vice-versa
4. Some modules may need to be disabled
5. Requires ACPI
PowerPC, IA64 and Sparc64 ports support only Linux. MIPS port
supports Linux and multiboot2.
21.1 Boot tests
===============
As you have seen in previous chapter the support matrix is pretty big
and some of the configurations are only rarely used. To ensure the
quality bootchecks are available for all x86 targets except EFI
chainloader, Appleloader and XNU. All x86 platforms have bootcheck
facility except ieee1275. Multiboot, multiboot2, BIOS chainloader,
ntldr and freebsd-bootloader boot targets are tested only with a fake
kernel images. Only Linux is tested among the payloads using Linux
protocols.
Following variables must be defined:
GRUB_PAYLOADS_DIR directory containing the required kernels
GRUB_CBFSTOOL cbfstool from Coreboot package (for coreboot
platform only)
GRUB_COREBOOT_ROM empty Coreboot ROM
GRUB_QEMU_OPTS additional options to be supplied to QEMU
Required files are:
kfreebsd_env.i386 32-bit kFreeBSD device hints
kfreebsd.i386 32-bit FreeBSD kernel image
kfreebsd.x86_64, same from 64-bit kFreeBSD
kfreebsd_env.x86_64
knetbsd.i386 32-bit NetBSD kernel image
knetbsd.miniroot.i386 32-bit kNetBSD miniroot.kmod.
knetbsd.x86_64, same from 64-bit kNetBSD
knetbsd.miniroot.x86_64
kopenbsd.i386 32-bit OpenBSD kernel bsd.rd image
kopenbsd.x86_64 same from 64-bit kOpenBSD
linux.i386 32-bit Linux
linux.x86_64 64-bit Linux