summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2011-11-21 11:45:54 +0000
committerRichard W.M. Jones <rjones@redhat.com>2011-11-21 11:45:54 +0000
commit7828f4dfe3d5ff4d086261218908c8da37bb9d97 (patch)
tree3c77909a7a278450e5c06691434285ce2a645788
parent8bc6e9d6a89672bbe1e7469774abe889354deb67 (diff)
downloadlibguestfs-7828f4dfe3d5ff4d086261218908c8da37bb9d97.tar.gz
libguestfs-7828f4dfe3d5ff4d086261218908c8da37bb9d97.tar.xz
libguestfs-7828f4dfe3d5ff4d086261218908c8da37bb9d97.zip
contrib: Update introduction to libguestfs.
-rw-r--r--contrib/intro/libguestfs-intro.html119
-rw-r--r--contrib/intro/talk.txt33
2 files changed, 123 insertions, 29 deletions
diff --git a/contrib/intro/libguestfs-intro.html b/contrib/intro/libguestfs-intro.html
index 67bdf9b2..fe1e833b 100644
--- a/contrib/intro/libguestfs-intro.html
+++ b/contrib/intro/libguestfs-intro.html
@@ -179,16 +179,28 @@ get_blkid_tag (const char *device, const char *tag)
</object>
<table>
- <tr><td valign="top" style="padding-bottom: 1.5em;">
+ <tr><td valign="top" style="padding-bottom: 1.5em;" colspan="2">
<pre>
-<b>guestfish -N fs -m /dev/sda1 &lt;&lt;EOF</b>
- <font style="color: green;">mkdir /etc
- upload /etc/resolv.conf /etc/resolv.conf
- write /etc/hostname "test01.redhat.com"</font>
+<b>guestfish -N bootrootlv:/dev/VG/LV:ext4:ext4:10G:256M &lt;&lt;EOF</b>
+ <font style="color: green;">mount-options "" /dev/VG/LV /
+ mkdir /boot
+ mount-options "" /dev/sda1 /boot
+ txz-in filesystem.tar.xz /
+ write /etc/HOSTNAME "test01.example.com\n"
+ upload /etc/resolv.conf /etc/resolv.conf</font>
<b>EOF</b>
+<b>guestmount -a test1.img -i mnt/</b>
+<b>ls mnt</b>
+bin dev home lib mnt proc sbin tmp var
+boot etc initrd.img lost+found old-root root sys usr vmlinuz
+<b>cat mnt/etc/HOSTNAME</b>
+test01.example.com
+<b>fusermount -u mnt</b>
</pre>
-<p class="sourcelnk"><a href="http://libguestfs.org/guestfish.1.html">manual&nbsp;...</a></p>
- </td><td valign="top">
+<p class="sourcelnk"><a href="http://libguestfs.org/guestfish.1.html">manual&nbsp;for&nbsp;guestfish&nbsp;...</a> <br/>
+<a href="http://libguestfs.org/guestmount.1.html">manual&nbsp;for&nbsp;guestmount&nbsp;...</a></p>
+ </td></tr>
+ <tr><td valign="top" style="padding-bottom: 1.5em;">
<pre>
<b>virt-df -a /dev/vg/F15x32 -h</b>
Filesystem Size Used Available Use%
@@ -196,14 +208,30 @@ F15x32:/dev/sda1 484M 31M 428M 7%
F15x32:/dev/vg_f15x32/lv_root 5.5G 3.4G 1.8G 63%
</pre>
<p class="sourcelnk"><a href="http://libguestfs.org/virt-df.1.html">manual&nbsp;...</a></p>
+ </td>
+ <td valign="top" style="padding-bottom: 1.5em;">
+<pre>
+<b>virt-cat -c qemu:///system -d WinXP 'c:\boot.ini'</b>
+[boot loader]
+timeout=30
+default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
+[operating systems]
+multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=
+"Microsoft Windows XP Professional" /noexecute=optin
+/fastdetect
+</pre>
+<p class="sourcelnk"><a href="http://libguestfs.org/virt-cat.1.html">manual&nbsp;...</a></p>
</td></tr>
- <tr><td valign="top">
+ <tr><td valign="top" style="padding-bottom: 1.5em;">
<pre>
<b>virt-edit -c qemu:///system -d F15x32 /etc/passwd</b>
-<i>(launches editor)</i>
+<i>(launches text editor to edit guest /etc/passwd)</i>
+
+<b>virt-edit -c qemu:///system -d F15x32 /etc/passwd \
+ -e 's/^root:.*?:/root::/'</b>
</pre>
<p class="sourcelnk"><a href="http://libguestfs.org/virt-edit.1.html">manual&nbsp;...</a></p>
- </td><td valign="top">
+ </td><td valign="top" style="padding-bottom: 1.5em;">
<pre>
<b>virt-win-reg -c qemu:///system --unsafe-printable-strings \
Win7x32 'HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters' \
@@ -217,8 +245,20 @@ F15x32:/dev/vg_f15x32/lv_root 5.5G 3.4G 1.8G 63%
<h2>Inspection</h2>
<pre>
-$ <b>virt-inspector -c qemu:///system -d Win7x32</b>
+$ <b>virt-filesystems -c qemu:///system -d Win7x32 --all --long -h --uuid</b>
+Name Type VFS Label MBR Size Parent UUID
+/dev/sda1 filesystem ntfs System Reserved - 100M - F81C92571C92112C
+/dev/sda2 filesystem ntfs - - 20G - F2E8996AE8992E3B
+/dev/sda1 partition - - 07 100M /dev/sda -
+/dev/sda2 partition - - 07 20G /dev/sda -
+/dev/sda device - - - 20G - -
+</pre>
+<p class="sourcelnk">
+<a href="http://libguestfs.org/virt-filesystems.1.html">manual&nbsp;...</a>
+</p>
+<pre>
+$ <b>virt-inspector -c qemu:///system -d Win7x32</b>
<font style="color: #888;">&lt;?xml version="1.0"?&gt;</font>
<font style="color: #888;">&lt;operatingsystems&gt;</font>
<font style="color: #888;">&lt;operatingsystem&gt;</font>
@@ -235,18 +275,10 @@ $ <b>virt-inspector -c qemu:///system -d Win7x32</b>
<font style="color: #888;">&lt;hostname&gt;</font>win7x32<font style="color: #888;">&lt;/hostname&gt;</font>
<i>... etc ...</i>
</pre>
-<p class="sourcelnk"><a href="win7.xml">full&nbsp;XML&nbsp;...</a></p>
-
- <table>
- <tr><td colspan="2" align="middle">
- <small><i>Click to enlarge the images</i></small>
- </td></tr>
- <tr><td width="50%">
- <a href="virt-manager.png"><img src="virt-manager-t.png"></a>
- </td><td width="50%" align="middle" valign="top">
- <a href="vmm-icons.png"><img src="vmm-icons-t.png"></a>
- </td></tr>
- </table>
+<p class="sourcelnk">
+<a href="win7.xml">full&nbsp;XML&nbsp;...</a> <br/>
+<a href="http://libguestfs.org/virt-inspector.1.html">manual&nbsp;...</a>
+</p>
<pre>
char **roots;
@@ -290,15 +322,47 @@ $ <b>virt-inspector -c qemu:///system -d Win7x32</b>
</pre>
<p class="sourcelnk"><a href="http://git.annexia.org/?p=libguestfs.git;a=blob;f=rescue/virt-rescue.c;h=0c0036460434f1365d9591d6b2b805d999b07056;hb=HEAD#l351">full&nbsp;source&nbsp;...</a></p>
+ <table>
+ <tr><td colspan="2" align="middle">
+ <small><i>Click to enlarge the images</i></small>
+ </td></tr>
+ <tr><td width="50%">
+ <a href="virt-manager.png"><img src="virt-manager-t.png"></a>
+ </td><td width="50%" align="middle" valign="top">
+ <a href="vmm-icons.png"><img src="vmm-icons-t.png"></a>
+ </td></tr>
+ </table>
+
+
+
+
+ <h2>Graphical browsers</h2>
+
+ <p>
+ <img src="https://rwmj.files.wordpress.com/2011/07/guestfs-browser1.png?w=438&h=450"/>
+ </p>
+ <p>
+ <img src="https://rwmj.files.wordpress.com/2011/07/guestfs-browser2.png?w=438&h=450"/>
+ </p>
+ <p>
+ <img src="https://rwmj.files.wordpress.com/2011/07/guestfs-browser3.png?w=366&h=450"/>
+ </p>
- <h2>V2V &amp; P2V</h2>
+ <p>
+ <img src="https://rwmj.files.wordpress.com/2011/07/guestfs-browser4.png?w=366&h=450"/>
+ </p>
+ <p class="sourcelnk"><a href="https://rwmj.wordpress.com/2011/07/29/some-screenshots-from-the-new-guest-filesystem-browser/">source&nbsp;...</a></p>
+ <p>
+ <img src="https://rwmj.files.wordpress.com/2009/11/file-browser.png?w=500"/>
+ </p>
+ <p class="sourcelnk"><a href="https://rwmj.wordpress.com/2009/11/03/browsing-guests-using-fuse/">source&nbsp;...</a></p>
- <h2>Read more ...</h2>
+ <h2>Find out more ...</h2>
<p>
<a href="http://libguestfs.org/">libguestfs.org</a> is the
@@ -318,6 +382,11 @@ $ <b>virt-inspector -c qemu:///system -d Win7x32</b>
local man command.
</p>
+ <p>
+ For information about virt-v2v and virt-p2v, see
+ <a href="http://libguestfs.org/virt-v2v/">http://libguestfs.org/virt-v2v/</a>
+ </p>
+
<hr/>
<p style="font-size: 70%;">
diff --git a/contrib/intro/talk.txt b/contrib/intro/talk.txt
index d28bcc4b..6fda60b9 100644
--- a/contrib/intro/talk.txt
+++ b/contrib/intro/talk.txt
@@ -45,7 +45,7 @@ This is something that is possible using the libguestfs
API, but we don't encourage it. There are three reasons
why we don't encourage and support this: one is that
because we're calling this from a C program, it's hard
-to construct shell commands and deal with quoting issues.
+to construct shell commands.
Secondly it's hard to parse the result from commands
(think about parted or lvs which are two commands that
produce quite complex output that is hard to parse).
@@ -100,8 +100,8 @@ are many more than are shown here.
Starting at the top, "guestfish" is a shell for the API,
letting you write simple shell scripts. If you look at
the code examples below, you can see a small guestfish
-script that creates a new raw format partitioned filesystem
-with some content.
+script that creates a complete guest. Then we mount it on
+the host using guestmount (FUSE) and browse around.
Going round clockwise:
@@ -116,7 +116,6 @@ programs like the GNOME Nautilus file browser.
"virt-rescue" lets you use the appliance directly, and
it's a useful way to rescue guests by hand.
-You just want to hammer out some shell commands manually.
"virt-win-reg" lets you read and write Windows Registry
entries. There is a rather complex example below right.
@@ -135,3 +134,29 @@ obsolete.
[4 Inspection]
+Next I want to look at another aspect of the API which is
+called "inspection".
+
+Inspection means taking arbitrary disk images and finding
+out what they contain, from just what partitions and filesystems
+are in a disk image, to whether and what operating system(s)
+it contains, to what applications are installed.
+
+The two main command-line tools are virt-filesystems and
+virt-inspector, and you can see the output from these tools.
+However this information is also available through the
+API. The example there shows getting operating system
+inspection data from a C program. Programs can also get
+inspection information, as you can see in the screenshots
+from the latest virt-manager.
+
+[5 Graphical browsers]
+
+I've concentrated a lot on command line tools, but you can
+also use libguestfs from graphical programs. I wrote an
+experimental program called guestfs-browser, and there are
+screenshots shown. But many people will simply want to mount
+a filesystem on the host using guestmount, and then use
+ordinary tools. At the bottom is a screenshot of GNOME
+Nautilus browsing into a guest filesystem.
+