Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Nov 2014 10:50:24 +0100
From:      Borja Marcos <borjam@sarenet.es>
To:        =?iso-8859-1?Q?Jos=E9_Mar=EDa_Alcaide?= <jose@we.lc.ehu.es>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: BIOS booting from disks > 2TB
Message-ID:  <7CAD9C0C-E793-4DA8-8ED0-AAB01C77F52C@sarenet.es>
In-Reply-To: <D91EAD51-2B6B-41E6-891E-575153409745@we.lc.ehu.es>
References:  <17A2AC72-AD70-480A-9BAC-9CC8EAFD572F@we.lc.ehu.es> <alpine.BSF.2.11.1411191024540.55133@wonkity.com> <FF60956B-BF1F-4A1A-840E-489C549304EF@sarenet.es> <546DA321.8050403@jrv.org> <D91EAD51-2B6B-41E6-891E-575153409745@we.lc.ehu.es>

next in thread | previous in thread | raw e-mail | index | archive | help

On Nov 20, 2014, at 10:38 AM, Jos=E9 Mar=EDa Alcaide wrote:

>  Can't work out which disk we are booting from.
>  Guessed BIOS device 0xffffffff not found by probes, defaulting to =
disk0:
>=20
> is harmless (given that we actually want to boot from the first disk).
>=20
> In fact I did another test: I installed FreeBSD on an 8 GB partition =
*using the MBR scheme instead of GPT*, and the system booted from the =
first 3 TB disk without any problem (and with four disks attached), =
despite of showing the same warning message.

So, that 0xffffffff might be a buffer overflow being triggered by a =
failed attempt to read the backup GPT table?

Let's assume that the BIOS is poorly implemented and it won't read =
beyond the 2 TB limit.

As far as  I know, booting from a MBR disk doesn't require reading =
anything but the "classic" partition table and the partition we
are using. So, as long as the partition fits inside that 2 TB limit it =
should work, and it does.

Booting from GPT, however, requires reading the end of the disk. Or is =
the backup copy of the partition table read if and only if
there's some problem with the main one?=20

Can BIOS be reporting a wrong size for the disk (after all we are =
assuming a dodgy BIOS) and making gptboot to cosider the
table corrupt, hence causing it to try to read the backup copy?

Whatever, that 0xffffffff parameter (which should be something like =
0x80) looks like a corrupted variable to me, which would mean
we have some buffer overflow?

Maybe I'll try to recompile the boot chain removing the backup reading =
and the sanity checks and see what happens.





Borja.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7CAD9C0C-E793-4DA8-8ED0-AAB01C77F52C>