diff options
author | Leah Rowe <leah@libreboot.org> | 2023-12-18 04:17:05 +0000 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2023-12-18 04:17:05 +0000 |
commit | 49eed9ac46849a2d312d3603901d28ae24deb320 (patch) | |
tree | 57998a78e272e7158be8f2a6bf22f162b5d9ff7c /config/grub | |
parent | aed4dff876d03b3b727fc687131677223eef933c (diff) |
Revert "grub.cfg: try luks2/crypto-lvm before non-crypto"
This reverts commit 20389655e42e62ebf6d96dd106c91fbe74282557.
If the user actually has encryption, but has /boot unencrypted,
this will considerably slow down the boot, so the patch has
been reverted.
The patch was originally meant to favour encrypted /boot
setups, but the old behaviour also still works there.
Diffstat (limited to 'config/grub')
-rw-r--r-- | config/grub/config/grub.cfg | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/config/grub/config/grub.cfg b/config/grub/config/grub.cfg index e10cebd7..9439778a 100644 --- a/config/grub/config/grub.cfg +++ b/config/grub/config/grub.cfg @@ -92,10 +92,28 @@ function search_isolinux { } menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o' { + if [ "${grub_scan_disk}" != "ata" ]; then + search_grub ahci + fi + if [ "${grub_scan_disk}" != "ahci" ]; then + search_grub ata + fi + + # grub device enumeration is very slow, so checks are hardcoded + + # TODO: add more strings, based on what distros set up when + # the user select auto-partitioning on those installers lvmvol="lvm/grubcrypt-bootvol lvm/grubcrypt-rootvol" raidvol="md/0 md/1 md/2 md/3 md/4 md/5 md/6 md/7 md/8 md/9" + # in practise, doing multiple redundant checks is perfectly fast and + # TODO: optimize grub itself, and use */? here for everything + + for vol in ${lvmvol} ${raidvol} ; do + try_user_config "${vol}" + done + unset ahcidev unset atadev for i in 11 10 9 8 7 6 5 4 3 2 1 0; do @@ -117,20 +135,12 @@ menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o set pager=1 echo - # prefer crypto first (lvm before raid, because lvm - # volumes might exist inside luks/luks2) - search_grub crypto - for vol in ${lvmvol} ${raidvol}; do + # after cryptomount, lvm volumes might be available + for vol in ${lvmvol}; do try_user_config "${vol}" done - # non-encrypted next, if crypto wasn't available - if [ "${grub_scan_disk}" != "ata" ]; then - search_grub ahci - fi - if [ "${grub_scan_disk}" != "ahci" ]; then - search_grub ata - fi + search_grub crypto if [ "${grub_scan_disk}" != "ata" ]; then # Last resort, if all else fails |