Comparison of bootloaders

Last updated

The following tables compare general and technical information for a number of available bootloaders.

Contents

General information

NameDeveloper / PublisherCurrent versionInitial release dateLatest release date License CostWebsite / documentation
Acronis OS Selector Acronis International GmbH  ? ? ? Proprietary $49.95 (personal use)
$79.99 (commercial, per seat)
$299.99 (server)
Official website
AiR-BOOTMartin Kiewitz
Ben Rietbroek
 ? ? ? GPL-3.0-or-later No cost Official website
AKernelLoader ? ? ? ? GPL-2.0-or-later No cost Official website
Barebox Sascha Hauer
the barebox community
 ? ? ? GPL-2.0-only No cost Official website
BOOTBOOTbzt ?201714 December 2023 MIT No cost Source repository

Official website

BootIt Bare Metal (formerly BootIt Next Generation)TeraByte Unlimited ? ? ? Proprietary $39.95 Official website
BootKey ? ? ? ? Proprietary  ? ?
BootManager  ? ? ? ? MIT No cost  ?
BootX (Apple) Apple Inc.  ? ? ? Proprietary bundled with macOS ?
BootX (Linux) Benjamin Herrenschmidt ? ? ? Proprietary No cost  ?
Clover (fork of rEFIt) https://github.com/CloverHackyColor/CloverBootloader/graphs/contributors Multi Contributors]5157October 3, 201329 June 2024 GPLv2/BSD-2-Clause No cost Official website

Source repository

Darwin Boot Loader Apple Inc.  ? ? ? APSL-2.0 No cost Official Website (Archived)
Das U-Boot DENX Software Engineering2023.01  OOjs UI icon edit-ltr-progressive.svg 9 January 2023  OOjs UI icon edit-ltr-progressive.svg GPL-2.0-or-later No cost Official website
Easybootbzt ?202320 February 2024 GPL-3.0-or-later No cost Source repository
FreeBSD loader FreeBSD BSD license No cost
GAGRaster Software4.10  OOjs UI icon edit-ltr-progressive.svg  ?10 August 2008  OOjs UI icon edit-ltr-progressive.svg GPL-2.0-or-later No cost Official website
GRUB Legacy GNU Project 8 May 2005 GPL-2.0-or-later No cost
GNU GRUB GNU Project2.12 [1]   OOjs UI icon edit-ltr-progressive.svg 199520 December 2023 GPL-3.0-or-later No cost Official website
Grub2Win GPLv3
GRUB4DOS 31 March 2009 GPL-2.0-only [a] Official website
Gujin9 January 2013 GPL-2.0-only Official website
systemd-boot / Gummiboot LGPL-2.1-or-later
iBoot Apple Inc. iBoot-11881.62.2~1June 29, 2007December 9, 2024 Proprietary
LILO BSD-3-Clause
Liminemintsuki7.5.2April 6, 202029 June 2024 BSD-2-Clause No cost Official website
loadlin GPL-2.0-or-later
MasterBooter GPL-2.0-only No cost Source repository
NTLDR Microsoft July 27, 1993 (Windows NT 3.1) Proprietary bundled with Windows
OpenCoreAcidantheraMay 4, 2019 BSD-3-Clause No cost Source repository
OzmosisThe Hermit Crabs Lab167X-MASS (unofficial 167X-XMAX)201325 December 2015 CCPL 3.0 License No cost Binary repository
OSL2000 Boot Manager12 February 2017 Proprietary
PLoP Boot Manager15 April 2013 Proprietary No cost Official website
quibblemaharmstone20210111February 13, 202029 March 2023 GPL-3.0-or-later No cost Official website
RedBoot GPL-2.0-or-later (eCos license)
rEFInd (fork of rEFIt)Roderick W. Smith0.14.4.2March 14, 20126 April 2024 GPL-3.0-or-later/BSD-3-Clause No cost Official website
rEFIt Christoph Pfisterer0.14March 2, 20067 March 2010 GPL-2.0-or-later/BSD-3-Clause No cost Official website
Simplebootbzt ?202310 October 2023 MIT No cost Documentation

Source repository

Smart Boot Manager GPL-2.0-or-later
SPFdisk GPL-2.0-or-later
SYSLINUX 6 October 2014 GPL-2.0-or-later
TianoCore EDK II BSD-2-Clause
Windows Boot Manager Microsoft January 30, 2007 (Windows Vista) Proprietary bundled with Windows
XOSL 20 August 2002 GPL-2.0-only
FreeLoader (ReactOS Boot Loader) GPL-2.0-or-later No cost Documentation
wolfBoot wolfSSL v2.0.2December 4, 201816 April 2024 GPL-2.0-or-later and Commercial Licensing No cost Official website
NameDeveloper / PublisherCurrent versionInitial release dateLatest release date License CostWebsite / documentation
  1. While most parts of GRUB4DOS are under GPL-2.0-or-later, the whole software is limited to GPL-2.0-only due to incorporating some code from Linux. [2]

