Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Jun 2012 08:33:17 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Stefan Esser <se@FreeBSD.org>
Cc:        Doug Rabson <dfr@FreeBSD.org>, Marcel Moolenaar <marcel@FreeBSD.org>, Pawel Jakub Dawidek <pjd@FreeBSD.org>, Christian Laursen <xi@borderworlds.dk>, freebsd-hackers <freebsd-hackers@FreeBSD.org>, Andriy Gapon <avg@FreeBSD.org>, freebsd-current <freebsd-current@FreeBSD.org>, "Andrey V. Elsukov" <bu7cher@yandex.ru>
Subject:   Re: [CFC/CFT] large changes in the loader(8) code
Message-ID:  <8D85513D-CDFC-4D62-AA5A-F82F46E28CE5@xcllnt.net>
In-Reply-To: <4FEC2D86.2040505@freebsd.org>
References:  <4FE9B01C.30306@yandex.ru> <201206270807.23347.jhb@freebsd.org> <4FEB0079.7050008@yandex.ru> <201206271028.54477.jhb@freebsd.org> <4FEB5A3C.5050900@borderworlds.dk> <1900D4C1-E5E5-446F-ABBF-976A2DFEB36B@xcllnt.net> <4FEC22A0.9000109@freebsd.org> <4FEC2D86.2040505@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

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
FreeBSD.

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
marcel@xcllnt.net





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8D85513D-CDFC-4D62-AA5A-F82F46E28CE5>