On Jun 28, 2012, at 3:10 AM, Stefan Esser wrote:
> All of the above is ugly, U'm afraid :(

Indeed. The only sane way is to put the metadata in a partition of its own.
Every compliant OS will respect that and consequently will not scribble over
the data unintentionally. Any other scheme that puts valuable data in some
undocumented or unregistered location is violating the GPT spec right away
and is susceptible to being clobbered unintentionally.

If the metadata is in its own partition, one can document the metadata layout
and providing a reference implementation. That way one increases the chance
that someone, somewhere may port support for it to some other OS. Lacking
widespread support for the mirroring scheme, I think that the notion that one
can safely and reliably mirror entire disks (read: mirror data not owned or
controlled by FreeBSD) is a very questionable one -- all one has to do is
boot some other OS and start modifying one of its partitions and you've
failed to achieve the objective.

My advise is to leave disk mirroring to H/W or firmware solutions and use
FreeBSD mirroring for FreeBSD partitions only. If you want to mirror the
whole disk, don't partition the disk with non-FreeBSD partitioning schemes
and partition only with FreeBSD-specific schemes or put a FreeBSD file
system on the whole disk. In other words: make the whole disk private to

Whether or not people agree with this is besides the point. All I'm saying
is that unique disk identifiers such as the "UniqueMBRSignature" (a 4 byte
ID written at offset 440 in the MBR) or the "DiskGUID" (an UUID written to
offset 56 in the GPT header) cannot, in general, be mirrored across disks
if OSes can see the mirrored disks as independent entities. One violates
the spec on grounds of making the *unique* disk identifier non-unique by
presenting OSes with multiple disks that have identical IDs.

Marcel Moolenaar

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

Reply via email to