[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3] disk/mdraid1x: Fix >2TB RAID detection with BIOS
From: |
Robert LeBlanc |
Subject: |
Re: [PATCH v3] disk/mdraid1x: Fix >2TB RAID detection with BIOS |
Date: |
Thu, 16 Mar 2017 14:00:56 -0600 |
ping
----------------
Robert LeBlanc
PGP Fingerprint 79A2 9CA4 6CC4 45DD A904 C70E E654 3BB2 FA62 B9F1
On Fri, Feb 24, 2017 at 10:01 AM, Robert LeBlanc <address@hidden> wrote:
> On Wed, Jan 25, 2017 at 3:02 PM, Robert LeBlanc <address@hidden> wrote:
>> Changes in v3:
>> - Fix to return if not out of range instead of breaking out of the
>> loop.
>>
>> Changes in v2:
>> - Only continue checking for other metadata versions if we get an out
>> of range error and reset grub_errno if we continue.
>>
>> 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 <address@hidden>
>> ---
>> grub-core/disk/mdraid1x_linux.c | 12 +++++++++++-
>> 1 file changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/grub-core/disk/mdraid1x_linux.c
>> b/grub-core/disk/mdraid1x_linux.c
>> index 7cc80d3df..f0aeb6829 100644
>> --- a/grub-core/disk/mdraid1x_linux.c
>> +++ b/grub-core/disk/mdraid1x_linux.c
>> @@ -148,7 +148,17 @@ grub_mdraid_detect (grub_disk_t disk,
>>
>> if (grub_disk_read (disk, sector, 0, sizeof (struct
>> grub_raid_super_1x),
>> &sb))
>> - return NULL;
>> + {
>> + if (grub_errno == GRUB_ERR_OUT_OF_RANGE)
>> + {
>> + grub_errno = GRUB_ERR_NONE;
>> + continue;
>> + }
>> + else
>> + {
>> + return NULL;
>> + }
>> + }
>>
>> if (sb.magic != grub_cpu_to_le32_compile_time (SB_MAGIC)
>> || grub_le_to_cpu64 (sb.super_offset) != sector)
>
>
> Does this look okay? I'm not seeing this in patchworks to know what
> the status is.
>
> Thanks,
> Robert LeBlanc
> ----------------
> Robert LeBlanc
> PGP Fingerprint 79A2 9CA4 6CC4 45DD A904 C70E E654 3BB2 FA62 B9F1
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH v3] disk/mdraid1x: Fix >2TB RAID detection with BIOS,
Robert LeBlanc <=