echo $EDITOR # or %{EDITOR}
edit /etc/resolv.conf
-live CD inspection
-------------------
-
- virt-inspector livecd.iso
-
-Could this be done through the core API and existing calls?
-
-There is a soft requirement for this in virt-manager, where it would
-be nice to be able to prepopulate the operating system hints based on
-what sort of ISO the user is trying to install from.
-
-Several sorts of CDs:
-
- - live CD
- - install-only CD
- - network install CD
- - supplemental CDs with additional packages but not bootable
- on its own
-
-Some CDs are formatted as ISO9660 and larger ones as UDF (DVD format),
-but they all are unpartitioned.
-
-Bootable Linux CDs have an /isolinux directory.
-
-Bootable EFI CDs have an /EFI/BOOT directory.
-
-Fedora live CDs have /images/install.img which is a squashfs
-containing an ext4 root. We could consider mounting this and
-inspecting it separately, but it would be simple to get everything we
-need from other files in the CD directory.
-
-More recent Fedora install DVD has /.discinfo and /.treeinfo with some
-easy to parse information in it.
-
-Debian and Ubuntu CDs have a /.disk/info file which is the product
-string. There are other interesting files in /.disk. They also have
-a characteristic directory structure (eg. /dists, /pool/main) which
-looks like a Debian archive.
-
-Windows 2003 install CDs have some characteristic stamp files in the
-root directory, like: /win51 /win51ia /win51ia.sp2. The main
-installation files (CAB files) are in /i386 directory. The following
-files contain a lot of interesting information:
-
- /i386/hivesft.inf
- /i386/layout.inf
- /i386/sis.inf
- /i386/txtsetup.sif
+live CD inspection for Windows 7
+--------------------------------
Windows 7 install CDs are quite different and pretty impenetrable.
There are no obvious files to parse.
ntfs streams: extract alternate streams from NTFS files
+ntfsck: checker for NTFS filesystems
+
Undelete files
--------------
Useful options to offer:
- Set label.
- Set UUID.
+
+Use /proc/self/mountinfo
+------------------------
+
+This file contains lots of interesting information about
+what is mounted and where. eg:
+
+ 16 21 0:3 / /proc rw,relatime - proc /proc rw
+ 17 21 0:16 / /sys rw,relatime - sysfs /sys rw,seclabel
+ 18 23 0:5 / /dev rw,relatime - devtmpfs udev rw,seclabel,size=1906740k,nr_inodes=476685,mode=755
+ 26 21 253:3 / /home rw,relatime - ext4 /dev/mapper/vg-lv_home rw,seclabel,barrier=1,data=ordered
+
+This could be used instead of current hairy code to parse the output
+of the 'mount' command. We could add new APIs to return kernel mount
+options, type of filesystem at a mountpoint etc.
+
+guestfish drive letters
+-----------------------
+
+There should be an option to mount all Windows drives as separate
+paths, like C: => /c/, D: => /d/ etc.
+
+More inspection features
+------------------------
+
+- last shutdown time
+- DHCP address
+- last time the software was updated
+- last user who logged in
+- lastlog, last, who
+
+Integrate virt-inspector with CMDBs
+-----------------------------------
+
+Either integrate virt-inspector with Configuration Management
+Databases (CMDBs) or at least check that virt-inspector produces the
+right range of data so that integration would be possible. The
+standards for CMDBs come from the DMTF, see eg:
+
+http://dmtf.org/news/pr/2009/7/dmtf-releases-cmdbf-standard-federating-configuration-management-data
+
+Efficient way to visit all files
+--------------------------------
+
+https://rwmj.wordpress.com/2010/12/15/tip-audit-virtual-machine-for-setuid-files/#content
+
+A naive method would look like:
+
+ g#visit ~return_stats:true "/" (
+ fun pathname stat ->
+ ...
+ )
+
+However this has two disadvantages:
+
+ - requires hand-written custom bindings in each language
+ - unclear about locking, thread-safety and re-entrancy of handle g
+
+A better way would be to have some sort of explicit "download all
+filenames and stat structures", which could then be iterated over:
+
+ let files = g#find_opts ~return_stats:true "/" in
+ List.iter (
+ fun pathname stat ->
+ ...
+ )
+
+The problem with this is that 'files' is going to be larger than a
+protocol buffer.
+
+This leads to thinking about changes to the protocol / generator to
+make this simpler. The proposal would be to add RBigStringList,
+RBigStructList [or RBig (Ranytype ...)]. These would work like
+FileOut, in that they would use file streaming to stream XDR
+structures (probably written to a file on the library side).
+Generated code would hide most of the implementation.
+
+We also need to think about security issues: is it possible for the
+daemon to keep sending back data forever, and if so what happens on
+the library side.
+
+[Users can now use virt-ls to solve some of these problems, but it is
+not a general solution at the API level]
+
+Interactive disk creator
+------------------------
+
+An interactive disk creator program.
+
+Attach method for disconnected operation
+----------------------------------------
+
+http://libguestfs.org/guestfs.3.html#guestfs_set_attach_method
+
+"Librarian" has an idea that he should be able to attach to a regular
+appliance, but disconnect from it and reconnect to it later. This
+would be some sort of modified attach method (see link above).
+
+The complexity here is that we would no longer have access to
+stdin/stdout (or we'd have to direct that somewhere else).
+
+GObject Introspection
+---------------------
+
+We periodically get asked to implement gobject-introspection (it's a
+GNOME thing):
+
+http://live.gnome.org/GObjectIntrospection
+
+This would require a separate Gtk C API since the main guestfs handle
+would have to be encapsulated in a GObject. However the main
+difficulty is that the annotations supported to define types are not
+very rich. Notably missing are support for optional arguments
+(defined but not implemented), support for structs (unless mapped to
+other objects).
+
+Also note that the libguestfs API is not "object oriented".
+
+libosinfo mappings for virt-inspector
+-------------------------------------
+
+Return libosinfo mappings from inspection API.