X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=system-booting.adoc;h=24ceb7ee91df8ed7b2809ea0763193bad64d9d48;hb=40e6c80663d661debf3a3cff5de7779bf1d4691b;hp=82aa27338867113b31f969912e6e3c215d382e8a;hpb=300655b3a5efacccf5fc719c1bcc8b69189f598a;p=pve-docs.git diff --git a/system-booting.adoc b/system-booting.adoc index 82aa273..24ceb7e 100644 --- a/system-booting.adoc +++ b/system-booting.adoc @@ -12,8 +12,9 @@ For EFI Systems installed with ZFS as the root filesystem `systemd-boot` is used. All other deployments use the standard `grub` bootloader (this usually also applies to systems which are installed on top of Debian). + [[sysboot_installer_part_scheme]] -Partitioning scheme used by the installer +Partitioning Scheme Used by the Installer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The {pve} installer creates 3 partitions on the bootable disks selected for @@ -39,6 +40,45 @@ The created partitions are: Partition of all bootable disks for supporting older systems. +[[sysboot_determine_bootloader_used]] +Determine which Bootloader is Used +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +[thumbnail="screenshot/boot-grub.png", float="left"] + +The simplest and most reliable way to determine which bootloader is used, is to +watch the boot process of the {pve} node. + +You will either see the blue box of `grub` or the simple black on white +`systemd-boot`. + +[thumbnail="screenshot/boot-systemdboot.png"] + +Determining the bootloader from a running system might not be 100% accurate. The +safest way is to run the following command: + + +---- +# efibootmgr -v +---- + +If it returns a message that EFI variables are not supported, `grub` is used in +BIOS/Legacy mode. + +If the output contains a line that looks similar to the following, `grub` is +used in UEFI mode. + +---- +Boot0005* proxmox [...] File(\EFI\proxmox\grubx64.efi) +---- + +If the output contains a line similar to the following, `systemd-bood` is used. + +---- +Boot0006* Linux Boot Manager [...] File(\EFI\systemd\systemd-bootx64.efi) +---- + + [[sysboot_grub]] Grub ~~~~ @@ -86,8 +126,9 @@ The following kernel versions are configured by default: * the currently running kernel * the version being newly installed on package updates -* the two latest kernels -* the latest version of each kernel series (e.g. 4.15, 5.0). +* the two latest already installed kernels +* the latest version of the second-to-last kernel series (e.g. 4.15, 5.0), if applicable +* any manually selected kernels (see below) The ESPs are not kept mounted during regular operation, in contrast to `grub`, which keeps an ESP mounted on `/boot/efi`. This helps to prevent filesystem @@ -119,7 +160,7 @@ initrd /EFI/proxmox/5.0.15-1-pve/initrd.img-5.0.15-1-pve .Manually keeping a kernel bootable Should you wish to add a certain kernel and initrd image to the list of -bootable kernel use `pve-efiboot-tool kernel add`. +bootable kernels use `pve-efiboot-tool kernel add`. For example run the following to add the kernel with ABI version `5.0.15-1-pve` to the list of kernels to keep installed and synced to all ESPs: @@ -148,6 +189,8 @@ selected kernels, for example: pve-efiboot-tool kernel remove 5.0.15-1-pve ---- +NOTE: It's required to run `pve-efiboot-tool refresh` to update all EFI System +Partitions (ESPs) after a manual kernel addition or removal from above. [[sysboot_systemd_boot_setup]] .Setting up a new partition for use as synced ESP @@ -180,19 +223,26 @@ trigger a refresh of all configured ESPs. .Updating the configuration on all ESPs To copy and configure all bootable kernels and keep all ESPs listed in -`/etc/kernel/pve-efiboot-uuids` in sync you just need to run `pve-efiboot-tool -refresh`. -(The equivalent to running `update-grub` on Systems being booted with `grub`). +`/etc/kernel/pve-efiboot-uuids` in sync you just need to run: + +---- + pve-efiboot-tool refresh +---- +(The equivalent to running `update-grub` on systems being booted with `grub`). This is necessary should you make changes to the kernel commandline, or want to -sync all kernels and initrds after regenerating the latter. +sync all kernels and initrds. + +NOTE: Both `update-initramfs` and `apt` (when necessary) will automatically +trigger a refresh. + [[sysboot_edit_kernel_cmdline]] -Editing the kernel commandline +Editing the Kernel Commandline ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can modify the kernel commandline in the following places, depending on the -bootloarder used: +bootloader used: .Grub @@ -203,6 +253,6 @@ The kernel commandline needs to be placed in the variable .Systemd-boot -The kernel commandline needs to be placed as line in `/etc/kernel/cmdline` -Running `/etc/kernel/postinst.d/zz-pve-efiboot` sets it as `option` line for -all config files in `loader/entries/proxmox-*.conf`. +The kernel commandline needs to be placed as one line in `/etc/kernel/cmdline`. +To apply your changes, run `pve-efiboot-tool refresh`, which sets it as the +`option` line for all config files in `loader/entries/proxmox-*.conf`.