Difference between revisions of "Boot loaders"

From ArchWiki
Jump to: navigation, search
m (Link "BIOS" to "Arch_Boot_Process" page)
(Both BIOS and UEFI boot loaders: remove BURG: unmaintained and no working (AUR) packages available)
 
(51 intermediate revisions by 23 users not shown)
Line 1: Line 1:
 
[[Category:Boot loaders]]
 
[[Category:Boot loaders]]
The boot loader is the first piece of software started by the [[Arch_Boot_Process|BIOS]] or [[UEFI]]. It is responsible for loading the kernel with the wanted [[kernel parameters]], and [[mkinitcpio|initial RAM disk]] before initiating the [[Arch Boot Process|boot process]]. You can use [[:Category:Boot loaders|different kinds]] of bootloaders in Arch, such as [[GRUB]] and [[Syslinux]]. Some bootloaders only support BIOS or UEFI and some support both.
+
[[es:Boot loaders]]
 +
[[ja:ブートローダー]]
 +
[[ru:Boot loaders]]
 +
[[zh-CN:Boot loaders]]
 +
The boot loader is the first piece of software started by the [[Wikipedia:BIOS|BIOS]] or [[UEFI]]. It is responsible for loading the kernel with the wanted [[kernel parameters]], and [[mkinitcpio|initial RAM disk]] before initiating the [[boot process]]. You can use [[:Category:Boot loaders|different kinds]] of bootloaders in Arch, such as [[GRUB]] and [[Syslinux]]. Some bootloaders only support BIOS or UEFI and some support both.
  
This page will only contain a short introduction and the most used configurations that users will encounter. For detailed information, please see the corresponding pages of each boot loader.
+
This page contains a short introduction about bootloaders available in Arch. For detailed information see the corresponding pages of each bootloader.
  
