fdisk implementation
Jeremy Chadwick
jdc at parodius.com
Wed Dec 17 01:08:19 PST 2008
On Tue, Dec 16, 2008 at 10:20:53PM +0100, Jost Tobias Springenberg wrote:
> Ok,
> after two months of using hammer (which does all of the work that I want it to in a nice and decent way :)).
> The point of no return is closing in and I am planning to switch 3 backup machines to hammer in the long run.
> Therefore this project also made its way to my working pile, as it is something I want to have.
> I have done some research on various partitioning tools and here is what I think:
>
> Linux based partition programs:
> -------------------------------
>
> The linux cfdisk has a quite nice interface and seems to produce good partition tables.
> - it does not handle fitting in a partition in between two others nicely
> (aligning og the new partition)
>
> The linux fdisk seems to be a bit weird and at least once produced a wrong partition table
> for me.
> + it can interact with BSD disk labels
>
> The linux sfdisk also seems to have a lot of well working features to it,
> but the user interface is even worse than the one we have in dfly.
>
> Parted is probably the nices program around but imho its scope is too wide to
> be useful as the standard partitioning tool.
>
> BSD based tools:
> ----------------
>
> OpenBSD fdisk works similiar to our fdisk, although the interactive mode is a bit better
> structured.
>
> The FreeBSD sfdisk implementation is easy to understand, but has extreme limitations
> and seems to also not be the best friend of FreeBSD developers.
> As for the OpenBSD fdisk I have however not really looked at the code here.
>
> After taking a look at these implementations I realized that the best way to tackle this
> problem might be to take the fdisk we have right now, keep its basic functionality for
> the users, audit the code and replace the interactive mode completely by a ncurses based version.
>
> In the process of this replacement it would also be useful to add the following features:
> + make it easier for unexperienced users to specifying partition size / start- and endpoints
> + basic support for disklabels (maybe it is possible to simply interact with the disklabel tool here)
> + add something like a "magic key" that aligns the partition with the next/previous
> partition automatically (as it appears in minix)
>
> I have started to review the code and will begin to implement this after one more week of
> other work to be done. Usually I am not a big fan of announcing such a simple project before it is done
> but I imagine some of you might have their objections / additions to the list I compiled here.
> If you happen to be such a someone feel free to reply to this post.
> Thank you,
> Tobias
Comments:
FreeBSD has a tool called sade(8), which is commonly known as the
"partitioning/slicing and labelling piece of the FreeBSD installer".
Most people are familiar with this. It's curses (and dialog?)-based.
There's also a "Wizard" mode in sade which I've looked at, but never
tried using.
There are things about sade I dislike. If you want a list of them, I
can spend some time making a list. There are two I have on my mind
right now -- lack of ability to move or shift slices around, and the
descriptions used for non-BSD slices.
Linux cfdisk addresses some of the qualms I have with sade, but Linux
cfdisk in general is disgusting. It does make a mess of terminals in
some circumstances (depends on what you're doing). I can spend some
time providing you a list of problems with cfdisk as well, if you want.
That said, I've never liked FreeBSD fdisk -- I'm assuming DFBSD uses the
same fdisk as FreeBSD. I will admit that it's incredibly useful for
very low-level situations. I've never liked it because the format of
the data it outputs is "cryptic", meaning it's hard on the eyes.
As for OpenBSD fdisk -- assuming it's the tool you get thrown into
during an install of OpenBSD -- I hate it. The main reason is that it's
begging the user to make mistakes; using single-character commands is
asking for trouble; highly error-prone.
Keep something in mind when it comes to this stuff:
Even skilled administrators will often choose tools which diminish the
amount of effort required. For example, I'm very familiar with
bsdlabel, fdisk, and boot0cfg on FreeBSD -- but I use sade for almost
everything. I'm familiar enough with the low-level tools that I
feel justified in using the easier ones, if that makes any sense...
--
| Jeremy Chadwick jdc at parodius.com |
| Parodius Networking http://www.parodius.com/ |
| UNIX Systems Administrator Mountain View, CA, USA |
| Making life hard for others since 1977. PGP: 4BD6C0CB |
More information about the Users
mailing list