Technical information

Note: The column MBR (Master Boot Record) refers to whether or not the boot loader can be stored in the first sector of a mass storage device. The column VBR (Volume Boot Record) refers to the ability of the boot loader to be stored in the first sector of any partition on a mass storage device.

Storage medium support

NameCan reside inCan boot from
ESP (UEFI) MBR VBR Floppy Hard disk Second Hard disk Logical partitions CD-ROM Floppy USB Zip LAN
Acronis OS Selector  ? ? ?YesYesYesYesYesYesYesYes ?
AiR-BOOT ?YesNo ? ? ? ? ? ? ? ? ?
AKernelLoader ?YesNoYesYesYesYes ?YesYes ? ?
Barebox YesYesNo ?YesYesYesYesYesYesNoYes
BOOTBOOTYesYesYesNoYesYesYesYesNoYesNoNo
BootIt Bare Metal ? ? ?YesYesYesYesYesYesYesYes ?
BootKey  ?NoNoYesNoNoNoYesYesYesNoNo
BootManager  ?YesNoNoYes ? ? ? ? ? ?No
BootX (Apple) YesNoNoNoYesNoNoYesNoYesYesYes
BootX (Linux) NoNoNoYesYesYesNoYesYesYesYesYes
CloverYesYesYesYesYesYes ?No ?Yes ?No
Darwin Boot LoaderYes ? ? ?YesYes ? ? ?Yes ? ?
Das U-Boot YesYes ? ?YesYesYesYesYesYesNoYes
EasybootYesYesYesNoYesYesYesNoNoYesNoNo
FreeBSD loaderYesYesYesYesYesYesYesYesYesYes ?Yes
GAG  ?Yes (SafeBoot)NoYesYesYesYesYesYesYesNoNo
GRUB Legacy NoYesYesYesYesYesYesYesYesYesYesYes
GNU GRUB YesYesYesYesYesYesYesYesYesYesYesYes
Grub2Win YesNoNoNoYesYesYesYesYesYesYesNo
GRUB4DOS  ?NoYesYesYesYesYesYesYesYesYesYes
Gujin ?NoYesYesYesYesYesYesYesYesYesNo
systemd-boot / Gummiboot YesNoNoNoYesYesYes ? ?Yes ? ?
iBoot Yes ? ? ?Yes ? ?No ? ? ? ?
LILO YesYesYesYesYesYesYesYesYesYesYes ?
LimineYesYesNoNoYesYesYesYesNoYesYesYes
loadlin  ?NoNoYesYesYesYesYesYesYesYesYes
MasterBooter ?Yes ? ?YesYesYes ?Yes ? ? ?
NTLDR  ?NoYesYesYes ?NoNoYesYes ? ?
OpenCoreYesYes ? ?YesYes ?No ?Yes ?No
OSL2000 Boot Manager ?YesYesNoYesYesYesYesYesYesYesNo
PLoP Boot Manager ?YesYesYesYesYesYesYesYesYesYesYes
quibbleYes ? ? ?Yes ? ? ? ? ? ? ?
RedBoot  ?NoYesYesYesYesYesYesYesYesYesYes
rEFInd YesNoNoNoYesYes ?Yes ?Yes ?Yes
rEFIt (not maintained)YesNoNoNoYesYes ?No ?Yes ?No
SimplebootYesYesNoNoYesYesYesNoNoYesNoNo
Smart Boot Manager ?YesNoYesYesYesYesYesYes ? ? ?
SPFdisk  ?YesYesYesYesYes ? ?Yes ? ? ?
SYSLINUX NoYesYesYesYesYesYesYesYesYesYesYes
Tianocore EDK II ?NoNoNoYesYes ?Yes ?YesNoYes
Windows Boot Manager YesNoYesNoYesYes ?YesYesYesYes ?
XOSL  ?NoNoYesYesYesYesYes ?No ?No
FreeLoader (ReactOS Boot Loader) ?NoYesYesYesYes ?YesYesYesYes ?
NameCan reside inCan boot from
ESP (UEFI) MBR VBR Floppy Hard disk Second Hard disk Logical partitions CD-ROM Floppy USB Zip LAN

Operating system support

