Commit Graph

100 Commits

Author SHA1 Message Date
Gabriel Craciunescu
47c167dc04 [bootloader] Resume from outer swap partition
- These fixes are similar to the other swap-from-LUKS changes,
  and just needed to be applied to a different module.
2020-03-18 17:21:20 +01:00
Kevin Kofler
ec7c5a4611 [bootloader] Fix sb-shim mode to write grub.cfg into the ESP
src/modules/bootloader/main.py (install_secureboot): Run the configured
grubMkconfig command (should be `grub-mkconfig` or `grub2-mkconfig`) to
create `/boot/efi/EFI/$efi_bootloader_id/grub.cfg`. The sb-shim is just
a chainloader to GRUB 2, which expects a grub.cfg in that location, so
something has to create it or the installed system will not boot beyond
the GRUB rescue shell.
(install_grub): Fix misleading comment above the grubMkconfig call: it
is not the file specified in grubCfg that should be already filled out
by the grubcfg job module, that file is written by `grub*-mkconfig`
using `/etc/default/grub` as the input file. It is that input file
`/etc/default/grub` that should already be filled out by the grubcfg job
module. (The same input file is used in install_secureboot.)
2019-05-12 16:11:35 +02:00
Adriaan de Groot
e972c175d8 [bootloader] Fix typo's
- There's a general "partititon" typo, but the variable
   name also is misused.
2019-05-10 18:26:59 -04:00
Adriaan de Groot
23ae6b77bd [bootloader] Convert to str
- The output of subprocess is a bytes object, which needs to
   be decoded so we can use it like a regular string (alternatively,
   we could have changed more code to manipulate bytes, but eventually
   we need a string to pass to a subsequent command anyway).
2019-05-10 15:35:00 -04:00
Adriaan de Groot
9bf1d83c2f [bootloader] Centralize the filename sanitizer
- Centralize the sanitizer so that it's consistent in different
   environments.
 - While here, add () to the sanitizer to avoid some distro's with
   parenthesized names from creating weird EFI dirs.
2019-05-10 15:28:37 -04:00
Adriaan de Groot
dd5c0d1629 [bootloader] Log when the bootloader-module does nothing 2019-04-19 16:47:53 +02:00
Adriaan de Groot
333f0d9215 [bootloader] Simplify finding the ESP 2019-04-19 16:43:07 +02:00
Adriaan de Groot
df37c51c1e [bootloader] [hwclock] Translate module name 2019-04-19 16:39:41 +02:00
Arnaud Ferraris
a14968a646 [bootloader] Fix systemd-boot installation
When choosing `systemd-boot` as the bootloader, numerous problems
occurred:

- the kernel and initrd were not copied to the EFI System Partition,
and therefore could not be reached by the bootloader
- the fallback entry used the default initramfs image instead of the
fallback image

`systemd-boot` provides the `kernel-install` utility, which
automatically copies the kernel + initramfs to the EFI partition, and
creates the corresponding bootloader entry.

Unfortunately, `kernel-install` cannot be used here as the module is not
executed in a chroot. As setting up one only for running a single
command would be overkill, this patch re-creates what `kernel-install`
usually does:

- copy the kernel and initramfs to their own subdirectory at the root of
the EFI partition
- create the corresponding entry configuration file

To this end, the `systemd-boot` installation code in the `bootloader`
module has been largely refactored, including removing a few duplicate
LOCs.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-02-08 18:00:58 +01:00
Philip Müller
18bd455ae1 [bootloader] make paths for executable optional and adjustable 2018-06-17 07:47:58 +02:00
Adriaan de Groot
fdda1ef840 [bootloader] Mimic openSUSE's efibootmgr calls 2018-05-28 11:47:47 -04:00
Adriaan de Groot
dad3669eae [bootloader] Take a stab at determining the shim name 2018-05-28 09:26:20 -04:00
Adriaan de Groot
e4bda546cf [bootloader] factor our EFI-platform-bitness discovery 2018-05-28 09:24:43 -04:00
Adriaan de Groot
06536b6a66 [bootloader] Refactor method for safe efi label 2018-02-20 10:47:14 -05:00
Adriaan de Groot
7f53e970fc [bootloader] Add secure-boot efiBootLoader
- add configuration option
 - check for sensible combinations of firmware, bootloader,
   and complain if it isn't.
