2009-08-23 Vladimir Serbinenko <phcoder@gmail.com>
* commands/search.c (search_fs): Try searching without autoload first. * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Load filesystem module explicitly for faster booting.
This commit is contained in:
parent
5174302b55
commit
e9a925da69
3 changed files with 28 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2009-08-23 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* commands/search.c (search_fs): Try searching without autoload first.
|
||||||
|
* util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Load
|
||||||
|
filesystem module explicitly for faster booting.
|
||||||
|
|
||||||
2009-08-23 Colin Watson <cjwatson@ubuntu.com>
|
2009-08-23 Colin Watson <cjwatson@ubuntu.com>
|
||||||
|
|
||||||
* util/grub-mkconfig.in: Export GRUB_DISABLE_OS_PROBER.
|
* util/grub-mkconfig.in: Export GRUB_DISABLE_OS_PROBER.
|
||||||
|
|
|
@ -51,6 +51,7 @@ search_fs (const char *key, const char *var, int no_floppy, enum options type)
|
||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
char *buf = NULL;
|
char *buf = NULL;
|
||||||
|
grub_fs_autoload_hook_t saved_autoload;
|
||||||
|
|
||||||
auto int iterate_device (const char *name);
|
auto int iterate_device (const char *name);
|
||||||
int iterate_device (const char *name)
|
int iterate_device (const char *name)
|
||||||
|
@ -131,6 +132,21 @@ search_fs (const char *key, const char *var, int no_floppy, enum options type)
|
||||||
return (found && var);
|
return (found && var);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* First try without autoloading if we're setting variable. */
|
||||||
|
if (var)
|
||||||
|
{
|
||||||
|
saved_autoload = grub_fs_autoload_hook;
|
||||||
|
grub_fs_autoload_hook = 0;
|
||||||
|
grub_device_iterate (iterate_device);
|
||||||
|
|
||||||
|
/* Restore autoload hook. */
|
||||||
|
grub_fs_autoload_hook = saved_autoload;
|
||||||
|
|
||||||
|
/* Retry with autoload if nothing found. */
|
||||||
|
if (grub_errno == GRUB_ERR_NONE && count == 0)
|
||||||
|
grub_device_iterate (iterate_device);
|
||||||
|
}
|
||||||
|
else
|
||||||
grub_device_iterate (iterate_device);
|
grub_device_iterate (iterate_device);
|
||||||
|
|
||||||
grub_free (buf);
|
grub_free (buf);
|
||||||
|
|
|
@ -140,6 +140,11 @@ prepare_grub_to_access_device ()
|
||||||
echo "insmod ${module}"
|
echo "insmod ${module}"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
fs="`${grub_probe} --device ${device} --target=fs`"
|
||||||
|
for module in ${fs} ; do
|
||||||
|
echo "insmod ${module}"
|
||||||
|
done
|
||||||
|
|
||||||
# If there's a filesystem UUID that GRUB is capable of identifying, use it;
|
# If there's a filesystem UUID that GRUB is capable of identifying, use it;
|
||||||
# otherwise set root as per value in device.map.
|
# otherwise set root as per value in device.map.
|
||||||
echo "set root=`${grub_probe} --device ${device} --target=drive`"
|
echo "set root=`${grub_probe} --device ${device} --target=drive`"
|
||||||
|
|
Loading…
Reference in a new issue