NameCan boot
MS-DOS Windows 9x/Me Windows NT series before Vista Windows Vista/7/8/10 Linux ReactOS MenuetOS *BSD Mac OS X
Acronis OS Selector YesYesYesYesYes ? ?YesYes
AiR-BOOTYesYesYesYesYes ? ? ? ?
AKernelLoader ? ? ? ?Yes ? ? ? ?
Barebox  ? ? ? ?Yes ? ? ? ?
BOOTBOOTNoYesYesYesYes ? ? ? ?
BootIt Bare MetalYesYesYesYesYes ? ? ? ?
BootKey YesYesYesYesYes ? ? ? ?
BootManager YesYesCalls NTLDR Calls Windows Boot Manager Calls GRUB or LILO  ? ? ? ?
BootX (Apple)  ? ? ? ? ? ? ? ?Yes
BootX (Linux)  ? ? ? ?Yes ? ? ? ?
Clover ? ?YesYesYes ? ?YesYes
Darwin Boot Loader ? ? ?Yes ? ? ?YesYes
Das U-Boot  ? ? ? ?Yes ? ?Yes (FreeBSD) ?
EasybootYes (FreeDOS)NoCalls NTLDR Calls Windows Boot Manager YesYesYes (KolibriOS as well)Yes (FreeBSD, OpenBSD)No
FreeBSD loader ? ? ? ? ? ? ?Yes (FreeBSD, TrueOS) ?
FreeLoader (ReactOS Boot Loader)YesYesPartial [3] Calls Windows Boot ManagerYesYes ? ? ?
GAG YesYesCalls NTLDRCalls Windows Boot ManagerCalls GRUB or LILOCalls bootloaderCalls bootloaderCalls bootloaderNo
GRUB Legacy and GRUB4DOS YesYesCalls NTLDRCalls Windows Boot ManagerYesCalls FreeLoader YesCalls bootloader for some kernelsYes
GNU GRUB YesYesCalls NTLDRCalls Windows Boot ManagerYesCalls FreeLoader YesYesYes
Grub2Win YesYesCalls NTLDRCalls Windows Boot ManagerYes ? ?Yes (FreeBSD)Calls Clover
GujinYesYesCalls NTLDRYesYes ? ? ? ?
systemd-boot / Gummiboot NoNoWindows Server 2013 64bits with UEFI onlyCalls Windows Boot Manager [4] Yes ? ?UEFI onlyYes [4]
iBoot  ? ? ? ? ? ? ? ?Yes
LILO  ?YesCalls NTLDRYesYes ? ?Calls biosboot (FreeBSD, PC-BSD, ...) ?
loadlin with MEMDISK NoNoNoYesNoNo ? ?
LimineCalls bootloaderCalls bootloaderCalls bootloaderCalls bootloaderYesCalls bootloaderCalls bootloaderCalls bootloaderCalls bootloader
MasterBooterYesYesYesYesYes ? ?Yes ?
NTLDR YesYesYesNoCalls GRUB4DOS ? ? ?Calls Darwin bootloader [5]
OpenCore ? ?YesYesYes ? ?YesYes
OSL2000 Boot ManagerYesYesYesYesCalls GRUB or LILO ? ? ? ?
PLoP Boot ManagerYesYesYesYesCalls GRUB or LILO ? ? ? ?
quibble ? ? ?YesYesYes ?Yes ?
RedBoot YesYesCalls NTLDRCalls Windows Boot ManagerYesCalls FreeLoader YesYesYes
rEFInd (fork of rEFIt) ? ?YesYesYes ? ?YesYes
rEFIt (not maintained) ? ?YesYesYes ? ?YesYes
SimplebootNoNoNoNoYesNo ?Partial ?
Smart Boot ManagerYesYesYes ?Yes ? ?Yes ?
SPFdisk YesYes ? ? ? ? ? ? ?
SYSLINUX YesYesCalls NTLDRCalls Windows Boot ManagerYes ?Yesvia mboot.c32 module  ?
Tianocore EDK IINoNoNoYesYesNo ?Yes (FreeBSD,OpenBSD)Yes
Windows Boot Manager  ?YesCalls NTLDRYesCalls GRUB or LILO ? ? ? ?
XOSL YesYesYesYesYes ? ? ? ?
NameCan boot
MS-DOS Windows 9x/Me Windows NT series before Vista Windows Vista/7/8/10 Linux ReactOS MenuetOS *BSD Mac OS X

File-system support

Non-journaled

