Hello! Last summer, I was hoping to add ZFS support to the Debian installer. After playing around with partman a week or two, I ended up developing an entirely new application, growlight [0]. It is currently used in the SprezzOS installer [1], and has been used by a small, ZoL-intensive user base for several months (since ZoL 0.6.0-rc11 days). It has had open bugtracking [2] and git-based source control [3] since its first commit. I'd like to sound out the list on replacing partman in d-i proper with Growlight. I'm sure there's some use cases I've missed that partman handles, etc (for one, preseeding is not yet at all supported by growlight. then again, it was never very pleasant with partman, either). --Known shortcomings of growlight vs partman-- (1) No preseed support currently (2) Fullscreen ncurses UI diverges from the rest of the whiptail-based installer, though IMHO it's much more attractive (see screenshots at [1] to see what I'm talking about) (3) No support for guided partitioning, but I plan to do that soon (4) No online filesystem resizing yet (soon! [4]) (5) Probably misses some details that partman has accumulated over the years --Known benefits of growlight vs partman-- (1) ZoL (ZFS on Linux) support (2) Full knowledge and handling of alignment issues (3) Much more information available (4) Much more attractive (5) Fully dynamic UI in the face of device removal/addition (6) More functionality than partman (secure erase, smart, temp, etc) (7) One binary with coherent data model vs a bunch of scripts The SprezzOS installer is based on d-i, and growlight runs as a udeb from main-menu just as partman does. Here's the current postinst script [5], just to illustrate how I break the fullscreen UI out from main-menu: ----------------------------------------------------------- #!/bin/sh export LANG=C.UTF-8 TARGET=/target # Load ZFS so that growlight's loading of libzfs doesn't do it, prompting a # (potentially confusing) message to stderr. modprobe zfs # Load relevant MD modules, as they aren't typically autoloaded modprobe md-mod modprobe raid0 modprobe raid1 modprobe raid456 # Ensure the target mountpoint exists mkdir -p "$TARGET" # Ensure /dev/ entries exist, until we start monitoring for them at least FIXME mkdir /dev/md /dev/disk/by-path # -w: wait for process, then switch back to controlling terminal # -s: switch to new vt on launch # -v: verbose. someone might switch back to this vt purposefully; hopefully # this will kinda indicate what's going on. openvt -v -w -s -- fbvfbterm /usr/share/sprezzatech/sprezzos.png \ growlight-curses -i -t "$TARGET" --disphelp ----------------------------------------------------------- This leaves main-menu on VT1 in a blue screen, which is less elegant than I'd like, but otherwise I ran into console integrity problems of an unpleasant nature. I believe Growlight, suitably modified to implement all of partman's feature set, could serve as a well-engineered, powerful replacement for the venerable but creaky partman. I'm interested in helping make this happen, if it's at all feasible. Please take a look at the screenshots, design, and code, and let me know your thoughts. Thanks! --rigorously, nick Hacker-In-Charge, SprezzOS Project [0] http://nick-black.com/dankwiki/index.php/Growlight [1] ~20 screenshots: https://plus.google.com/photos/118364511747568235669/albums/5841122304857060513 [2] https://www.sprezzatech.com/bugs/buglist.cgi?component=Growlight [3] https://github.com/dankamongmen/growlight [4] https://www.sprezzatech.com/bugs/show_bug.cgi?id=411 [5] https://github.com/dankamongmen/sprezzos-world/blob/master/packaging/growlight/debian/growlight-udeb.postinst -- nick black http://www.sprezzatech.com -- unix and hpc consulting to make an apple pie from scratch, you need first invent a universe.
Attachment:
signature.asc
Description: Digital signature