diff options
author | Francis Rowe <info@gluglug.org.uk> | 2015-01-26 11:03:56 +0000 |
---|---|---|
committer | Francis Rowe <info@gluglug.org.uk> | 2015-01-26 11:03:56 +0000 |
commit | ac9f94aab6e3082977ac7e752c834fcd52178ab2 (patch) | |
tree | 9c707751d98fa0d8d2d17abf8c956d7b281e8c53 | |
parent | 1e830e02a014a6ac790e97954d1aa65674c28112 (diff) | |
download | librebootfr-ac9f94aab6e3082977ac7e752c834fcd52178ab2.tar.gz librebootfr-ac9f94aab6e3082977ac7e752c834fcd52178ab2.zip |
grub.cfg: hardcode the list of partitions to search
For libreboot_grub.cfg or ISOLINUX parsing, the old grub.cfg was
using regexp to automatically search all partitions. For example,
it was using (ahci0,*). This, and the ls, is extremely slow on
some machines. Partition/file access is itself fast, but producing
the list can be slow.
Therefore, use hardcoded entries like ahci0,1-4 (up to 4) or
usb0,1-4 instead of *. This is less flexible, but much faster
and it should still work for most people.
-rw-r--r-- | resources/grub/config/menuentries/common.cfg | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/resources/grub/config/menuentries/common.cfg b/resources/grub/config/menuentries/common.cfg index b0a420c2..da6968c1 100644 --- a/resources/grub/config/menuentries/common.cfg +++ b/resources/grub/config/menuentries/common.cfg @@ -1,9 +1,8 @@ menuentry 'Load Operating System' { - insmod regexp insmod ahci insmod part_msdos insmod part_gpt - for x in (ahci0,*); do + for x in (ahci0,1) (ahci0,2) (ahci0,3) (ahci0,4); do if [ -f "$x/grub/libreboot_grub.cfg" ] ; then set root=$x configfile /grub/libreboot_grub.cfg @@ -21,11 +20,10 @@ menuentry 'Load Operating System' { fi } menuentry 'Parse ISOLINUX menu (USB)' { - insmod regexp insmod usbms insmod part_msdos insmod part_gpt - for x in (usb0) (usb0,*); do + for x in (usb0) (usb0,1) (usb0,2) (usb0,3) (usb0,4); do set root=$x if [ -f "/isolinux/isolinux.cfg" ] ; then syslinux_configfile -i /isolinux/isolinux.cfg @@ -56,12 +54,11 @@ menuentry 'Switch to grubtest.cfg' { configfile (cbfsdisk)/grubtest.cfg } menuentry 'Search for GRUB configuration (grub.cfg) outside of CBFS' { - insmod regexp insmod ahci insmod usbms insmod part_msdos insmod part_gpt - for x in (ahci0,*) (usb0) (usb0,*); do + for x in (ahci0,1) (ahci0,2) (ahci0,3) (ahci0,4) (usb0) (usb0,1) (usb0,2) (usb0,3) (usb0,4); do if [ -f "$x/grub/grub.cfg" ] ; then submenu "Load Config from $x" $x { root=$2 |