NameFAT Minix ext2 btrfs HFS APFS AFFS F2FS ZFS NILFS YAFFS
FAT12 FAT16 FAT32 exFAT YAFFS1 YAFFS2
Acronis OS Selector  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
AiR-BOOT ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
AKernelLoader ? ?Yes ? ?Yes ? ? ? ? ? ? ? ? ?
Barebox YesYesYes ?NoYesNoNoNoNoNoNoNo ? ?
BOOTBOOTNoYesYesYesYesYes ? ? ? ? ? ? ? ? ?
BootIt Bare Metal ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
BootKey ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
bootload ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
BootManager  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
BootX (Apple)  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
BootX (Linux)  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Clover ? ?YesYes ? ? ? ?Yes ? ? ? ? ? ?
Darwin Boot Loader ? ?Yes ? ? ? ?YesYes ? ? ? ? ? ?
Das U-Boot YesYesYes ? ?Yes ? ? ? ? ?Yes ? ? ?
EasybootNoYesYesYesYesYes ? ? ? ? ? ? ? ? ?
extipl ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
FreeLoader (ReactOS)YesYesYes ? ?YesYes ? ? ? ? ? ? ? ?
GAG ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
GNU GRUB 2 YesYesYesYesYesYesYesYesNoYesYesYesYes ? ?
GRUB Legacy YesYesYesNoYesYesNoNoNoNoNoNoNo ? ?
Grub2Win  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
GRUB4DOS YesYesYesNoYesYesNoNoNoNoNoNoNo ? ?
Gujin ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
systemd-boot / Gummiboot  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
iBoot  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
LILO  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
LimineYesYesYesNoNoYesNoNoNoNoNoNoNoNoNo
loader (FreeBSD)YesYesYes ? ?Yes ? ? ? ? ?Yes ? ? ?
loadlin YesYesYesNoNoNoNoNoNoNoNoNoNoNoNo
LOLO ?YesYes ? ? ? ? ? ? ? ? ? ?YesYes
MasterBooter ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Multiple Boot Manager ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
NTLDR  ?YesYes ? ?NoNoNoNoNoNoNoNo ? ?
OpenCore ?YesYesYes ? ? ?YesYes ? ? ? ? ? ?
OSL2000 Boot Manager ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
PLoP Boot Manager ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
quibble ? ?Yes ? ? ?Yes ? ? ? ? ? ? ? ?
RedBoot  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
rEFInd Yes [a]  ? ?Yes [b] Yes [b]  ? ? ? ? ? ? ? ?
rEFIt  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
SimplebootNoNoYesNoNoNo ? ? ? ? ? ? ? ? ?
Smart Boot Manager ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
SPFdisk ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Syslinux YesYesYesNoNoYesYesNoNoNoNoNoNo ? ?
Tianocore EDK IIYesYesYes ? ? ? ? ? ? ? ? ? ? ? ?
Windows Boot Manager  ? ?YesYes ? ? ?NoNo ? ? ? ? ? ?
XOSL  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
yaboot  ? ? ? ? ?Yes ?Yes ? ? ? ? ? ? ?

Journaled

Name NTFS ext3 ext4 ReiserFS Reiser4 JFS XFS UFS UDF HFS+ BeFS AFS SFS UBIFS JFFS2
Acronis OS Selector  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
AiR-BOOT ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
AKernelLoader ?Yes ? ? ? ? ? ? ? ? ? ? ? ? ?
Barebox  ?YesYes ? ? ? ? ? ? ? ? ? ?YesYes
BOOTBOOT ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
BootIt Bare Metal ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
BootKey ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
bootload ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
BootManager  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
BootX (Apple)  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
BootX (Linux)  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
CloverYes ? ? ? ? ? ? ? ?Yes ? ? ? ? ?
Darwin Boot LoaderYes ? ? ? ? ? ? ? ?Yes ? ? ? ? ?
Das U-Boot  ?YesYesYes ? ? ?Yes ? ? ? ? ?YesYes
extipl ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
FreeLoader (ReactOS)Yes ? ? ? ? ? ? ? ? ? ? ? ? ? ?
GAG ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
GNU GRUB 2 YesYesYesYesNoYesYesYesYesYesYesYesYes ? ?
GRUB Legacy NoYespatch [a] Yes [b] NoYes [b] Yes [b] Yes [b] NoNoNoNoNoNoNo
Grub2Win  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
GRUB4DOS YesYesYesYes [b] NoYes [b] Yes [b] Yes [b]  ? ? ? ? ? ? ?
Gujin ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
systemd-boot / Gummiboot  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
iBoot  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
LILO  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
LimineNoYesYesNoNoNoNoNoNoNoNoNoNoNoNo
loader (FreeBSD) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
loadlin Yes [c] NoNoNoNoNoNoNoNoNoNoNoNoNoNo
LOLO ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
MasterBooter ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Multiple Boot Manager ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
NTLDR YesNoNoNoNoNoNoNoNoNoNoNoNoNoNo
OpenCoreYes ? ? ? ? ? ? ? ?Yes ? ? ? ? ?
OSL2000 Boot Manager ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
PLoP Boot Manager ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
quibbleYesYesYes ? ? ? ? ? ? ? ? ? ? ? ?
RedBoot  ? ? ? ? ? ? ? ? ? ? ? ? ? ?Yes
rEFInd Partial [d] Yes [d] Yes [d]  ? ? ? ? ? ?Yes [d]  ? ? ? ? ?
rEFIt  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Simpleboot ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Smart Boot Manager ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
SPFdisk ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Syslinux YesYesPartial [e] NoNoNoYesYesYesNoNoNoNoNoNo
Tianocore EDK II ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Windows Boot Manager YesNoNoNoNoNoNoNo ?NoNoNoNoNoNo
XOSL  ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
yaboot  ?YesYes ? ? ? ? ? ? ? ? ? ? ? ?

