DragonFly users List (threaded) for 2008-12
Re: fdisk implementation
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
+ 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
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.
Jost Tobias Springenberg <email@example.com>
If you plan to send me any personal or sensitive information
please use GnuPG!
My public key can be found at: