- RWMJ
-Python bindings
----------------
-
-Ideas for the Python bindings:
-https://www.redhat.com/archives/fedora-virt/2009-April/msg00114.html
-
FUSE API
--------
extra details about the guest itself in order to get to its
UID->username map (eg. /etc/passwd from the guest).
-BufferIn
---------
-
-BufferIn should turn into <char *, int> and simple strings in other
-languages that can handle 8 bit clean strings.
-
-Limit on transfers would still be 2MB for these types.
- - then implement write-file properly
-
febootstrap / debootstrap inside appliance
------------------------------------------
Should we bother having the daemon at all and just link the guestfsd
code directly into libguestfs?
-PPC problems
-------------
-
-[This section should be filed as bugs, but no one seems to care for
-PPC hosts and the hardware is rapidly becoming obsolete]
-
- ppc (32 bit) works with qemu from git, however there is no serial console
-
- ppc64 requires extra parameters:
- -M mac99 -cpu ppc64
- however it still fails:
- invalid/unsupported opcode: 01 - 01 - 1a (06301e83) 00000000018c2738 1
- invalid bits: 00400000 for opcode: 0b - 19 - 15 (2d746572) 0000000000009230
-
- no serial console in ppc or ppc64 because no one can tell us what
- console=ttyXX option to use
-
Supermin appliance to febootstrap
---------------------------------
General glibc / core programs:
chgrp
- dd (?)
more mk*temp calls
ext2 properties:
findfs
logsave
mklost+found
+ ext2undelete
SELinux:
chcat
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
---------------
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
------------
However this won't work easily for VM disk images in the disk image.
One would have to download those to the host and launch another
-libguestfs instance.
\ No newline at end of file
+libguestfs instance.
+
+List, mount filesystems by UUID and label
+-----------------------------------------
+
+[See related:
+http://www.redhat.com/archives/libguestfs/2009-August/msg00031.html]
+
+List filesystems by UUID or label.
+
+Mount filesystems by UUID or label. (I'm not really sure if we can do
+this at the moment but we ought to be able to do it, and perhaps make
+it easier by having a direct command).
+
+Map filesystems to disk blocks
+------------------------------
+
+Map files/filesystems/(any other object) to the actual disk
+blocks they occupy.
+
+And vice versa.
+
+Is it even possible?
+
+Integration with host intrusion systems
+---------------------------------------
+
+Perfect way to monitor VMs from outside the VM. Look for file
+hashes, log events, login/logout etc.
+
+http://www.ossec.net/
+http://la-samhna.de/samhain/
+http://sourceforge.net/projects/aide/
+http://osiris.shmoo.com/
+http://sourceforge.net/projects/tripwire/
+
+-N option should be generated
+-----------------------------
+
+'-N' option should be generated code, and should generate
+documentation in guestfish(1) manpage.
+
+Fix 'file'
+----------
+
+https://www.redhat.com/archives/libguestfs/2010-June/msg00053.html
+https://www.redhat.com/archives/libguestfs/2010-June/msg00079.html
+
+Regression test on virt-inspector
+---------------------------------
+
+Occasionally we break virt-inspector through some change. We should
+add a regression test for it. However this is hard because we'd need
+to avoid having to carry huge images.
+
+Freeze/thaw filesystems
+-----------------------
+
+Access to these ioctls:
+http://git.kernel.org/linus/fcccf502540e3d7
+
+Tips for new users in guestfish
+-------------------------------
+
+$ guestfish
+Tip: You need to 'add disk.img' or 'alloc disk.img nn' to make a new image.
+Type 'notips' to disable tips permanently.
+><fs> add mydisk
+Tip: You need to type 'run' before you can see into the disk image.
+><fs> run
+Tip: Use 'list-filesystems' to see what filesystems are available.
+><fs> list-filesystems
+/dev/vda1
+Tip: Use 'mount fs /' to mount a filesystem.
+><fs> mount /dev/vda1 /
+Tip: Use 'll /' to view the filesystem or ...
+><fs> ll /
+
+New guestfish commands
+----------------------
+
+'list-filesystems' => list mountable filesystems
+
+We could implement this as a new API call, replacing a number of areas
+of the current code where this is done already (in virt-inspector and
+elsewhere). What we normally do to find out if a partition contains a
+mountable filesystem is to just blindly mount it, and see if that
+succeeds. However the kernel won't let us do this if the filesystem
+is already mounted somewhere, so a naive implementation of this in the
+daemon won't work. We would have to check if the partition was
+already mounted.
+
+Could we make guestfish interactive if commands are used without params?
+------------------------------------------------------------------------
+
+><fs> sparse
+[[Prints man page]]
+Image name? disk.img
+Size of image? 10M
+
+Common problems
+---------------
+
+How can we solve these common user problems?
+
+- http://lists.fedoraproject.org/pipermail/users/2010-June/374931.html
+ In guestfish, specified -m non-existent filesystem. We could suggest
+ a list of filesystems, or suggest they run the virt-list-filesystems
+ command.
+
+Progress of long-running operations
+-----------------------------------
+
+For example, copying in virt-resize. How can we display the progress
+of these operations? This is a basic usability requirement, and
+frequently requested.