X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=TODO;h=90238ca4f079da029c88f11482d12fe765022c5d;hp=2301c27365cae1a53294a8d62f97a8d4f77d3aab;hb=6d0d3b7f02a5a4801c6347e1ef0c8cd7755c2454;hpb=f08fe63761d4186d49212b1d2382b1a5a2b8a62f diff --git a/TODO b/TODO index 2301c27..90238ca 100644 --- a/TODO +++ b/TODO @@ -103,7 +103,6 @@ Ideas for extra commands findfs logsave mklost+found - ext2undelete SELinux: chcat @@ -190,12 +189,6 @@ autogenerated module which creates a Sys::Guestfs handle singleton How would editing files work? -ntfsclone ---------- - -Useful imaging tool: -http://man.linux-ntfs.org/ntfsclone.8.html - virt-rescue pty --------------- @@ -206,6 +199,10 @@ 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). +[I tried to implement this in the new C virt-rescue, but it doesn't +work. qemu is implementing its own ptys, and they are broken. Need +to fix qemu.] + Windows-based daemon/appliance ------------------------------ @@ -234,6 +231,8 @@ 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. +[Not sure this is such a good idea. See also live CD inspection idea below.] + Map filesystems to disk blocks ------------------------------ @@ -264,16 +263,6 @@ 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. - -Update: I managed to fit a real-but-minimal Fedora 13 image into 6.2 MB. -See: http://rwmj.wordpress.com/2010/09/07/tip-pack-files-into-a-new-disk-image/#content - Freeze/thaw filesystems ----------------------- @@ -319,7 +308,6 @@ Currently LUKS support only works if the device contains volume groups. If it contains, eg., partitions, you cannot access them. We would like to add: - - An easier way to use this from guestfish. - Direct access to the /dev/mapper device (eg. if it contains anything apart from VGs). @@ -347,3 +335,99 @@ Eric Sandeen pointed out the blktrace tool which is a better way of capturing traces than using patched qemu (see contrib/visualize-alignment). We would still use the same visualization tools in conjunction with blktrace traces. + +guestfish parsing +----------------- + +At the moment guestfish uses an ad hoc parser which has many +shortcomings. We should change to using a lex/yacc-based scanner and +parser (there are better parsers out there, but yacc is sufficient and +very widely available). + +The scanner must deal with the case of parsing a whole command string, +eg. for a command that the user types in: + + > add-drive-opts "/tmp/foo" readonly:true + +and also with parsing single words from the command line: + + guestfish add-drive-opts /tmp/foo readonly:true + +Note the quotes are for scanning and don't indicate types. + +We should also allow variables and expressions as part of this new +parsing code, eg: + + set roots inspect-os + set product inspect-get-product-name %{roots[0]} + +% is better than $ because of shell escaping and confusion with shell +variables. + +Can we combine this with ability to set and read environment +variables? Currently guestfish uses many environment variables like +$EDITOR without any corresponding ability to set them. + + set EDITOR /usr/bin/emacs + echo $EDITOR # or %{EDITOR} + edit /etc/resolv.conf + +live CD inspection for Windows 7 +-------------------------------- + +Windows 7 install CDs are quite different and pretty impenetrable. +There are no obvious files to parse. + +More ntfs tools +--------------- + +ntfsprogs actually has a lot more useful tools than we currently +use. Interesting ones are: + +ntfslabel: display or change filesystem label (we should unify all + set*label APIs into a single set_vfs_label which can deal with any + filesystem) + +ntfsclone: clone, image, restore, rescue NTFS + +ntfsinfo: print various information about NTFS volume and files + +ntfs streams: extract alternate streams from NTFS files + +ntfsck: checker for NTFS filesystems + +Undelete files +-------------- + +Two useful tools: + + - ext2undelete + - ntfsundelete + +More mkfs_opts options +---------------------- + +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.