grub.cfg: try luks2/crypto-lvm before non-crypto
when the user sets up an encrypted machine, grub.cfg defaults to non-encrypted setups if found, first this patch reverses the order, deferring to non-encrypted installations only when encrypted ones are unavailable Signed-off-by: Leah Rowe <leah@libreboot.org>btrfsvols
parent
3a36c8277e
commit
20389655e4
|
@ -92,28 +92,10 @@ function search_isolinux {
|
||||||
}
|
}
|
||||||
menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o' {
|
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"
|
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"
|
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 ahcidev
|
||||||
unset atadev
|
unset atadev
|
||||||
for i in 11 10 9 8 7 6 5 4 3 2 1 0; do
|
for i in 11 10 9 8 7 6 5 4 3 2 1 0; do
|
||||||
|
@ -135,12 +117,20 @@ menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o
|
||||||
set pager=1
|
set pager=1
|
||||||
echo
|
echo
|
||||||
|
|
||||||
# after cryptomount, lvm volumes might be available
|
# prefer crypto first (lvm before raid, because lvm
|
||||||
for vol in ${lvmvol}; do
|
# volumes might exist inside luks/luks2)
|
||||||
|
search_grub crypto
|
||||||
|
for vol in ${lvmvol} ${raidvol}; do
|
||||||
try_user_config "${vol}"
|
try_user_config "${vol}"
|
||||||
done
|
done
|
||||||
|
|
||||||
search_grub crypto
|
# 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
|
||||||
|
|
||||||
if [ "${grub_scan_disk}" != "ata" ]; then
|
if [ "${grub_scan_disk}" != "ata" ]; then
|
||||||
# Last resort, if all else fails
|
# Last resort, if all else fails
|
||||||
|
|
Loading…
Reference in New Issue