Read-only

Name cpio tar ISO 9660 romfs SquashFS cramfs
Acronis OS Selector  ? ? ? ? ? ?
AiR-BOOT ? ? ? ? ? ?
AKernelLoader ? ? ? ? ? ?
Barebox  ? ? ? ?Yes [a] Yes
BOOTBOOTYesYesYesYesNoNo
BootIt Bare Metal ? ? ? ? ? ?
BootKey ? ? ? ? ? ?
bootload ? ? ? ? ? ?
BootManager  ? ? ? ? ? ?
BootX (Apple)  ? ? ? ? ? ?
BootX (Linux)  ? ? ? ? ? ?
Clover ? ? ? ? ? ?
Darwin Boot Loader ? ? ? ? ? ?
Das U-Boot  ? ? ? ?Yes [b] Yes
extipl ? ? ? ? ? ?
FreeLoader (ReactOS) ? ? ? ? ? ?
GAG ? ? ? ? ? ?
GNU GRUB 2 YesYesYesYesYes ?
GRUB Legacy  ? ?Yes [c]  ? ? ?
Grub2Win  ? ? ? ? ? ?
GRUB4DOS  ? ?Yes [c]  ? ? ?
Gujin ? ? ? ? ? ?
systemd-boot / Gummiboot  ? ? ? ? ? ?
iBoot  ? ? ? ? ? ?
LILO  ? ? ? ? ? ?
LimineNoNoYesNoNoNo
loader (FreeBSD) ? ? ? ? ? ?
loadlin NoNoYes [d]  ? ? ?
LOLO ? ? ? ? ? ?
MasterBooter ? ? ? ? ? ?
Multiple Boot Manager ? ? ? ? ? ?
NTLDR  ? ? ? ? ? ?
OpenCore ? ? ? ? ? ?
OSL2000 Boot Manager ? ? ? ? ? ?
PLoP Boot Manager ? ? ? ? ? ?
RedBoot  ? ? ? ? ? ?
rEFInd  ? ?Yes [e]  ? ? ?
rEFIt  ? ? ? ? ? ?
SimplebootYesYesNoYesYesYes
Smart Boot Manager ? ? ? ? ? ?
SPFdisk ? ? ? ? ? ?
Syslinux  ? ?Yes ? ? ?
Tianocore EDK II ? ? ? ? ? ?
Windows Boot Manager NoNoYesNoNoNo
XOSL  ? ? ? ? ? ?
yaboot  ? ? ? ? ? ?

Other features

