On Mon, Apr 20, 2009 at 2:30 AM, David Miller <da...@davemloft.net> wrote:
> > With Sun partitions, individual partitions can start at disk > address zero. That's right, zero. > > This works because UFS and EXT{2,3,4} superblocks are offset > far enough into the partition that it won't overwrite the > disk label nor the boot block. > > I added an, arguably hackish, heuristic to handle this properly. > Basically if the OS device name does not end in a digit we'll believe > that a zero hdg.start value can be a partition. > > If anyone has a better way to handle this, let me know :-) > What about the way I proposed in thread on implementing nested partitions? > > 2009-04-19 David S. Miller <da...@davemloft.net> > > * util/hostdisk.c (device_is_wholedisk): New function. > (grub_util_biosdisk_get_grub_dev): Shortcut when hdg.start is > zero only if device_is_wholedisk() returns true. > --- > util/hostdisk.c | 12 +++++++++++- > 1 files changed, 11 insertions(+), 1 deletions(-) > > diff --git a/util/hostdisk.c b/util/hostdisk.c > index aa41703..b55d7fe 100644 > --- a/util/hostdisk.c > +++ b/util/hostdisk.c > @@ -827,6 +827,16 @@ convert_system_partition_to_system_disk (const char > *os_dev) > } > > static int > +device_is_wholedisk (const char *os_dev) > +{ > + int len = strlen (os_dev); > + > + if (os_dev[len - 1] < '0' || os_dev[len - 1] > '9') > + return 1; > + return 0; > +} > + > +static int > find_system_device (const char *os_dev) > { > int i; > @@ -961,7 +971,7 @@ grub_util_biosdisk_get_grub_dev (const char *os_dev) > > grub_util_info ("%s starts from %lu", os_dev, hdg.start); > > - if (hdg.start == 0) > + if (hdg.start == 0 && device_is_wholedisk (os_dev)) > return name; > > grub_util_info ("opening the device %s", name); > -- > 1.6.2.3 > > > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > http://lists.gnu.org/mailman/listinfo/grub-devel >
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel