RFC: making gpart default
Marcel Moolenaar
xcllnt at mac.com
Thu Sep 25 18:59:44 UTC 2008
All,
I'd like to switch all architectures to gpart for the reasons given
below. All current partitioning schemes are supported by gpart and
work on all platforms. On top of that, ia64 and powerpc are using
gpart exclusively already.
Rationale:
1. Having different utilities for different schemes, which are
otherwise identical in functionality, is painful. Especially
since they all provide a different user interface. While this
is a non-issue for the old geezers among us (we don't know any
better), it is something that the younger crowd perceives as
"low-quality", especially when compared to Linux' parted.
However, the fact that some allow scripting while others
don't is important even for the old geezers. gpart(8) is the
answer.
2. We currently have multiple GEOMs in the kernel that do not
provide a unified, common and/or standard interface. This is
especially problematic for unified tools like the installer.
In fact, we don't have unified tools that use the ctlreq
interface at all, because it's virtually impossible. The
fact that we have sade, is an indication that we do want a
unified tool for partitioning, but without using the GEOM I/F
the tool is useless to modify partitions on a disk with
mounted file systems. The gpart GEOM provides a unified I/F
usable by any tool for creating and modifying any kind of
partitioning scheme.
3. fsck and newfs contain some logic to find out what kind of
file system they're working on and invoke the appropriate
back-end executable. This is good functionality, but only
works for BSD labels. With GPT being used more often and
non-PC hardware using different partitioning schemes, this
means that the functionality isn't working in most cases.
There's fundamentally no reason why newfs or fsck cannot
automatically detect a partition that uses the MSDOS file
system and DTRT. With gpart, we can make that functionality
working across all partitioning schemes.
4. Like the above, but for mount. By checking the partition
type, it's possible to have mount DTRT much more often.
5. The gpart show command can give you a unified list of disks
with their partitions, irrespective of the partitioning
scheme used. For the first time a single command gives us
the overview we're lacking.
6. Not all "disk" devices have a geometry. Especially md(4)
devices and USB mass storage devices. This is a problem
for newfs_msdos. With gpart, there's always a geometry
that processes can query for so that newfs_msdos et al
will work without any additional options.
7. gpart breaks the 8-partition barrier for bsdlabel.
8. gpart adds VTOC information to sunlabel.
With gpart default, tools like fdisk and bsdlabel continue to
work on new disks and disks that have no mounted file systems.
In that respect there's no difference. However, they cannot
be used when file systems are mounted. In those cases gpart
needs to be used. As such, the impact is limited and makes the
switch much more manageable.
In short: gpart is the first step towards a unified set of
tools and interfaces and provides the basis for extending
file system related tools by allowing us to attach real
meaning to partition types. With the commit and undo feature,
gpart is ready for use by next generation installers that
allow us to use any partitioning scheme on any platforms.
Thoughts?
--
Marcel Moolenaar
xcllnt at mac.com
More information about the freebsd-arch
mailing list