2018-02-20 05:10:32 -05:00
Adriaan de Groot
533031b3ca [bootloader] print() does not log
- use the right logging method; print just vanishes.
2018-01-30 11:26:29 +01:00
Adriaan de Groot
f869a0f263 [bootloader] Log the EFI fallback action 2018-01-30 11:22:36 +01:00
Adriaan de Groot
78108c5cda [bootloader] Allow skipping the EFI fallback 2018-01-29 22:55:07 +01:00
Adriaan de Groot
762ad54344 Documentation: change http links to GitHub to https 2017-12-20 08:39:09 -05:00
Philip
b15d970845 [bootloader] fix regression introduced with d179a9e
- see also #840
2017-10-28 03:41:29 -04:00
Bezzy1999
17fb91cda5 added my name 2017-10-25 18:47:23 +01:00
Bezzy1999
cc6db5b808 pep8 2017-10-25 18:45:58 +01:00
crispg72
d179a9e3b1 Tidied up bitness check 2017-10-24 20:32:15 +01:00
Philip
10ede796f8 [bootloader] use generic file names instead of grub
- this fixes #839
2017-10-23 12:52:40 -04:00
Adriaan de Groot
cec7132d2c Swap + LUKS configuration.
Based on patches from crazy@frugalware.org and V3n3RiX.

(presumably) FIXES #730
2017-09-07 03:43:42 -04:00
Alf Gaida
d62eecd71e Fixed two typos that leads to pep8 whining 2017-03-29 20:19:41 +02:00
Alf Gaida
c12f7f1d4c fix mkdirs -> makedirs 2017-03-24 16:39:25 +01:00
Alf Gaida
50cefe2ca8 fixes #692 bootloader module fails when /EFI/Boot exists
- to make it short - it doesn't help much if one try to find and process any
  EFI related things in the live system. The better approach is to search in
  the chroot.
- use python builtins for mkdir and cp
- replacing some subprocess calls
- Some PEP8 changes
- added myself to the copyright section
2017-03-20 14:47:39 +01:00
Teo Mrnjavac
6d486bbc1f Improve EFI configuration check in bootloader. 2017-02-17 16:21:02 +01:00
Teo Mrnjavac
79fd88f948 Don't fail if no path. 2017-01-18 19:10:09 +01:00
Teo Mrnjavac
969e5c1d55 Improve check. 2017-01-17 18:13:51 +01:00
Teo Mrnjavac
7d2bd264b6 Useless check is useless. 2017-01-17 18:03:51 +01:00
Kevin Kofler
4f11faea52 [bootloader] Fix UEFI firmware workaround for 32-bit UEFI.
On 32-bit UEFI (note that the bitness of the firmware is what matters
here, not the bitness of the distribution), instead of copying
grubx64.efi to bootx64.efi, copy grubia32.efi to bootia32.efi.

Patch by TeHMoroS from SparkyLinux.

CAL-403 #close
2016-11-06 03:38:34 +01:00
Kevin Kofler
62bded1447 [bootloader] Fix vfat_correct_case.
If the directory already existed, vfat_correct_case was returning only
the last part rather than the full path as it is supposed to.
2016-11-05 17:41:38 +01:00
Kevin Kofler
5377003f89 Set the ESP flag in partition rather than bootloader.
The manual partitioning setup was already requiring the user to check
the ESP flag for the EFI System Partition. Now the autopartitioning also
sets it directly (a one-line change). The sgdisk call in the bootloader
module is thus no longer necessary (it was only a workaround because
kpmcore < 2.1.0 did not support FlagEsp), so remove that snippet.

This fixes configurations such as NVME disks where splitting boot_device
into boot_device[-1:] and boot_device[:-1] is not the correct split
(because the partition gets a 2-letter suffix) (reported by demmm on
IRC).
2016-10-29 00:52:38 +02:00
Teo Mrnjavac
3408eb5c56 Fix VFAT filename handling in bootloader module.
CAL-385 #close
2016-09-16 16:31:38 +02:00
Teo Mrnjavac
83b341b0f7 Handle a variety of case-insensitive situations on the VFAT ESP.
This fixes CAL-385 #close
2016-08-23 10:23:22 +02:00
Teo Mrnjavac
5ddd0f523b Use luksMapperName as check. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
f861c13dad Improve LUKS check and use luksUuid instead of uuid. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
e1ee6e181a Proper check for luksMapperName key. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
b6c2e0f4d7 Documentation 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
a0350bbaaa Useless variable is useless. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
dd7cd42118 Fixes suggested by linter. 2016-05-06 18:59:51 +02:00
Teo Mrnjavac
282f1f9135 Add LUKS support to systemd-boot configuration. 2016-05-06 18:59:51 +02:00
JoernSchoenyan
7e8129a902 Enable support for 32bit UEFI systems with Grub
Read the UEFI bitness exposed to the file system and install the correct
variant of Grub, depending on the UEFI bitness.
2016-03-15 13:11:25 +01:00
Teo Mrnjavac
ed44f24048 Don't fail. 2016-03-10 17:35:20 +01:00
Teo Mrnjavac
965570af96 Skip installing EFI bootloader if no ESP with mount point is found. 2016-03-10 13:37:14 +01:00
Teo Mrnjavac
10ce42f35c Use target_env calls in Python modules. 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
8c537daadc Do not try to install the bootloader if a path is not defined. 2015-07-07 19:15:48 +02:00
Gormogon
9f8a8f6a64 PEP and Unused Import 2015-06-14 08:22:35 -04:00