From 7fa8e4a5c3695c6204c94aa257d5eeb4f06006df Mon Sep 17 00:00:00 2001 From: Francis Rowe Date: Sat, 02 Jan 2016 13:49:18 -0500 Subject: grub.cfg: don't search for grub.cfg on RAID volumes Unfortunately, this means that GRUB is searching all devices, which again causes boot delays on buggy DVD/CD drives in ahci1 or ata0 --- diff --git a/resources/grub/config/menuentries/common.cfg b/resources/grub/config/menuentries/common.cfg index 9e5c04e..95599df 100644 --- a/resources/grub/config/menuentries/common.cfg +++ b/resources/grub/config/menuentries/common.cfg @@ -24,25 +24,20 @@ menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o # GRUB handles (almost) every possible disk setup, but only the location of /boot is actually important, # since GRUB only loads the user's config. As soon as the kernel takes over, libreboot's done. -# RAID, filesystems and encryption on both raw devices and partitions in all various combinations +# filesystems and encryption on both raw devices and partitions in all various combinations # need to be supported. Since full disk encryption is possible with GRUB as payload and probably desired/used # by most users, libreboot GRUB config tries to load the operating system (kernel) in the following way: - # 1. Try to decrypt raw devices first. This inside a LUKS container is pretty common - # a) Try RAID first, they might be used (accross multiple (raw) devices) - # b) Try MBR/GPT partitions at last, one might still conviniently uses a single partition + # Try to decrypt raw devices first. This inside a LUKS container is pretty common # prompt user for passphrase if LUKS header is found - for d in md/0 ahci0; do cryptomount ${d}; done - for j in 1 2 3 4 5 6 7 8 9; do cryptomount "ahci0,${j}"; done - - # (This way, we only need to scan for encrypted data once while covering every possible disk setup, - # be it BTRFS/ZFS/ext4/etc. (on LUKS) (on RAID) on/across raw devices/MBR/GPT + cryptomount ahci0 + for j in 1 2 3 4 5 6 7 8 9; do cryptomount ahci0,${j}; done # 2. Look for user config. If the above routine successfully decrypted a LUKS container, its content # will be searched before everything else for obvious reasons. Regardless of this, the devices' # hirachy stays the same. - for d in crypto0 md/0 ahci0; do switch_to_grub_config ${d}; done + for d in crypto0 ahci0; do switch_to_grub_config ${d}; done for j in 1 2 3 4 5 6 7 8 9; do for d in crypto0 ahci0; do switch_to_grub_config "${d},${j}"; done done @@ -52,8 +47,6 @@ menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o if [ $? = 0 ]; then kf="-k (${kf})/keyfile ${d}" fi - # (This way, we only need to scan for encrypted data once while covering every possible disk setup, - # be it BTRFS/ZFS/ext4/etc. (on LUKS) (on RAID) on/across raw devices/MBR/GPT for d in ${devs}; do cryptomount ${kf} ${d} done -- cgit v0.9.1