Re: [CFC/CFT] large changes in the loader(8) code

From: Christian Laursen <xi_at_borderworlds.dk>
Date: Wed, 27 Jun 2012 21:08:44 +0200
On 06/27/12 16:28, John Baldwin wrote:
> On Wednesday, June 27, 2012 8:45:45 am Andrey V. Elsukov wrote:
>
>> When we are in the FreeBSD, our loader can detect that device size
>> is lower than it see and it will work. When primary header is OK, then
>> other OSes should work with this GPT. When it isn't OK, you just can't
>> load other OS :)
>
> Ah, yes.  The solution to violating standards is to make sure you never
> use standards-compliant software.  That's a great argument. :)
>
> (Although not entirely uncommon.  Standards aren't always perfect, but if
> we had a way to not gratuitously violate them it would be nice to avoid
> doing so.)

To be standards compliant and allow whole-disk based mirroring to work 
at the same time wouldn't nested GPT work like this?

Whole disk (start)
| GPT header
| GPT partition of type freebsd-geom (start)
| | gmirror device (start)
| | | GPT header
| | | | freebsd-boot
| | | | freebsd-ufs
| | | | freebsd-swap
| | | GPT backup header
| | gmirror metadata
| | gmirror device (end)
| GPT partition of type freebsd-geom (end)
| GPT backup header
Whole disk (end)

Nothing but FreeBSD would understand the freebsd-geom partition type, so 
the inner GPT device should be valid and standards compliant.

The boot loader would of course need to understand this setup but that 
shouldn't be impossible.

Just a thought.

It might be too complicated compared to the non-standards compliant way 
it works now which works quite well in practice though.

-- 
Christian Laursen
Received on Wed Jun 27 2012 - 17:08:55 UTC

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