This fix is buggy as you don't reset grub_errno on this path. Also you
probably want to ignore only a single error type GRUB_ERR_OUT_OF_RANGE as
others are likely still fatal.

On Wed, 11 Jan 2017, 20:26 Robert LeBlanc <rob...@leblancnet.us> wrote:

> Can we get this fix merged in?
>
> Thanks
> ----------------
> Robert LeBlanc
> PGP Fingerprint 79A2 9CA4 6CC4 45DD A904  C70E E654 3BB2 FA62 B9F1
>
>
> On Thu, Nov 17, 2016 at 1:09 PM, Robert LeBlanc <rob...@leblancnet.us>
> wrote:
> > When a mdadm RAID array is on a drive larger than 2TB, the array is not
> > able to be detected and as such even if the array has a partition that
> > holds /boot under the 2TB limit, it is unable to boot the machine. This
> > is caused by metadata 1.0 being tested first which allocates the
> > superblock at the end of the device. When it tries to access the end of
> > the device it throws an error and the code returns without trying to
> > find the superblock at other locations (metadata 1.1 and 1.2). This
> > patch changes the error to not be fatal and allow for the checking for
> > the other metadata versions and allowing the machine to boot as long as
> > /boot is under the 2TB BIOS limit. This won't cause issues with 1.0
> > metadata because GRUB is able to read the partitions from the front of
> > the drive/partition without having to determine the data offset, since
> > the data for metadata 1.0 starts at sector 0.
> >
> > Signed-off-by: Robert LeBlanc <rob...@leblancnet.us>
> > ---
> >  grub-core/disk/mdraid1x_linux.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/grub-core/disk/mdraid1x_linux.c
> b/grub-core/disk/mdraid1x_linux.c
> > index 7cc80d3..cc7350c 100644
> > --- a/grub-core/disk/mdraid1x_linux.c
> > +++ b/grub-core/disk/mdraid1x_linux.c
> > @@ -148,7 +148,7 @@ grub_mdraid_detect (grub_disk_t disk,
> >
> >        if (grub_disk_read (disk, sector, 0, sizeof (struct
> grub_raid_super_1x),
> >                           &sb))
> > -       return NULL;
> > +       continue;
> >
> >        if (sb.magic != grub_cpu_to_le32_compile_time (SB_MAGIC)
> >           || grub_le_to_cpu64 (sb.super_offset) != sector)
> > --
> > 2.10.1
> >
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
>
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to