BIOS booting from disks > 2TB

James R. Van Artsdalen james-freebsd-fs2 at jrv.org
Thu Nov 20 08:33:01 UTC 2014


The extended BIOS disk functions, introduced onto PCs almost 20 years ago, allowing for addressing LBAs beyond 2TB.  FreeBSD will use these BIOS functions when present.  This is usually not a problem.

If a disk controller card of some kind is installed then the option ROM on that card must support the extended BIOS disk functions for this to work.  This is usually not a problem.

The error messages shown only pertained to the backup header, not primary, and looking at the code it implies to me that the primary header and table were read OK, and that these will be used even if the backup cannot be found.  I think "invalid backup GPT header" is a warning in this case, not a fatal error.

I think the real problem is here:
 
Can't work out which disk we are booting from.
Guessed BIOS device 0xffffffff not found by probes, defaulting to disk0:

1. If you replace the 3TB disk with a disk 2TB or smaller and make no other change, does this error still happen?

2. How are the disks connected to the system?  What disk controllers are used?  What is the system BIOS boot disk setting set to?

On 11/20/2014 12:53 AM, Borja Marcos wrote:

>
> On Nov 19, 2014, at 6:29 PM, Warren Block wrote:
>
>> On Wed, 19 Nov 2014, José María Alcaide wrote:
>>
>>> On Nov 19, 2014, at 8:06 AM, Pokala, Ravi wrote:
>>>
>>>> When you perform your installation, just make sure to select the GPT
>>>> option for partitioning. The installer (either `bsdinstall' (for stock
>>>> FreeBSD), or `pc-sysinstall' (for PC-BSD / FreeNAS)) should create both
>>>> primary (near start-of-disk) and backup (at end-of-disk) GPT tables, and
>>>> install the appropriate bootstrap code in the proper locations.
>>>>
>>>
>>> Yes, bsdinstall flawlessly creates both primary and backup GPT tables even using disks > 2 TB, by virtue of the FreeBSD kernel. The problem arises at the first stages of booting, when gptboot tries to compare the primary and backup tables *using the BIOS disk services*, which are not able to reach anything after the 2 TB limit. As a consequence gptboot fails, stating that it did not find the GPT backup table.
>>
>> Maybe kern.geom.part.check_integrity=0 will allow it to boot.  However, this sounds like a bug in gptboot.  Maybe not easy to fix, but increasingly important as disks > 2TB become common.
>
> I did a manual install on a 3 TB disk, creating a small partition for the  OS, around 4 GB.
>
> The booot sequence was:
>
> Attempting Boot From Hard Drive (C:)
> gptboot: invalid backup GPT header
>
> BTX loader 1.00 BTW version is 1.02
> Consoles: internal video/keyboard
> BIOS drive C: is disk0
> BIOS 614kB/3961744kB available memory
>
> FreeBSD/x86 bootstrap loader, Revision 1.1
> (root at releng1.nyi.freebsd.org...)
> Can't work out which disk we are booting from.
> Guessed BIOS device 0xffffffff not found by probes, defaulting to disk0:
>
> can't load 'kernel'
>
>
>
> And that's it. It would be nice indeed if FreeBSD could boot from >2TB disks on BIOS machines. What
> I wonder is, is this just some brain dead bug in this machine (HP Proliant Microserver Gen8 with the latest
> BIOS version) or a widespread problem?
>
> It's not a pressing issue for myself, as anyway I intended to boot from a memstick and use the  disks
> just for a ZFS pool, but anyone trying to set up a ZFS on root boot will run into problems.
>
>
>
>
>
>
>
> Borja.
>
>
>
>
> _______________________________________________
> freebsd-fs at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-fs
> To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"



More information about the freebsd-fs mailing list