NameAdvanced commandScriptableSupported architectureSupported executableSupported protocolSupported decompressionOthers
GRUB Legacy YesNox86 (PC) Multiboot 1, Linux zImage, Linux bzImage and othersTFTPgzip
GRUB 2 YesYesx86 (PC, EFI, UEFI, coreboot, OLPC), IA-64, ARM (U-Boot, UEFI), PowerPC (OpenFirmware), MIPS, SPARC (OpenFirmware) Multiboot and others [6] TFTP, HTTP [7] gzip, xz [8]
LILO NoNox86 (PC)Linux zImage, Linux bzImage ?bzip2, gzip
loader (FreeBSD)YesYesx86 (PC, EFI, UEFI, coreboot, OLPC), ARM (U-Boot, UEFI), MIPS, PowerPC (OpenFirmware), SPARC v9 (OpenFirmware)FreeBSD ELF kernel image, Multiboot (incomplete, for Xen image only) [9] TFTP, NFSgzip, bzip2
loadlin NoNox86 (PC)Linux zImage, Linux bzImage ?gzip
LOLO (Logic PD)YesYesARM7, ARM9, ARM11, Cortex-A8, StrongARM, SH, ColdFireELF, binary, BIN (WinCE), SRECTFTP ?Supported devices: MCF54xx, MCF5329, MCF5373, LLH7A400, LLH7A404, LLH79520, LLH79524, LSH7727, LSH7750, LSH7760, PXA270, PXA320, IMX31, IMX27, OMAP35xx, OMAP37xx
SYSLINUX via cmd.c32 modulevia lua.c32 modulex86 (PC)Linux zImage, Linux bzImage, [10] Multiboot, [11] MBR image [12] TFTPgzip, bzip2, lzo, zip, lzma, ?
AKernelLoaderNoNox86 (PC)ELF, Binary ? ?
BOOTBOOTYesNox86-64 (PC, UEFI, El Torito CDROM, BSS Expansion ROM, UEFI Option ROM), ARM AArch64 (Raspberry Pi 3 and up)ELF64 / PE32+serialgzipcomes with a multiplatform, dependency-free bootable hybrid image creator (FOSS)
EasybootYesNox86-64 (BIOS, UEFI), ARM AArch64 (Raspberry Pi 3 and up)ELF32, ELF64, PE32+/COFF, a.out, Multiboot2, MZ, Linux zImage, Linux bzImage, FreeBSD BTX, OpenBSD ELF kernel image ?gzipcomes with a multiplatform, dependency-free bootable hybrid image creator (FOSS), Multiboot2 extensions (clean 64-bit, higher-half, embedded-tags-free, EDID and SMP support)
Yaboot NoNoPowerPC (Open Firmware)Linux ELF imageTFTPNo
RedBoot Yesyes (boot only)ARM, ColdFire, H8300, x86, Freescale/Motorola 68000, MIPS, PowerPC, SH, SPARC, SPARCLiteELFTFTP, serial (X-modem)gzip
Das U-Boot YesYesPowerPC, ARM, AVR32, Blackfin, ColdFire, IXP, Leon2, m68k, MicroBlaze, MIPS, NIOS, NIOS2, PXA, x86, RISC-V, StrongARM, SH2, SH3, SH4, ...EFI, ELF, U-Boot image format, Linux zImage, rawTFTP, NFS, serial (S-Record, Y-Modem, Kermit binary protocol)bzip2, gzip, lzma
Barebox YesYesARM, Blackfin, NIOS2, MIPS, x86, PowerPCELF, U-Boot image formatTFTP, NFS, serial (S-Record, Y-Modem, Kermit binary protocol)bzip2, gzip, lz4, xz, lzo
Linux kexecDepending on user spaceDepending on user spacex86, ARM, ARM64, PowerPC, PowerPC 64, IA-64, IBM Z, RISC-V [13] Linux bzImage, Multiboot, other ELF imageDepending on configuration and user spaceThe kexec system call can start another kernel, replacing the current running Linux, thus turning a Linux-based operating system into a fancy bootloader.
NTLDR NoNox86 (PC)Windows NT kernel image (PE), MBR image ? ?default bootloader on Windows NT
SimplebootYesNox86-64 (PC, UEFI)Linux zImage, Linux bzImage, ELF32 / ELF64 / COFF / PE32+ with Multiboot2  ?anycomes with a multiplatform, dependency-free image creator (FOSS), supports 64-bit higher-half kernels with Multiboot2
TianoCore EDK IIYesYesARM, RISC-V, x86EFIHTTPS ?UEFI reference implementation
Windows Boot Manager NoNox86 (PC), ARM (only on Windows Mobile remake) Portable Executable  ? ?Successor of NTLDR; used on Vista and up.
FreeLoader (ReactOS)NoNox86 (PC), ARM, PowerPC ? ? ?clone of NTLDR
extipl ? ? ? ? ? ? IBM IPL upper compatible
Multiple Boot Manager ? ? ? ? ? ?
bootload (Technologic Systems) ? ?ARM ? ? ? Proprietary
LimineYesNox86 (PC, UEFI), ARM Multiboot 1 and 2, Stivale 1 and 2, Linux zImage and bzImageTFTPgzip
wolfBootNoNoARM, RISC-V, PowerPC, x86Binary, ELF32/ELF64, Multiboot2NoNoOpen-source, OS-agnostic (run along-side RTOS, Linux or bare-metal), ARM TrustZone-M support, Hardware Security Module support (including TPM 2.0), Integrity and authenticity verification of firmware images. Roll-back to previous image, Encryption, Self-update
NameAdvanced commandScriptableSupported architectureSupported executableSupported protocolSupported decompressionOthers

