Re: Lenovo BIOS boot fix

From: Allan Jude <allanjude_at_freebsd.org>
Date: Sun, 12 Jul 2015 14:07:25 -0400
On 2015-07-12 11:10, Andrey V. Elsukov wrote:
> On 12.07.2015 09:02, Allan Jude wrote:
>> I forgot to include the link to the patch as well:
>>
>> http://www.allanjude.com/bsd/lenovofix_gpart.patch
>>
>> I will most likely make this patch optional, behind a flag to the 'gpart
>> create -s gpt' command, to avoid potentially breaking existing working
>> systems, but if using offset 1 works on all other hardware, having it as
>> the default would be nice.
>>
>> Another option would be to make a separate standalone program to modify
>> the pMBR for Lenovo machines, rather than modifying gpart.
>
> Hi,
>
> I think Lenovo's BIOS just think that your partition layout is MBR and
> uses legacy boot.
>
> if (MBR_partition[0].type == 0xee && gpt_is_ok()) {
>     UEFI_boot();
> } else {
>     MBR_boot();
> }
>

I am not sure what they actually do, but, by making it the
MBR_partition[1].type that is 0xee, FreeBSD is still perfectly happy,
and the Lenovo boots.

Other non-lenovo machines I tested on also worked.

Tested Platforms (in BIOS/non-UEFI mode):

Lenovo X220
Lenovo X230 (doesn't have the bug, boots fine with MBR[0].type = 0xee)
Lenovo T530 (also doesn't have the bug)
Asus Core2Duo
Asus i7 Nehalem desktop
Asus i5 Sandy bridge desktop
Gigabyte i5 Ivy bridge desktop
Intel Ivy bridge NUC
Intel Haswell NUC
Supermicro i7 Haswell workstation


-- 
Allan Jude

-- 
Allan Jude


Received on Sun Jul 12 2015 - 16:07:32 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:58 UTC