== Both BIOS and UEFI Boot Loaders ==
+
{{Note|Loading [[Microcode]] updates requires adjustments in boot loader configuration. [https://www.archlinux.org/news/changes-to-intel-microcodeupdates/]}}
 +
 
 +
== Both BIOS and UEFI boot loaders ==
  
 
=== GRUB ===
 
=== GRUB ===
  
See [[GRUB]]
+
[[GRUB]] is more feature-rich and supports more complex scenarios. Its configuration file(s) is more similar to 'sh' scripting language, and can be automatically generated.
 
+
{{Note|About UEFI support: GRUB 2.x contains its own filesystem drivers and does not rely on the firmware to access the files. It can directly read files from {{ic|/boot}} and does not require the kernel and initramfs files to be in the UEFISYS partition. Detailed information at [[GRUB#UEFI_systems_2]]. For GIT development version try AUR package - {{AUR|grub-git}}}}
+
  
 
=== Syslinux ===
 
=== Syslinux ===
  
See [[Syslinux]]
+
[[Syslinux]] is (currently) limited to loading only files from the partition where it was installed. An example configuration can be found in [[Syslinux#Examples]].
  
== UEFI-only Boot Loaders ==
+
== UEFI-only boot loaders ==
  
 
=== Linux Kernel EFISTUB ===
 
=== Linux Kernel EFISTUB ===
  
Follow [[EFISTUB]]
+
The Linux kernel can be booted directly using the built-in EFI stub loader. See [[EFISTUB]].
  
==== Gummiboot ====
+
==== systemd-boot ====
  
Gummiboot is a UEFI Boot Manager (not a boot loader) which provides a menu for EFISTUB kernels. For more info follow [[Gummiboot]].
+
systemd includes an EFI bootloader which provides a text menu for booting EFISTUB kernels. See [[systemd-boot]].
  
 
==== rEFInd ====
 
==== rEFInd ====
  
rEFInd is a UEFI Boot Manager which provides a menu for EFISTUB kernels. It is alternative to Gummiboot. For more info follow [[EFISTUB#Using_rEFInd|rEFInd]].
+
rEFInd is a UEFI Boot Manager which provides a graphical menu for booting EFISTUB kernels. See [[rEFInd]].
 +
 
 +
==== Clover ====
 +
 
 +
Clover is a UEFI Boot Manager which provides native resolution GUI for booting EFISTUB kernels. See [[Clover]].
  
 
=== ELILO ===
 
=== ELILO ===
  
ELILO is the UEFI version of LILO Boot Loader (although it does not share code with BIOS based [[LILO]] boot loader). It was originally created for Intel Itanium systems which supported only EFI 1.x (precursor to UEFI 2.x). It is the oldest UEFI bootloader for Linux. Elilo config file {{ic|elilo.conf}} is similar to [[LILO]]'s config file. ELILO does not support chainloading other EFI applications. and does not provide a menu by default (setting up requires additional configuration as described in {{ic|elilo/docs/textmenu_chooser.txt}} file. Upstream provided compiled binaries are available at http://sourceforge.net/projects/elilo/ and AUR package at {{AUR|elilo-efi}}.
+
{{Warning|1=ELILO upstream has clarified that it is no longer in active development, meaning no new features will be added and only bug-fixes are released. See https://sourceforge.net/mailarchive/message.php?msg_id=31524008 for more information. ELILO is not officially supported by Arch developers.}}
  
{{Warning|1=ELILO upstream has clarified that it is no longer in active development, meaning no new features will be added and only bug-fixes are released. See https://sourceforge.net/mailarchive/message.php?msg_id=31524008 for more info. '''ELILO is not officially supported by Arch devs.'''}}
+
ELILO is the UEFI version of the BIOS-only [[LILO]]. Its config file {{ic|elilo.conf}} is similar to [[LILO]]'s config file. Upstream provided compiled binaries are available at http://sourceforge.net/projects/elilo/ and an AUR package at {{AUR|elilo-efi}}.
  
== BIOS-only Boot Loaders ==
+
== BIOS-only boot loaders ==
 +
 
 +
{{Warning|None of the options presented here are officialy supported in Arch Linux.}}
  
 
=== GRUB Legacy ===
 
=== GRUB Legacy ===
  
Follow [[GRUB Legacy]]
+
GRUB Legacy (also known as grub-0.97), is the legacy, BIOS-only branch of [[GRUB]]. See [[GRUB Legacy]].
 
+
{{Note|GRUB Legacy (also known as grub-0.97) is not officially supported by Arch devs.}}
+
  
 
=== LILO ===
 
=== LILO ===
  
Follow [[LILO]]
+
See [[LILO]].
 
+
{{Note|LILO is not officially supported by Arch devs, although it seems to be actively developed.}}
+
 
+
== Troubleshooting ==
+
 
+
=== UEFI Boot Loader does not show up in firmware menu ===
+
 
+
On some UEFI motherboards like boards with an Intel Z77 chipset, adding entries with {{ic|efibootmgr}} or {{ic|bcfg}} from the EFI Shell will not work because they don't show up on the boot menu list after being added to NVRAM.
+
 
+
This issue is caused because the motherboards can only load Microsoft Windows. To solve this you have to place the {{ic|.efi}} file in the location that Windows uses.
+
  
Copy the {{ic|bootx64.efi}} file from the Arch Linux installation medium ({{ic|FSO:}}) to the Microsoft directory your ESP partition on your hard drive ({{ic|FS1:}}). Do this by booting into EFI shell and typing:
+
=== NeoGRUB ===
  
FS1:
+
NeoGRUB provides a means to boot Arch from the Windows boot loader without installing an additional boot loader. See [[NeoGRUB]].
cd EFI
+
mkdir Microsoft
+
cd Microsoft
+
mkdir Boot
+
cp FS0:\EFI\BOOT\bootx64.efi FS1:\EFI\Microsoft\Boot\bootmgfw.efi
+
  
After reboot, any entries added to NVRAM should show up in the boot menu.
+
Booting Arch from NeoGRUB has not been tested yet from Windows 8 and/or UEFI systems.
  
 
== See also ==
 
== See also ==
Line 73: Line 66:
 
* [http://www.rodsbooks.com/efi-bootloaders/ Rod Smith - Managing EFI Boot Loaders for Linux]
 
* [http://www.rodsbooks.com/efi-bootloaders/ Rod Smith - Managing EFI Boot Loaders for Linux]
 
* [http://www.rodsbooks.com/refind/ Rod Smith - rEFInd, a fork or rEFIt]
 
* [http://www.rodsbooks.com/refind/ Rod Smith - rEFInd, a fork or rEFIt]
* [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob_plain;f=Documentation/x86/efi-stub.txt;hb=HEAD Linux Kernel Documentation on EFISTUB]
+
* [https://www.kernel.org/doc/Documentation/efi-stub.txt Linux Kernel Documentation on EFISTUB]
 
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=291f36325f9f252bd76ef5f603995f37e453fc60;hp=55839d515495e766605d7aaabd9c2758370a8d27 Linux Kernel EFISTUB Git Commit]
 
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=291f36325f9f252bd76ef5f603995f37e453fc60;hp=55839d515495e766605d7aaabd9c2758370a8d27 Linux Kernel EFISTUB Git Commit]
 
* [http://www.rodsbooks.com/efi-bootloaders/efistub.html Rod Smith's page on EFISTUB]
 
* [http://www.rodsbooks.com/efi-bootloaders/efistub.html Rod Smith's page on EFISTUB]
 
* [http://www.rodsbooks.com/refind/linux.html rEFInd Documentation for booting EFISTUB Kernels]
 
* [http://www.rodsbooks.com/refind/linux.html rEFInd Documentation for booting EFISTUB Kernels]

Latest revision as of 13:17, 2 September 2015

The boot loader is the first piece of software started by the BIOS or UEFI. It is responsible for loading the kernel with the wanted kernel parameters, and initial RAM disk before initiating the boot process. You can use different kinds of bootloaders in Arch, such as GRUB and Syslinux. Some bootloaders only support BIOS or UEFI and some support both.

This page contains a short introduction about bootloaders available in Arch. For detailed information see the corresponding pages of each bootloader.

Note: Loading Microcode updates requires adjustments in boot loader configuration. [1]

Both BIOS and UEFI boot loaders

GRUB

GRUB is more feature-rich and supports more complex scenarios. Its configuration file(s) is more similar to 'sh' scripting language, and can be automatically generated.

Syslinux

Syslinux is (currently) limited to loading only files from the partition where it was installed. An example configuration can be found in Syslinux#Examples.

UEFI-only boot loaders

Linux Kernel EFISTUB

The Linux kernel can be booted directly using the built-in EFI stub loader. See EFISTUB.

systemd-boot

systemd includes an EFI bootloader which provides a text menu for booting EFISTUB kernels. See systemd-boot.

rEFInd

rEFInd is a UEFI Boot Manager which provides a graphical menu for booting EFISTUB kernels. See rEFInd.

Clover

Clover is a UEFI Boot Manager which provides native resolution GUI for booting EFISTUB kernels. See Clover.

ELILO

Warning: ELILO upstream has clarified that it is no longer in active development, meaning no new features will be added and only bug-fixes are released. See https://sourceforge.net/mailarchive/message.php?msg_id=31524008 for more information. ELILO is not officially supported by Arch developers.

ELILO is the UEFI version of the BIOS-only LILO. Its config file elilo.conf is similar to LILO's config file. Upstream provided compiled binaries are available at http://sourceforge.net/projects/elilo/ and an AUR package at elilo-efiAUR.

BIOS-only boot loaders

Warning: None of the options presented here are officialy supported in Arch Linux.

GRUB Legacy

GRUB Legacy (also known as grub-0.97), is the legacy, BIOS-only branch of GRUB. See GRUB Legacy.

LILO

See LILO.

NeoGRUB

NeoGRUB provides a means to boot Arch from the Windows boot loader without installing an additional boot loader. See NeoGRUB.

Booting Arch from NeoGRUB has not been tested yet from Windows 8 and/or UEFI systems.

See also