2006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
* kern/disk.c (grub_disk_read): When there is a read error, always try to read only the necessary data. * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and disk/raid.c. * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New prototype. [GRUB_UTIL] (grub_raid_fini): Likewise. [GRUB_UTIL] (grub_lvm_init): Likewise. [GRUB_UTIL] (grub_lvm_fini): Likewise. * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is RAID device and copy DEVICE_NAME to DRIVE_NAME in that case. (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini() and grub_raid_fini().
This commit is contained in:
parent
03e58196a8
commit
790707f254
6 changed files with 56 additions and 17 deletions
|
@ -97,13 +97,21 @@ probe (const char *path)
|
|||
goto end;
|
||||
}
|
||||
|
||||
drive_name = grub_util_biosdisk_get_grub_dev (device_name);
|
||||
if (! drive_name)
|
||||
if (device_name[0] == 'm' && device_name[1] == 'd'
|
||||
&& device_name[2] >= '0' && device_name[2] <= '9')
|
||||
{
|
||||
fprintf (stderr, "cannot find a GRUB drive for %s.\n", device_name);
|
||||
goto end;
|
||||
drive_name = xstrdup (device_name);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
drive_name = grub_util_biosdisk_get_grub_dev (device_name);
|
||||
if (! drive_name)
|
||||
{
|
||||
fprintf (stderr, "cannot find a GRUB drive for %s.\n", device_name);
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
if (print == PRINT_DRIVE)
|
||||
{
|
||||
printf ("(%s)\n", drive_name);
|
||||
|
@ -236,7 +244,9 @@ main (int argc, char *argv[])
|
|||
/* Initialize the emulated biosdisk driver. */
|
||||
grub_util_biosdisk_init (dev_map ? : DEFAULT_DEVICE_MAP);
|
||||
grub_pc_partition_map_init ();
|
||||
|
||||
grub_raid_init ();
|
||||
grub_lvm_init ();
|
||||
|
||||
/* Initialize filesystems. */
|
||||
grub_fat_init ();
|
||||
grub_ext2_init ();
|
||||
|
@ -256,6 +266,8 @@ main (int argc, char *argv[])
|
|||
grub_jfs_fini ();
|
||||
grub_xfs_fini ();
|
||||
|
||||
grub_lvm_fini ();
|
||||
grub_raid_fini ();
|
||||
grub_pc_partition_map_fini ();
|
||||
grub_util_biosdisk_fini ();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue