Date: Sun, 21 Aug 2011 18:28:30 -0700 From: Marcel Moolenaar <marcel@xcllnt.net> To: Nathan Whitehorn <nwhitehorn@freebsd.org> Cc: "freebsd-current@FreeBSD.org Current" <freebsd-current@freebsd.org> Subject: Re: Well, there goes Windows! Message-ID: <C429B7D4-08DD-4A86-BC4E-07B29B755736@xcllnt.net> In-Reply-To: <4E519C13.4060700@freebsd.org> References: <CAGH67wRFP9nFQLr0Gh-h4rKWrndZSy=6Q%2BKLC_U5Fg4RD%2BJMCw@mail.gmail.com> <4E4DB9A7.4040404@freebsd.org> <CAGH67wQoXOju3=OTh%2B6JoKLxkp7Vzqu8vg%2BO9X=DPXB5EkBJtQ@mail.gmail.com> <4E517978.2020705@freebsd.org> <64622705-80AB-4FEF-91E9-8F3041818B4E@xcllnt.net> <4E519C13.4060700@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Aug 21, 2011, at 5:00 PM, Nathan Whitehorn wrote: >=20 > No, it's stupider than that. When you destroy a gpart without = committing, the GEOM itself lingers as a (none)-type partitioning. This = of course makes sense, since that ghost geom is what is maintaining all = the state, but sometimes causes problems. For instance, it breaks some = of my lazy code that identifies non-partitioned disks by seeing if = there is a GEOM there. But, while slightly more complicated to detect, = this would not be too difficult to fix. What if gpart always creates the null scheme if no partitioning exists = on the media? Then the difference between none but uncomitted and just plain = none is gone and we can always make sure the distinction is represented in the = XML. This would also improve the current behavior of "gpart show" in that you = don't get to see any disks that don't have partitions right now. > The larger problem is that this behavior means that destroying gparts = sometimes doesn't work at all. For instance, if you have nested = partitioning like MBR+BSD (or EBR) it is not possible to destroy the = underlying MBR geom without committing the destruction of the BSD geom. = This is because the MBR geom cannot be destroyed, even without = committing, while it continues to have children, which it does due to = the ghost geom for the BSD slice. Yup. It would be good if we can fix that=85 > The regular partitioning editor only commits early in this particular = case, and asks about each subpartition tree separately with a big scary = dialog box. In the spirit of the autopartitioner, it makes one large = scary dialog, and always runs in early commit mode instead of = potentially showing many scary dialogs about partitions the user doesn't = necessarily even know about. This behavior could be changed, but I think = is the most friendly for the case in question: namely, "I want to blow = away everything and let the installer handle all partitioning details by = itself". What about inserting a special class for doing commit/undo. The GEOM simply keeps all modifications in memory and 1) forgets everything on an undo operation or 2) writes all dirty sectors on a commit. This could be used even instead of the gpart-private support, which also removes the quirk for the null scheme. --=20 Marcel Moolenaar marcel@xcllnt.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C429B7D4-08DD-4A86-BC4E-07B29B755736>