+Supermin appliance to febootstrap
+---------------------------------
+
+Supermin appliance functionality should be moved into febootstrap.
+
+Ideas for extra commands
+------------------------
+
+ General glibc / core programs:
+ chgrp
+ more mk*temp calls
+
+ ext2 properties:
+ chattr
+ lsattr
+ badblocks
+ blkid
+ debugfs
+ dumpe2fs
+ e2image
+ e2undo
+ filefrag
+ findfs
+ logsave
+ mklost+found
+
+ SELinux:
+ chcat
+ restorecon
+ ch???
+
+ Oddball:
+ pivot_root
+ fts(3) / ftw(3)
+
+Other initrd-* commands
+-----------------------
+
+Such as:
+
+initrd-extract
+initrd-replace
+
+Simple editing of configuration files
+-------------------------------------
+
+Some easy non-Augeas methods to edit configuration files.
+I'm thinking:
+
+ replace /etc/file key value
+
+which would look in /etc/file for any instances of
+
+ key=...
+ key ...
+ key:...
+
+and replace them with
+
+ key=value
+ key value
+ key:value
+
+That would solve about 50% of reconfiguration needs, and for the
+rest you'd use Augeas, 'download'+'upload' or 'edit'.
+
+RWMJ: I had a go at implementing this, but it's quite error-prone to
+do this sort of editing inside the C-based daemon code. It's far
+better to do it with Augeas, or else to use an external language like
+Perl.
+
+Quick Perl scripts
+------------------
+
+Currently we can't do Perl "one-liners". ie. The current syntax for
+any short Perl one-liner would be:
+
+ perl -MSys::Guestfs -e '$g = Sys::Guestfs->new(); $g->add_drive ("foo"); $g->launch; $g->mount ("/dev/sda1", "/"); ....'
+
+You can see we're well beyond a single line just getting to the point
+of adding drives and mounting.
+
+First suggestion:
+
+ $h = create ($filename, \"/dev/sda1\" => \"/\");
+
+ $h = create ([$file1, $file2], \"/dev/sda1\" => \"/\");
+
+To mount read-only, add C<ro =E<gt> 1> like this:
+
+ $h = create ($filename, \"/dev/sda1\" => \"/\", ro => 1);
+
+which is equivalent to the following sequence of calls:
+
+ $h = Sys::Guestfs->new ();
+ $h->set_autosync (1);
+ $h->add_drive_ro ($filename);
+ $h->launch ();
+ $h->mount_ro (\"/dev/sda1\", \"/\");
+
+Command-line form would be:
+
+ perl -MSys::Guestfs=:all -e '$_=create("guest.img", "/dev/sda1" => "/"); $_->cat ("/etc/fstab");'
+
+That's not brief enough for one-liners, so we could have an extra
+autogenerated module which creates a Sys::Guestfs handle singleton
+(the handle is an implicit global variable as in guestfish), eg:
+
+ perl -MSys::Guestfs::One -e 'inspect("guest.img"); cat ("/etc/fstab");'
+
+How would editing files work?
+
+ntfsclone
+---------
+
+Useful imaging tool:
+http://man.linux-ntfs.org/ntfsclone.8.html
+
+Standard images
+---------------
+
+Equip guestfish with some standard images that it can load
+quickly, eg:
+
+ load ext2
+
+Maybe it's better to create these on the fly?
+
+virt-rescue pty
+---------------
+
+See:
+http://search.cpan.org/~rgiersig/IO-Tty-1.08/Pty.pm
+http://www.perlmonks.org/index.pl?node_id=582185
+
+Note that pty requires cooperation inside the C code too (there are
+two sides to a pty, and one has to be handled after the fork).
+
+virt-rescue TERM
+----------------
+
+Pass TERM from the library, through the kernel command line, to the
+init script.
+
+Windows-based daemon/appliance
+------------------------------
+
+See discussion on list:
+https://www.redhat.com/archives/libguestfs/2009-November/msg00165.html
+
+virt-grow, virt-shrink
+----------------------
+
+Grow and shrink existing guests. The main problem comes with
+MBR-style partitions where you have to actually copy data around the
+disk (unless you only want to change the final partition).
+
+qemu locking
+------------
+
+Add -drive file=...,lock=exclusive and -drive file=...,lock=shared
+
+Change libguestfs and libvirt to do the right thing, so that multiple
+instances of qemu cannot stomp on each other.
+
+virt-disk-explore
+-----------------