General glibc / core programs:
chgrp
- grep (do it locally using pipe?)
dd (?)
- ln / ln -s
- readlink
utime / utimes / futimes / futimens / l..
more mk*temp calls
- some sort of alloc/fallocate/posix_fallocate call to create empty space
- realpath
trunc[ate??]
ext2 properties:
pivot_root
fts(3) / ftw(3)
-Swap space
-----------
-
-Allow swap space from the guest to be used. Is it a good idea?
-
Other initrd-* commands
-----------------------
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->wait_ready; $g->mount ("/dev/sda1", "/"); ....'
+ 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.
$h->set_autosync (1);
$h->add_drive_ro ($filename);
$h->launch ();
- $h->wait_ready ();
$h->mount_ro (\"/dev/sda1\", \"/\");
Command-line form would be:
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.