grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] disk/mdraid1x: Fix >2TB RAID detection with BIOS


From: Andrei Borzenkov
Subject: Re: [PATCH] disk/mdraid1x: Fix >2TB RAID detection with BIOS
Date: Fri, 18 Nov 2016 07:16:02 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0

17.11.2016 23:09, Robert LeBlanc пишет:
> 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

Why read returns error here and how it is related to device size?

> 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 | 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)
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]