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

From: Pawel Jakub Dawidek <pjd_at_FreeBSD.org>
Date: Thu, 28 Jun 2012 19:25:27 +0200
On Thu, Jun 28, 2012 at 08:33:17AM -0700, Marcel Moolenaar wrote:
> 
> 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 user runs:

	# gpart create -s GPT /dev/mirror/foo

for me it is obvious that he wants to partition the mirror device and
not individual disks. Because the mirror was configured earlier, do you
expect gmirror to somehow detect that someone is writting GPT metadata
later and magically place GPT metadata on the raw disk and move mirror's
metadata to some magic partition? Not to mention that the mirror itself
doesn't have to be configured on top of raw disks. And not to mention
that the mirror may never be partitioned.

If GPT in your opinion is limited only to raw disks then I guess the
best way to fix that is to refuse to configure GPT on anything except
raw disks (which was already proposed by Andrey?). In my opinion this is
unacceptable, but I think this is what you are suggesting.

One of the GEOM design goals was to be flexible. Let the user decide in
what order he wants to configure various layers. How do you know that in
every possible scenerio software mirroring should come after
partitioning and encryption after mirroring? Why can't we provide
flexible tools to the user and let him decide? Maybe GPT nesting
violates standards, but why can't we support it as an extention, really?

I recognize the need to warn users if they use FreeBSD-specific
features. We do that with non-standard APIs. So how about this.

Let's modify gpart(8) to print a warning if GPT is configured on
something else than raw disk. Let's the warning say that such
configuration is non-standard and problems are expected if the disk is
shared between other OSes.

In my opinion that's fair.

With such a warning in place, I think we can allow users to decide on
their own if they really want that or not. Then, we can also improve
FreeBSD boot loader to play nice with FreeBSD-specific extensions.

-- 
Pawel Jakub Dawidek                       http://www.wheelsystems.com
FreeBSD committer                         http://www.FreeBSD.org
Am I Evil? Yes, I Am!                     http://tupytaj.pl

Received on Thu Jun 28 2012 - 15:27:40 UTC

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