Lincoln's blog

[ Home | RSS 2.0 | ATOM 1.0 ]

Mon, 28 Aug 2006

Partitioning your linux system on install

I'm thinking about writing some code for Linux installers if nobody else does it first. I want to make an easy partition designer -- providing a nice task-oriented UI for picking your partition layout.

The problem I commonly see is new users being handed two choices: "partition the drive automatically" and "let me do it myself". Well, usually, if you partition automatically, you have to blow away the existing OS. (Even if you don't, you can't control the layout at all, and it's probably wrong.) Many users will be forced into the "do it myself" mode, and the UI for this is never nice -- mainly because "create a partition" and having to specify the size, fs-type and mount point is pretty bad. I'm not even going to go into the primary/extended/logical nightmare of usability.

So I propose a partitioner that is focused around partitions for specific tasks (i.e., mount points). The user is presented with a diagram of the disks, similar to existing partition programs. But instead of it saying "make your partitions now" it has a bunch of check boxes, and you can play around with checking and unchecking boxes in order to see the results updated in the diagram above it.

Each checkbox refers to a potential separate partition, and has a description, mount point, and sizing parameter. Examples:

Do you get the point? We display the actual tasks people tend to use, rather than making them make everything up, and we provide lots of nice descriptive text for reading types. The NTFS example deserves examination -- we will detect and provide a similar dialog for old ext2/3, NTFS, FAT32, HFS+, and all the other filesystems that Linux knows how to detect and mount. The resizing will be defaulted only if the existing big partition takes up too much space. We show the files so that the user can examine the filesystem and identify partitions by content.

posted at: 21:02 | path: /unix | permanent link to this entry

Made with PyBlosxom