Notes

  1. Daniel Kiper (20 December 2023). "GRUB 2.12 released" . Retrieved 20 December 2023.
  2. "stage2/dosstart.S". GitHub. 2014-10-12. Retrieved 2021-06-24. Since we have copied the Linux kernel code and the Linux kernel follows GPL2, so only GPL2 is adoptable and it rules here.
  3. http://www.reactos.org/newsletter-37 - Freeloader can load Windows Server 2003 directly, as long as it is on a FAT32 partition
  4. 1 2 Rod Smith, "Managing EFI Boot Loaders for Linux: Using gummiboot", 5 November 2012.
  5. "Chain0 - OSx86".
  6. "GNU GRUB Manual 2.06: Supported kernels". GNU. Free Software Foundation, Inc. Retrieved 2021-06-24.
  7. "GNU GRUB Manual 2.06: Device syntax". GNU. Free Software Foundation, Inc. Retrieved 2021-06-24. If you enabled the network support, the special drives (protocol[,server]) are also available. Supported protocols are 'http' and 'tftp'.
  8. "GNU GRUB Manual 2.02: Features".
  9. WHR. "An experiment to make a Multiboot-compliant kFreeBSD i386 image". SourceForge. Rivoreo. Retrieved 2021-06-24. Since 10.3-RELEASE, the BTX loader included in distribution supports Multiboot, but only for Xen (the Xen image is a Multiboot-compliant kernel). ... Because this multiboot support in BTX loader is designed for Xen only, it requires the first Multiboot module be original kFreeBSD image. Trying to load a Multiboot kernel without loading any Multiboot modules would resulted in BTX loader complaining 'No FreeBSD kernel provided, aborting'.
  10. "Can SYSLINUX Handle Large Kernels?". Syslinux Wiki. Retrieved 2021-06-24.
  11. "Mboot.c32 - Syslinux Wiki". www.syslinux.org. Retrieved 2018-10-12.
  12. "Comboot/chain.c32". Syslinux Wiki. Retrieved 2021-06-24.
  13. "Documentation for Kdump - The kexec-based Crash Dumping Solution" (text/plain). The Linux Kernel Archives. Retrieved 2021-06-24.

Related Research Articles

XFS is a high-performance 64-bit journaling file system created by Silicon Graphics, Inc (SGI) in 1993. It was the default file system in SGI's IRIX operating system starting with its version 5.3. XFS was ported to the Linux kernel in 2001; as of June 2014, XFS is supported by most Linux distributions; Red Hat Enterprise Linux uses it as its default file system.

ext2, or second extended file system, is a file system for the Linux kernel. It was initially designed by French software developer Rémy Card as a replacement for the extended file system (ext). Having been designed according to the same principles as the Berkeley Fast File System from BSD, it was the first commercial-grade filesystem for Linux.

<span class="mw-page-title-main">GNU GRUB</span> Boot loader package

GNU GRUB is a boot loader package from the GNU Project. GRUB is the reference implementation of the Free Software Foundation's Multiboot Specification, which provides a user the choice to boot one of multiple operating systems installed on a computer or select a specific kernel configuration available on a particular operating system's partitions.

<span class="mw-page-title-main">SYSLINUX</span> Bootloader suite for Linux operating system

The Syslinux Project is a suite of five different boot loaders for starting up Linux distros on computers. It was primarily developed by H. Peter Anvin.

In computing, a loadable kernel module (LKM) is an object file that contains code to extend the running kernel, or so-called base kernel, of an operating system. LKMs are typically used to add support for new hardware and/or filesystems, or for adding system calls. When the functionality provided by an LKM is no longer required, it can be unloaded in order to free memory and other resources.

<span class="mw-page-title-main">Multi-booting</span> Act of installing multiple operating systems on a single computer

Multi-booting is the act of installing multiple operating systems on a single computer, and being able to choose which one to boot. The term dual-booting refers to the common configuration of specifically two operating systems. Multi-booting may require a custom boot loader.

<span class="mw-page-title-main">UEFI</span> Technical specification for firmware architecture

Unified Extensible Firmware Interface is a specification for the firmware architecture of a computing platform. When a computer is powered on, the UEFI-implementation is typically the first that runs, before starting the operating system. Examples include AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O.

vmlinux Executable file containing the Linux kernel

vmlinux is a statically linked executable file that contains the Linux kernel in one of the object file formats supported by Linux, which includes Executable and Linkable Format (ELF) and Common Object File Format (COFF). The vmlinux file might be required for kernel debugging, symbol table generation or other operations, but must be made bootable before being used as an operating system kernel by adding a multiboot header, bootsector and setup routines.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

The Quick Emulator (QEMU) is a free and open-source emulator that uses dynamic binary translation to emulate a computer's processor; that is, it translates the emulated binary codes to an equivalent binary format which is executed by the machine. It provides a variety of hardware and device models for the virtual machine, enabling it to run different guest operating systems. QEMU can be used with a Kernel-based Virtual Machine (KVM) to emulate hardware at near-native speeds. Additionally, it supports user-level processes, allowing applications compiled for one processor architecture to run on another.

<span class="mw-page-title-main">GUID Partition Table</span> Computer disk partitioning standard

The GUID Partition Table (GPT) is a standard for the layout of partition tables of a physical computer storage device, such as a hard disk drive or solid-state drive, using universally unique identifiers (UUIDs), which are also known as globally unique identifiers (GUIDs). Forming a part of the Unified Extensible Firmware Interface (UEFI) standard, it is nevertheless also used for some BIOSs, because of the limitations of master boot record (MBR) partition tables, which use 32 bits for logical block addressing (LBA) of traditional 512-byte disk sectors.

The Multiboot specification is an open standard describing how a boot loader can load an x86 operating system kernel. The specification allows any compliant boot-loader implementation to boot any compliant operating-system kernel. Thus, it allows different operating systems and boot loaders to work together and interoperate, without the need for operating system–specific boot loaders. As a result, it also allows easier coexistence of different operating systems on a single computer, which is also known as multi-booting.

A kernel is a component of a computer operating system. A comparison of system kernels can provide insight into the design and architectural choices made by the developers of particular operating systems.

<span class="mw-page-title-main">Das U-Boot</span> Open-source, primary boot the devices operating system kernel

Das U-Boot is an open-source boot loader used in embedded devices to perform various low-level hardware initialization tasks and boot the device's operating system kernel. It is available for a number of computer architectures, including M68000, ARM, Blackfin, MicroBlaze, AArch64, MIPS, Nios II, SuperH, PPC, RISC-V, LoongArch and x86.

mdadm is a Linux utility used to manage and monitor software RAID devices. It is used in modern Linux distributions in place of older software RAID utilities such as raidtools2 or raidtools.

The Linux booting process involves multiple stages and is in many ways similar to the BSD and other Unix-style boot processes, from which it derives. Although the Linux booting process depends very much on the computer architecture, those architectures share similar stages and software components, including system startup, bootloader execution, loading and startup of a Linux kernel image, and execution of various startup scripts and daemons. Those are grouped into 4 steps: system startup, bootloader stage, kernel stage, and init process.

gPXE is an open-source Preboot eXecution Environment (PXE) client firmware implementation and bootloader derived from Etherboot. It can be used to enable computers without built-in PXE support to boot from the network, or to extend an existing client PXE implementation with support for additional protocols. While standard PXE clients use TFTP to transfer data, gPXE client firmware adds the ability to retrieve data through other protocols like HTTP, iSCSI and ATA over Ethernet (AoE), and can work with Wi-Fi rather than requiring a wired connection.

<span class="mw-page-title-main">SeaBIOS</span> Open-source implementation of x86 BIOS

SeaBIOS is an open-source implementation of an x86 BIOS, serving as a freely available firmware for x86 systems. Aiming for compatibility, it supports standard BIOS features and calling interfaces that are implemented by a typical proprietary x86 BIOS. SeaBIOS can either run on bare hardware as a coreboot payload, or can be used directly in emulators such as QEMU and Bochs.

<span class="mw-page-title-main">NetBSD</span> Free and open-source Unix-like operating system

NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is available for many platforms, including servers, desktops, handheld devices, and embedded systems.

<span class="mw-page-title-main">OpenZFS</span> Open-source implementation of the ZFS file system

OpenZFS is an open-source implementation of the ZFS file system and volume manager initially developed by Sun Microsystems for the Solaris operating system, and is now maintained by the OpenZFS Project. Similar to the original ZFS, the implementation supports features like data compression, data deduplication, copy-on-write clones, snapshots, RAID-Z, and virtual devices that can create filesystems that span multiple disks.

rEFInd Boot manager for UEFI systems

rEFInd is a boot manager for UEFI and EFI-based machines. It can be used to boot multiple operating systems that are installed on a single non-volatile device. It also provides a way to launch UEFI applications.