On 07/12/15 20:07, Allan Jude wrote:
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



Hi Allan,

I did some experiments with the newest memstick image you provided (lenovofix_20150712-r285132.img).

On an oldish Q6600 based system using an INTEL DP965LT main-board (it only has BIOS mode) I first pulled the SATA connectors before trying to boot from the USB stick. It shows the same problem as always with a fresh install of FreeBSD 10.x:

No bootable device -- insert boot disk and press any key

This can be fixed by first modifying the image on the USB stick using

gpart recover da0

(the stick is 8Gbyte and the image as copied on it is 1Gbyte, so the GPT seems corrupt), followed by the usual

gpart set -a active da0

I think this issue manifests itself on a generation of older Intel and Foxconn main-boards and possibly differs from the problem that you try to solve with Lenovo hardware.

I also tried the unmodified image on an even older T7200 based system having an Asus NL4VM-DH main-board and there it just dumps the registers (followed by "BTX Halted") very early in the boot process. This has happened before on several occasions with FreeBSD 10.x. The board is probably too rare to worry about too much, though it still runs OpenBSD 5.7 perfectly.


Kind regards,

Hans Ottevanger

Eindhoven, Netherlands
www.beastielabs.net





_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to