[CFC/CFT] large changes in the loader(8) code
Christian Laursen
xi at borderworlds.dk
Wed Jun 27 19:08:55 UTC 2012
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
More information about the freebsd-current
mailing list