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

freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to