[Pkg-libvirt-commits] [libguestfs] 02/37: Imported Upstream version 1.15.1
Hilko Bengen
bengen at moszumanska.debian.org
Sun Dec 22 18:13:32 UTC 2013
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to annotated tag debian/1%1.15.10-1
in repository libguestfs.
commit a9f3a3d16180a28b7068e9500305a69ec054e7a0
Author: Hilko Bengen <bengen at debian.org>
Date: Fri Nov 11 11:53:24 2011 +0100
Imported Upstream version 1.15.1
---
BUGS | 8 +-
ChangeLog | 38 +
Makefile.am | 16 +
Makefile.in | 16 +
appliance/packagelist.in | 1 +
configure | 26 +-
configure.ac | 2 +-
contrib/README | 6 +
contrib/autobuild/autobuild.sh | 109 +
contrib/guestfsd-in-wine.sh | 117 +
contrib/intro/libguestfs-intro.html | 253 ++
contrib/intro/overview.svg | 524 +++
contrib/intro/talk.txt | 7 +
contrib/intro/tools.svg | 711 +++++
contrib/visualize-alignment/.gitignore | 2 +
contrib/visualize-alignment/README | 70 +
.../guestfish-N-fs-10M-aligned-part-disk.qtr | 122 +
contrib/visualize-alignment/guestfish-N-fs-10M.qtr | 122 +
.../visualize-alignment/guestfish-add-mount.qtr | 72 +
.../guestfish-lv-ext4-4k-write-hello.qtr | 104 +
.../visualize-alignment/guestfish-lv-ext4-4k.qtr | 450 +++
.../visualize-alignment/guestfish-write-hello.qtr | 101 +
.../qemu-0.13-trace-block-device-access.patch | 104 +
contrib/visualize-alignment/tracetops.ml | 423 +++
daemon/debug.c | 2 +-
debian/changelog | 4 +-
fish/inspect.c | 8 +-
generator/generator_perl.ml | 92 +-
libguestfs.pc | 2 +-
perl/lib/Sys/Guestfs.pm | 3364 ++++++++++++++++++++
perl/t/900-introspection.t | 42 +
po-docs/ja.po | 324 +-
po-docs/ja/guestfish.1 | 2 +-
po-docs/ja/guestfs.3 | 2 +-
po-docs/ja/guestmount.1 | 2 +-
po-docs/ja/libguestfs-test-tool.1 | 2 +-
po-docs/ja/virt-alignment-scan.1 | 2 +-
po-docs/ja/virt-cat.1 | 2 +-
po-docs/ja/virt-copy-in.1 | 2 +-
po-docs/ja/virt-copy-out.1 | 2 +-
po-docs/ja/virt-df.1 | 2 +-
po-docs/ja/virt-edit.1 | 2 +-
po-docs/ja/virt-filesystems.1 | 2 +-
po-docs/ja/virt-inspector.1 | 2 +-
po-docs/ja/virt-list-filesystems.1 | 2 +-
po-docs/ja/virt-list-partitions.1 | 2 +-
po-docs/ja/virt-ls.1 | 2 +-
po-docs/ja/virt-make-fs.1 | 2 +-
po-docs/ja/virt-rescue.1 | 60 +-
po-docs/ja/virt-rescue.pod | 53 +-
po-docs/ja/virt-resize.1 | 2 +-
po-docs/ja/virt-sparsify.1 | 2 +-
po-docs/ja/virt-sysprep.1 | 2 +-
po-docs/ja/virt-tar-in.1 | 2 +-
po-docs/ja/virt-tar-out.1 | 2 +-
po-docs/ja/virt-tar.1 | 2 +-
po-docs/ja/virt-win-reg.1 | 2 +-
po-docs/libguestfs-docs.pot | 323 +-
po-docs/uk.po | 337 +-
po-docs/uk/guestfish.1 | 2 +-
po-docs/uk/guestfs.3 | 2 +-
po-docs/uk/guestmount.1 | 2 +-
po-docs/uk/libguestfs-test-tool.1 | 2 +-
po-docs/uk/virt-alignment-scan.1 | 2 +-
po-docs/uk/virt-cat.1 | 2 +-
po-docs/uk/virt-copy-in.1 | 2 +-
po-docs/uk/virt-copy-out.1 | 2 +-
po-docs/uk/virt-df.1 | 2 +-
po-docs/uk/virt-edit.1 | 2 +-
po-docs/uk/virt-filesystems.1 | 2 +-
po-docs/uk/virt-inspector.1 | 2 +-
po-docs/uk/virt-list-filesystems.1 | 2 +-
po-docs/uk/virt-list-partitions.1 | 2 +-
po-docs/uk/virt-ls.1 | 2 +-
po-docs/uk/virt-make-fs.1 | 2 +-
po-docs/uk/virt-rescue.1 | 60 +-
po-docs/uk/virt-rescue.pod | 53 +-
po-docs/uk/virt-resize.1 | 2 +-
po-docs/uk/virt-sparsify.1 | 2 +-
po-docs/uk/virt-sysprep.1 | 2 +-
po-docs/uk/virt-tar-in.1 | 2 +-
po-docs/uk/virt-tar-out.1 | 2 +-
po-docs/uk/virt-tar.1 | 2 +-
po-docs/uk/virt-win-reg.1 | 2 +-
po/en_GB.gmo | Bin 10781 -> 10781 bytes
po/en_GB.po | 89 +-
po/es.gmo | Bin 94335 -> 94335 bytes
po/es.po | 90 +-
po/gu.gmo | Bin 53605 -> 53605 bytes
po/gu.po | 67 +-
po/hi.gmo | Bin 43389 -> 43389 bytes
po/hi.po | 67 +-
po/kn.gmo | Bin 52822 -> 52822 bytes
po/kn.po | 67 +-
po/libguestfs.pot | 69 +-
po/ml.gmo | Bin 56355 -> 56355 bytes
po/ml.po | 67 +-
po/mr.gmo | Bin 107083 -> 107083 bytes
po/mr.po | 89 +-
po/nl.gmo | Bin 94352 -> 92463 bytes
po/nl.po | 69 +-
po/or.gmo | Bin 52173 -> 52173 bytes
po/or.po | 67 +-
po/pa.gmo | Bin 92358 -> 92358 bytes
po/pa.po | 89 +-
po/pl.gmo | Bin 99008 -> 96999 bytes
po/pl.po | 69 +-
po/ta.gmo | Bin 47311 -> 47311 bytes
po/ta.po | 67 +-
po/te.gmo | Bin 49970 -> 49970 bytes
po/te.po | 67 +-
po/uk.gmo | Bin 129728 -> 127156 bytes
po/uk.po | 69 +-
rescue/virt-rescue.c | 166 +
rescue/virt-rescue.pod | 54 +-
115 files changed, 8933 insertions(+), 609 deletions(-)
diff --git a/BUGS b/BUGS
index a257089..4eac2fc 100644
--- a/BUGS
+++ b/BUGS
@@ -1,5 +1,5 @@
NOTE: This file is automatically generated from "update-bugs.sh".
-Last updated: 2011-10-27
+Last updated: 2011-11-01
This contains a local list of the bugs that are open against
libguestfs. Bugs are tracked in the Red Hat Bugzilla database
@@ -171,12 +171,12 @@ You can help by testing the fixes.
691389 MODIFIED https://bugzilla.redhat.com/show_bug.cgi?id=691389
Extended attributes don't work over guestmount (FUSE)
-748370 MODIFIED https://bugzilla.redhat.com/show_bug.cgi?id=748370
- guestfish fails to read disk images after os upgrade
-
657499 MODIFIED https://bugzilla.redhat.com/show_bug.cgi?id=657499
checksum: wrong check sum type causes umount to fail
+748370 ON_QA https://bugzilla.redhat.com/show_bug.cgi?id=748370
+ guestfish fails to read disk images after os upgrade
+
--------------------------------------------------
These bugs are in the VERIFIED state.
diff --git a/ChangeLog b/ChangeLog
index 0da3141..ad2b87b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,43 @@
+2011-11-01 Richard W.M. Jones <rjones at redhat.com>
+
+ contrib: Add all contrib files to EXTRA_DIST.
+
+ contrib: Add libguestfs talk.
+ This is a short (10-15 min) talk that I give to introduce the main
+ features of libguestfs. The "slides" are in the form of a complete
+ self-contained HTML page with a handful images that can be easily
+ distributed before the talk.
+
+ rescue: Add --suggest option to suggest mount commands.
+
+ fish: Use size_t instead of int when counting strings.
+
+2011-10-31 Matthew Booth <mbooth at redhat.com>
+
+ Fix debug help error message.
+ When given an invalid debug command, libguestfs responds with the
+ error message:
+
+ libguestfs: error: debug: use 'debug help' to list the supported commands
+
+ However this command does not work, as debug requires two
+ arguments. This change updates the message to prompt the user to use
+ 'debug help 0'.
+
+2011-10-31 Richard W.M. Jones <rjones at redhat.com>
+
+ appliance: Add 'mdadm' package.
+
+2011-10-28 Richard W.M. Jones <rjones at redhat.com>
+
+ perl: Add %guestfs_introspection hash with introspection information.
+ Because this is a useful introspection API, it is a candidate for
+ being backported into older stable branches.
+
2011-10-27 Richard W.M. Jones <rjones at redhat.com>
+ Version 1.15.0.
+
Pull latest translations from Transifex.
generator: Remove DangerWillRobinson.
diff --git a/Makefile.am b/Makefile.am
index 388cdeb..a7038f3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -102,7 +102,23 @@ EXTRA_DIST = \
bugs-in-changelog.sh \
autogen.sh \
bindtests \
+ contrib/autobuild/autobuild.sh \
+ contrib/guestfsd-in-wine.sh \
+ contrib/intro/libguestfs-intro.html \
+ contrib/intro/overview.svg \
+ contrib/intro/talk.txt \
+ contrib/intro/tools.svg \
contrib/README \
+ contrib/visualize-alignment/.gitignore \
+ contrib/visualize-alignment/guestfish-add-mount.qtr \
+ contrib/visualize-alignment/guestfish-lv-ext4-4k.qtr \
+ contrib/visualize-alignment/guestfish-lv-ext4-4k-write-hello.qtr \
+ contrib/visualize-alignment/guestfish-N-fs-10M-aligned-part-disk.qtr \
+ contrib/visualize-alignment/guestfish-N-fs-10M.qtr \
+ contrib/visualize-alignment/guestfish-write-hello.qtr \
+ contrib/visualize-alignment/qemu-0.13-trace-block-device-access.patch \
+ contrib/visualize-alignment/README \
+ contrib/visualize-alignment/tracetops.ml \
debian/.gitignore \
debian/changelog \
debian/compat \
diff --git a/Makefile.in b/Makefile.in
index 3a8c3f6..c90c4ca 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1332,7 +1332,23 @@ EXTRA_DIST = \
bugs-in-changelog.sh \
autogen.sh \
bindtests \
+ contrib/autobuild/autobuild.sh \
+ contrib/guestfsd-in-wine.sh \
+ contrib/intro/libguestfs-intro.html \
+ contrib/intro/overview.svg \
+ contrib/intro/talk.txt \
+ contrib/intro/tools.svg \
contrib/README \
+ contrib/visualize-alignment/.gitignore \
+ contrib/visualize-alignment/guestfish-add-mount.qtr \
+ contrib/visualize-alignment/guestfish-lv-ext4-4k.qtr \
+ contrib/visualize-alignment/guestfish-lv-ext4-4k-write-hello.qtr \
+ contrib/visualize-alignment/guestfish-N-fs-10M-aligned-part-disk.qtr \
+ contrib/visualize-alignment/guestfish-N-fs-10M.qtr \
+ contrib/visualize-alignment/guestfish-write-hello.qtr \
+ contrib/visualize-alignment/qemu-0.13-trace-block-device-access.patch \
+ contrib/visualize-alignment/README \
+ contrib/visualize-alignment/tracetops.ml \
debian/.gitignore \
debian/changelog \
debian/compat \
diff --git a/appliance/packagelist.in b/appliance/packagelist.in
index f8f2642..9b723d0 100644
--- a/appliance/packagelist.in
+++ b/appliance/packagelist.in
@@ -108,6 +108,7 @@ jfsutils
lsof
lvm2
lzop
+mdadm
module-init-tools
net-tools
/*
diff --git a/configure b/configure
index 519b1e0..ac47865 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libguestfs 1.15.0.
+# Generated by GNU Autoconf 2.68 for libguestfs 1.15.1.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -567,8 +567,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='libguestfs'
PACKAGE_TARNAME='libguestfs'
-PACKAGE_VERSION='1.15.0'
-PACKAGE_STRING='libguestfs 1.15.0'
+PACKAGE_VERSION='1.15.1'
+PACKAGE_STRING='libguestfs 1.15.1'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -2282,7 +2282,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures libguestfs 1.15.0 to adapt to many kinds of systems.
+\`configure' configures libguestfs 1.15.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -2352,7 +2352,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of libguestfs 1.15.0:";;
+ short | recursive ) echo "Configuration of libguestfs 1.15.1:";;
esac
cat <<\_ACEOF
@@ -2522,7 +2522,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-libguestfs configure 1.15.0
+libguestfs configure 1.15.1
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -3264,7 +3264,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by libguestfs $as_me 1.15.0, which was
+It was created by libguestfs $as_me 1.15.1, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -4171,7 +4171,7 @@ fi
# Define the identity of the package.
PACKAGE='libguestfs'
- VERSION='1.15.0'
+ VERSION='1.15.1'
cat >>confdefs.h <<_ACEOF
@@ -4268,8 +4268,8 @@ else
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: libguestfs version 1.15.0$libguestfs_extra" >&5
-$as_echo "$as_me: libguestfs version 1.15.0$libguestfs_extra" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: libguestfs version 1.15.1$libguestfs_extra" >&5
+$as_echo "$as_me: libguestfs version 1.15.1$libguestfs_extra" >&6;}
$as_echo "#define PACKAGE_VERSION_MAJOR 1" >>confdefs.h
@@ -4278,7 +4278,7 @@ $as_echo "#define PACKAGE_VERSION_MAJOR 1" >>confdefs.h
$as_echo "#define PACKAGE_VERSION_MINOR 15" >>confdefs.h
-$as_echo "#define PACKAGE_VERSION_RELEASE 0" >>confdefs.h
+$as_echo "#define PACKAGE_VERSION_RELEASE 1" >>confdefs.h
cat >>confdefs.h <<_ACEOF
@@ -53153,7 +53153,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by libguestfs $as_me 1.15.0, which was
+This file was extended by libguestfs $as_me 1.15.1, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -53223,7 +53223,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-libguestfs config.status 1.15.0
+libguestfs config.status 1.15.1
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index cda17a9..7a19e33 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,7 +20,7 @@
# freeform string.
m4_define([libguestfs_major], [1])
m4_define([libguestfs_minor], [15])
-m4_define([libguestfs_release], [0])
+m4_define([libguestfs_release], [1])
AC_INIT([libguestfs],libguestfs_major.libguestfs_minor.libguestfs_release)
AC_CONFIG_AUX_DIR([build-aux])
diff --git a/contrib/README b/contrib/README
index ce695ec..a708d90 100644
--- a/contrib/README
+++ b/contrib/README
@@ -28,6 +28,12 @@ guestfsd-in-wine.sh
Run a Windows-compiled guestfsd under Wine. Read the
instructions at the top of this file carefully.
+intro/ "Slides" for an intro to libguestfs. This is a short (10-15
+ min) talk that I give to introduce the main features of
+ libguestfs. The slides are in the form of a complete
+ self-contained HTML page with a handful images that can be
+ easily distributed before the talk.
+
visualize-alignment/
Tests for visualizing block device reads and writes and
alignment using a patched qemu. See the README file in that
diff --git a/contrib/autobuild/autobuild.sh b/contrib/autobuild/autobuild.sh
new file mode 100755
index 0000000..c7b0fed
--- /dev/null
+++ b/contrib/autobuild/autobuild.sh
@@ -0,0 +1,109 @@
+#!/bin/bash -
+# libguestfs autobuild script
+# Copyright (C) 2009-2011 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# This script is used to download and test the latest tarball on
+# Debian and other platforms. It runs from a cron job and sends email
+# to the mailing list about the status.
+
+set -e
+
+# Subject line of email prefix.
+prefix="${1:-[autobuild]}"
+
+# Where we send mail.
+mailto="rjones at redhat.com"
+
+# Move to temporary directory for building.
+tmpdir="$(mktemp -d --tmpdir=/var/tmp)"
+cd "$tmpdir"
+
+# The libguestfs index page contains some hidden fields to help us
+# find the latest version programmatically.
+version=$(wget --no-cache -O- -q http://libguestfs.org |
+ grep '^LATEST-VERSION:' | awk '{print $2}')
+url=$(wget --no-cache -O- -q http://libguestfs.org |
+ grep '^LATEST-URL:' | awk '{print $2}')
+filename=$(basename "$url")
+directory=$(basename "$url" .tar.gz)
+
+echo "--------------------------------------------------"
+echo "prefix $prefix"
+echo "libguestfs $version"
+echo "url $url"
+echo "build dir $tmpdir/$directory"
+echo "--------------------------------------------------"
+
+# Grab the latest tarball from upstream.
+wget "$url"
+
+# Unpack the tarball.
+tar zxf "$filename"
+
+# Enter directory.
+cd "$directory"
+
+# This function is called if any step fails.
+failed ()
+{
+ tail -100 ../build.log > ../build.log.tail
+ mutt -s "$prefix libguestfs $version FAILED $1" "$mailto" -a ../build.log.tail <<EOF
+Autobuild failed. The last 100 lines of the build log are
+attached.
+
+For the full log see the build machine, in
+$tmpdir/build.log
+EOF
+ rm ../build.log.tail
+}
+
+# This function is called if the build is successful.
+ok ()
+{
+ mutt -s "$prefix libguestfs $version ok" "$mailto" <<EOF
+Autobuild was successful.
+
+For the full log see the build machine, in
+$tmpdir/build.log
+EOF
+}
+
+# Ensure that we get full debugging output.
+export LIBGUESTFS_DEBUG=1
+export LIBGUESTFS_TRACE=1
+
+# Configure and build.
+echo "configure"
+./configure > ../build.log 2>&1 || {
+ failed "configure"
+ exit 1
+}
+echo "make"
+make >> ../build.log 2>&1 || {
+ failed "make"
+ exit 1
+}
+
+# Run the tests.
+echo "make check"
+make check >> ../build.log 2>&1 || {
+ failed "make check"
+ exit 1
+}
+
+echo "finished"
+ok
diff --git a/contrib/guestfsd-in-wine.sh b/contrib/guestfsd-in-wine.sh
new file mode 100755
index 0000000..bc9d87b
--- /dev/null
+++ b/contrib/guestfsd-in-wine.sh
@@ -0,0 +1,117 @@
+#!/bin/bash -
+# Copyright (C) 2009 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# INSTRUCTIONS
+#----------------------------------------------------------------------
+#
+# This is a QEMU wrapper script that allows you to run a
+# Windows-compiled guestfsd.exe (daemon) under Wine from a Linux main
+# program. You need to read and understand all the instructions below
+# before use.
+#
+# To understand how to compile the daemon for Windows, please read:
+# http://www.redhat.com/archives/libguestfs/2009-November/msg00255.html
+#
+# Adjust the Wine configuration so it can find the libraries, as
+# described here:
+# http://fedoraproject.org/wiki/MinGW/Configure_wine
+#
+# On Fedora 13 there is a serious bug in Wine. See:
+# https://bugzilla.redhat.com/show_bug.cgi?id=533806#c11
+#
+# If necessary, adjust the line 'guestfsd=...' below so it points to
+# the correct location of the guestfsd.exe program. You can use an
+# absolute path here if you want.
+guestfsd=daemon/guestfsd.exe
+#
+# This script is a QEMU wrapper. It pretends to be qemu as far as
+# libguestfs programs are concerned. Read this to understand the
+# purpose of QEMU wrappers:
+# http://libguestfs.org/guestfs.3.html#qemu_wrappers
+#
+# With this script, the qemu program is not actually run. Instead we
+# pretend to be qemu, parse out the necessary parts of the long
+# command line that libguestfs passes to qemu, and run the Windows
+# daemon, under Wine, with the right command line. The Windows daemon
+# then hopefully connects back to the libguestfs socket, and as far as
+# the libguestfs program is concerned, it looks like a full appliance
+# is running.
+#
+# To use this script, you must set the environment variable
+# LIBGUESTFS_QEMU=/path/to/contrib/guestfsd-in-wine.sh (ie. the path
+# to this script).
+#
+# You can then run libguestfs test programs, and (hopefully!) they'll
+# use the Windows guestfsd.exe, simulating calls using Wine.
+#
+# For example from the top build directory:
+#
+# LIBGUESTFS_QEMU=contrib/guestfsd-in-wine.sh ./run ./fish/guestfish
+#
+# Another suggested environment variable is LIBGUESTFS_DEBUG=1 which
+# will give you must more detail about what is going on. Also look at
+# the contents of the log file 'guestfsd-in-wine.log' after each run.
+#
+#----------------------------------------------------------------------
+
+# Note that stdout & stderr messages will get eaten by libguestfs
+# early on in the process. Therefore write log messages to
+# a log file.
+exec 5>>guestfsd-in-wine.log
+echo "Environment:" >&5
+printenv | grep LIBGUESTFS >&5
+echo "Command line:" >&5
+echo " $@" >&5
+
+# We're called several times, first with -help and -version, and we
+# have to pretend to be qemu! (At least enough to trick libguestfs).
+if [ "$1" = "-help" ]; then
+ echo -- " -net user "
+ echo -- " -no-hpet "
+ echo -- " -rtc-td-hack "
+ exit 0
+elif [ "$1" = "-version" ]; then
+ echo -- "0.0.0"
+ exit 0
+fi
+
+# The interesting parameter is -append.
+append=
+while [ $# -gt 0 ]; do
+ if [ $1 = "-append" ]; then
+ append="$2"
+ shift
+ fi
+ shift
+done
+echo "Append parameter:" >&5
+echo " $append" >&5
+
+# guestfs_vmchannel parameter.
+vmchannel_param=$(echo "$append" | grep -Eo 'guestfs_vmchannel=[^[:space:]]+')
+echo "Vmchannel parameter:" >&5
+echo " $vmchannel_param" >&5
+
+# Port number.
+port=$(echo "$vmchannel_param" | grep -Eo '[[:digit:]]+$')
+echo "Port number:" >&5
+echo " $vmchannel_param" >&5
+
+# Run guestfsd.exe.
+echo "Command:" >&5
+echo " $guestfsd -f -v -c tcp:localhost:$port" >&5
+$guestfsd -f -v -c tcp:127.0.0.1:$port
diff --git a/contrib/intro/libguestfs-intro.html b/contrib/intro/libguestfs-intro.html
new file mode 100644
index 0000000..cfc7b8b
--- /dev/null
+++ b/contrib/intro/libguestfs-intro.html
@@ -0,0 +1,253 @@
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
+ <title>Short introduction to libguestfs</title>
+ <style>
+ body {
+ counter-reset: chapter;
+ }
+
+ body p {
+ margin-left: 2em;
+ }
+
+ h1 {
+ color: rgb(204,0,0);
+ font-size: 130%;
+ border-bottom: 1px solid rgb(204,0,0);
+ }
+ author {
+ display: block;
+ position: absolute;
+ right: 2em;
+ top: 1em;
+ font-size: 80%;
+ text-align: right;
+ }
+
+ h2 {
+ background-color: #f3f3f3;
+ margin-top: 2em;
+ color: rgb(204,0,0);
+ counter-increment: chapter;
+ counter-reset: section;
+ }
+ h2:before {
+ font-size: 80%;
+ color: #666;
+ content: counter(chapter) " — ";
+ }
+
+ pre {
+ background-color: #fcfcfc;
+ border-top: 1px dotted #888;
+ border-bottom: 1px dotted #888;
+ border-left: 6px solid rgb(204,0,0);
+ padding: 5px;
+ margin-left: 1em;
+ }
+
+ p.sourcelnk {
+ text-align: right;
+ font-size: 70%;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>Short introduction to libguestfs</h1>
+ <author>by Richard W.M. Jones <rjones at redhat.com></author>
+
+ <h2>The Idea</h2>
+
+ <p><b>Reuse qemu, Linux kernel and userspace tools</b> to read and
+ write disk images.</p>
+
+ <img src="overview.svg"/>
+
+ <h2>The Stable API</h2>
+
+<pre>
+ /* get the Linux VFS type corresponding to a mounted device */
+extern char *<b>guestfs_vfs_type</b> (guestfs_h *g, const char *device);
+</pre>
+
+<table style="margin-bottom: 4em;" width="100%">
+ <tr><td valign="top">Example using this API:</td><td>
+<pre>
+#include <guestfs.h>
+
+char *fstype = <b>guestfs_vfs_type (g, "/dev/vda1")</b>;
+printf ("%s\n", fstype);
+free (fstype);
+→ <b>ntfs</b>
+</pre>
+<p class="sourcelnk"><a href="http://git.annexia.org/?p=libguestfs.git;a=blob;f=fish/inspect.c;h=2ca54d2296fce5370504c1085cbcd7ac1b51ad3a;hb=HEAD#l208">click to see a real example ...</a></p>
+ </td>
+ </tr>
+</table>
+
+ <table width="100%">
+ <tr><td valign="top">
+
+<pre style="font-size: 80%;">
+ ("<b>vfs_type</b>",
+ (RString "fstype",
+ [Device "device"], []),
+ 198, [],
+ [ (* tests *) ],
+ "get the Linux VFS type corresponding to a mounted device",
+ "\
+This command gets the filesystem type corresponding to
+the filesystem on C<device>.
+
+For most filesystems, the result is the name of the Linux
+VFS module which would be used to mount this filesystem
+if you mounted it without specifying the filesystem type.
+For example a string such as C<ext3> or C<ntfs>.");
+</pre>
+<p class="sourcelnk"><a href="http://git.annexia.org/?p=libguestfs.git;a=blob;f=generator/generator_actions.ml;h=d3fa3e0b939eb047a5ff103a68f09c6898807748;hb=HEAD#l4775">full source ...</a></p>
+
+ </td>
+ <td valign="top">
+
+<pre style="font-size: 80%;">
+char *
+<b>do_vfs_type</b> (const char *device)
+{
+ return get_blkid_tag (device, "TYPE");
+}
+
+static char *
+get_blkid_tag (const char *device, const char *tag)
+{
+ char *out, *err;
+ int r;
+
+ r = commandr (&out, &err,
+ "blkid",
+ "-c", "/dev/null",
+ "-o", "value", "-s", tag, device, NULL);
+ if (r != 0 && r != 2) {
+ if (r >= 0)
+ reply_with_error ("%s: %s (blkid returned %d)",
+ device, err, r);
+ else
+ reply_with_error ("%s: %s", device, err);
+ free (out);
+ free (err);
+ return NULL;
+ }
+
+ /* ... */
+
+ return out; /* caller frees */
+}
+</pre>
+<p class="sourcelnk"><a href="http://git.annexia.org/?p=libguestfs.git;a=blob;f=daemon/blkid.c;hb=HEAD">full source ...</a></p>
+
+ </td>
+ </tr>
+ </table>
+
+ <p>
+ Just these two fragments generate:
+ </p>
+
+ <ul>
+ <li> bindings in <a href="http://libguestfs.org/guestfs.3.html#api_overview">C</a>,
+ <a href="http://libguestfs.org/guestfs-perl.3.html">Perl</a>,
+ <a href="http://libguestfs.org/guestfs-python.3.html">Python</a>,
+ <a href="http://libguestfs.org/guestfs-ruby.3.html">Ruby</a>,
+ <a href="http://libguestfs.org/guestfs-java.3.html">Java</a>,
+ <a href="http://libguestfs.org/guestfs-ocaml.3.html">OCaml</a>,
+ PHP,
+ Haskell,
+ <a href="http://libguestfs.org/guestfs-erlang.3.html">Erlang</a>
+ and C# </li>
+ <li> <a href="http://libguestfs.org/guestfish.1.html">guestfish</a>
+ (shell script) </li>
+ <li> documentation in man pages and HTML </li>
+ <li> internal RPC code </li>
+ </ul>
+
+ <h2>Tools written around the API</h2>
+
+ <img src="tools.svg" />
+
+ <table>
+ <tr><td valign="top">
+<pre>
+<b>guestfish -N fs -m /dev/sda1 <<EOF</b>
+ <font style="color: green;">mkdir /etc
+ upload /etc/resolv.conf /etc/resolv.conf
+ write /etc/hostname "test01.redhat.com"</font>
+<b>EOF</b>
+</pre>
+<p class="sourcelnk"><a href="http://libguestfs.org/guestfish.1.html">manual ...</a></p>
+ </td><td valign="top">
+<pre>
+<b>virt-df -a /dev/vg/F15x32 -h</b>
+Filesystem Size Used Available Use%
+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 ...</a></p>
+ </td></tr>
+ <tr><td valign="top">
+<pre>
+<b>virt-edit -c qemu:///system -d F15x32 /etc/passwd</b>
+<i>(launches editor)</i>
+</pre>
+<p class="sourcelnk"><a href="http://libguestfs.org/virt-edit.1.html">manual ...</a></p>
+ </td><td valign="top">
+<pre>
+<b>virt-win-reg -c qemu:///system --unsafe-printable-strings \
+ Win7x32 'HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters' \
+ | grep DhcpIPAddress</b>
+"DhcpIPAddress"=str(1):"192.168.122.178"
+</pre>
+<p class="sourcelnk"><a href="http://libguestfs.org/virt-win-reg.1.html">manual ...</a></p>
+ </td></tr>
+ </table>
+
+ <h2>Inspection</h2>
+
+
+
+
+ <h2>V2V & P2V</h2>
+
+
+
+
+ <h2>Read more ...</h2>
+
+ <p>
+ <a href="http://libguestfs.org/">libguestfs.org</a> is the
+ main website.
+ </p>
+
+ <p>
+ <a href="http://libguestfs.org/guestfs.3.html">guestfs(3)</a>
+ is the manual page documenting the C API and the internals.
+ </p>
+
+ <p>
+ There are manual pages
+ documenting <a href="http://libguestfs.org/guestfish.1.html">guestfish</a>, <a href="http://libguestfs.org/guestmount.1.html">guestmount</a>
+ and each virt tool. See
+ the <a href="http://libguestfs.org/">main website</a> or your
+ local man command.
+ </p>
+
+ <hr/>
+
+ <p style="font-size: 70%;">
+ This page © 2011 Red Hat Inc. and distributed
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ </p>
+
+ </body>
+</html>
diff --git a/contrib/intro/overview.svg b/contrib/intro/overview.svg
new file mode 100644
index 0000000..25f245a
--- /dev/null
+++ b/contrib/intro/overview.svg
@@ -0,0 +1,524 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="741.56433"
+ height="342.17648"
+ preserveAspectRatio="xMinYMin meet"
+ viewBox="0 0 742.2916 341.4346"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="libguestfs-overview.svg">
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4142136"
+ inkscape:cx="355.32914"
+ inkscape:cy="132.14604"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1400"
+ inkscape:window-height="833"
+ inkscape:window-x="89"
+ inkscape:window-y="31"
+ inkscape:window-maximized="0"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3046"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4">
+ <marker
+ style="overflow:visible"
+ id="Arrow1Mend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path4254"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path4149" />
+ </marker>
+ <inkscape:perspective
+ id="perspective3761"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <marker
+ style="overflow:visible"
+ id="Arrow1LendR"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1LendR">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#8c8989;fill-rule:evenodd;stroke:#8c8989;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path4924" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1LendH"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1LendH">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#888888;fill-rule:evenodd;stroke:#888888;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path5584" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lendi"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lendi">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#888888;fill-rule:evenodd;stroke:#888888;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path5587" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lendn"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lendn">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path5590" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1LendnS"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1LendnS">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path5709" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1LendnS4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1LendnS4">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#888888;fill-rule:evenodd;stroke:#888888;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path5832" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1MendG"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1MendG">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path4721"
+ inkscape:connector-curvature="0" />
+ </marker>
+ </defs>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(-10.718182,-61.430592)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <text
+ sodipodi:linespacing="125%"
+ id="text3793"
+ y="269.36218"
+ x="306"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+ xml:space="preserve"><tspan
+ y="269.36218"
+ x="306"
+ id="tspan3795"
+ sodipodi:role="line" /></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text3797"
+ y="267.36218"
+ x="304"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+ xml:space="preserve"><tspan
+ y="267.36218"
+ x="304"
+ id="tspan3799"
+ sodipodi:role="line" /></text>
+ <rect
+ y="154.46817"
+ x="190.705"
+ height="237.99187"
+ width="294.189"
+ id="rect2985"
+ style="fill:#ffdcdc;fill-opacity:1;stroke:#190000;stroke-width:2.94564199;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text3757"
+ y="201.36218"
+ x="239"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+ xml:space="preserve"><tspan
+ y="201.36218"
+ x="239"
+ id="tspan3759"
+ sodipodi:role="line">libguestfs</tspan></text>
+ <rect
+ y="292.36197"
+ x="200.91432"
+ height="54"
+ width="264"
+ id="rect3777"
+ style="fill:#fff6f6;fill-opacity:1;stroke:#190000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text3785"
+ y="326.63818"
+ x="220.52794"
+ style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ xml:space="preserve"><tspan
+ y="326.63818"
+ x="220.52794"
+ id="tspan3787"
+ sodipodi:role="line">Linux kernel</tspan></text>
+ <g
+ transform="matrix(0.88003385,0,0,0.86189263,26.891233,24.839975)"
+ id="g4614">
+ <rect
+ style="fill:#fff6f6;fill-opacity:1;stroke:#190000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3779"
+ width="58"
+ height="40"
+ x="218"
+ y="219.36218" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="223"
+ y="247.36218"
+ id="text3789"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3791"
+ x="223"
+ y="247.36218">mkfs</tspan></text>
+ </g>
+ <g
+ id="g3077"
+ transform="matrix(0.87343177,0,0,0.83132964,36.681547,40.720104)">
+ <rect
+ y="246.24846"
+ x="279.26575"
+ height="38.597645"
+ width="96.596542"
+ id="rect3781"
+ style="fill:#fff6f6;fill-opacity:1;stroke:#190000;stroke-width:1.2677021;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="287.50287"
+ y="271.77777"
+ id="text3801"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3803"
+ x="287.50287"
+ y="271.77777">lvcreate</tspan></text>
+ </g>
+ <g
+ id="g3072"
+ transform="matrix(0.9731636,0,0,0.89682062,-4.7939037,17.840053)">
+ <rect
+ style="fill:#fff6f6;fill-opacity:1;stroke:#190000;stroke-width:1.15940309;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3783"
+ width="77.964508"
+ height="40"
+ x="389"
+ y="228.36218" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="396"
+ y="256.36218"
+ id="text3805"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3807"
+ x="396"
+ y="256.36218">parted</tspan></text>
+ </g>
+ <g
+ id="g3081">
+ <g
+ id="g3074">
+ <image
+ width="85"
+ height="85"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABHNCSVQICAgIfAhkiAAAIABJREFU eJzsvVuMJUl6Hvb9EZl57lXV1d3TPTvLmV2CO5RJijQvMGCB9opakGsSIh/8ZunJBvhiGrzZsGBA gJ/4YAKGYJkGZK8fLNpcwwANQWssqaEfLJqkYYKUtaS45Gi53J3tnr53173qXDIzwg9x+yNv55yq 6jmnd/qvzj55iYyMjIzvv8UfEfT5z38er+k1vaaPJ4lNF+A1vabXtDl6zQBe02v6GNNrBvCaXtPH mF4zgNf0mj7G9JoBvKbX9DGm1wzgNb2mjzG9ZgCv6TV9jOk1A3hNr+ljTK8ZwGt6TR9jSjZdgPfe e482XYbX9GrT5z//eb3pMryqRJsKBa4Av8oEXjOFV5+u6xtWwa07rr1mBmvSR8 [...]
+ id="image3871"
+ x="658"
+ y="257.36218" />
+ <image
+ width="97"
+ height="97"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABHNCSVQICAgIfAhkiAAAIABJREFU eJzsvWuwZcd1HvZ17332eb/vuXPvxcxwAAwBEEOQIkcQLZs0h/QD9ENSbAdWiaEcRbbsEq2HTdlS JZUqEKmkUqn8jPMnFf9IVfIjhfyRqJQJSaWCSiXFNg2pZGogCiaeM5jHncd9nPdj786P7tW9dp+9 z70AAcwM7lk1d845e/fu3bt3r7W+tVb3avHMM89gTWta08kkea8bsKY1rene0VoArGlNJ5jWAmBN azrBtBYAa1rTCaa1AFjTmk4wrQXAmtZ0gmktANa0phNMawGwpjWdYFoLgDWt6QTTWgCsaU0nmNYC YE1rOsG0FgBrWtMJprUAWNOaTjCtBcCa1nSCaS0A1rSmE0xrAbCmNZ1gWguANa [...]
+ id="image3933"
+ x="616"
+ y="174.36218" />
+ <image
+ width="88"
+ height="88"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABHNCSVQICAgIfAhkiAAAIABJREFU eJzsvVmsJNl5JvadE2vu212qbnVtd6m1u6u6m6LYFEk1KTZFUiJbZItbNSlxPJoZyTOGBvCDHjyw aVgDQdYMYD8K82BhHmRiJIxh2IIGGkCwpZEgYwwIsthd+91qr+ra7poZcRY/nNgyMiIzcqt7u2/+ 3Vk3zhInTkSe//+//zsnThIpJSYykYkcTKF73YGJTGQieycTAzCRiRxgmRiAiUzkAMvEAExkIgdY JgZgIhM5wDIxABOZyAGWiQGYyEQOsEwMwEQmcoBlYgAmMpEDLBMDMJGJHGCZGICJTOQAy8QATGQi B1gmBmAiEznAMjEAE5nIAZaJAZjIRA6wTAzARCZygGViACYykQMsEwMwkYkcYJ [...]
+ id="image3995"
+ x="523"
+ y="181.36218" />
+ <image
+ width="67"
+ height="67"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABHNCSVQICAgIfAhkiAAAIABJREFU eJzsvVmsLEl6HvbFlpm1nHPu3n17mYWcGdLkkCNapEmKw54Wh5QFwSZswwbsF4F+kW3ABqwHA34h aPjB8JP8ZL/YlhfB8IthGYRMSIJkEeRIlkxitJgQzQFm2NP77bufc6oql4j4/fD/ERmZVed2D6en z+HwxkXdqlMVGRmZGf//f/8aiojwvD1vz9ufzKYvewLP2/P2vF1ee84Anrfn7U9we84Anrfn7U9w e84Anrfn7U9ws5c9gY/avvSlL62Ojo6+LxnWzZs38fDhw8uexpVrNwFc5l05Pj7uf+M3fqO7xCl8 z5u6yl6A11//8s9H6L/Ute0vBqIXiQhKKfCUCTHy3I0xUApIvyulEEKAUgrWWo [...]
+ id="image4057"
+ x="580"
+ y="286.36218" />
+ <image
+ width="62"
+ height="62"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABHNCSVQICAgIfAhkiAAAIABJREFU eJzsvXmcHUd9L/qtqj7dZ5l90WgkWZItWxbeZLANXgCbPcYBk7DFcYA8ICYm4SXhBrLdmw+P+8gn G+HeB0neexe4sYOBF7MkBBKETeLEXDAywbZsy7I01q4ZjWbObGfOnKWXen90V9evqvuMRrIsb1P2 UVdX1171+/6+9avqHialxKpbdavuxen4s12BVbfqVt2z51YBYNWtuhexWwWAVbfqXsRuFQBW3ap7 EbtVAFh1q+5F7FYBYNWtuhexWwWAVbfqXsRuFQBW3ap7EbtVAFh1q+5F7JxnuwKr7plzjDGWF3wK WWSOicrVo6MvKMdWx/P56YhwLyfQeXFWkg7Qwt/pmhd3FSCeZ24VAJ7jztLitp [...]
+ id="image4119"
+ x="511"
+ y="264.36218" />
+ </g>
+ <g
+ transform="translate(312,29)"
+ id="g4593">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.19099998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Lend)"
+ d="m 146.71493,213.36218 63.78507,-1"
+ id="path4595"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4597"
+ d="m 209.5,230.36218 -63.78507,-1"
+ style="fill:none;stroke:#000000;stroke-width:1.19099998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Lend)" />
+ </g>
+ </g>
+ <g
+ id="g3066"
+ transform="matrix(1,0,0,1.1398731,0,-21.605949)">
+ <rect
+ y="154.46817"
+ x="29.436453"
+ height="208.78802"
+ width="141.45755"
+ id="rect3755"
+ style="fill:#fff6f6;fill-opacity:1;stroke:#190000;stroke-width:1.91299629;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="52"
+ y="221.36218"
+ id="text4629"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4631"
+ x="52"
+ y="221.36218">virt tools,</tspan><tspan
+ sodipodi:role="line"
+ x="52"
+ y="246.36218"
+ id="tspan4633">scripts,</tspan><tspan
+ sodipodi:role="line"
+ x="52"
+ y="271.36218"
+ id="tspan4637">your</tspan><tspan
+ sodipodi:role="line"
+ x="52"
+ y="296.36218"
+ id="tspan4635">programs</tspan></text>
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ id="path4139"
+ d="m 147.71493,243.36218 63.78507,-1"
+ style="fill:none;stroke:#000000;stroke-width:1.19099998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Lend)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.19099998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Lend)"
+ d="m 210.5,260.36218 -63.78507,-1"
+ id="path4587"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4, 4;stroke-dashoffset:0"
+ d="m 180.89471,128.46003 0,264"
+ id="path4080"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="118.74557"
+ y="86.635712"
+ id="text4082"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4084"
+ x="118.74557"
+ y="86.635712">stable API</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="M 109,-9.2673035 154,24.732697"
+ id="path4086"
+ inkscape:connector-curvature="0"
+ transform="translate(18.479955,101.90301)" />
+ <rect
+ style="fill:#fff6f6;fill-opacity:1;stroke:#190000;stroke-width:0.74572152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3048"
+ width="264"
+ height="30.02943"
+ x="200.91432"
+ y="352.42081" />
+ <text
+ xml:space="preserve"
+ style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="220.93394"
+ y="372.44043"
+ id="text3050"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3052"
+ x="220.93394"
+ y="372.44043">qemu</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.01373005px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans Narrow;-inkscape-font-specification:Sans"
+ x="371.08105"
+ y="372.44043"
+ id="text3054"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3056"
+ x="371.08105"
+ y="372.44043">raw</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.01373005px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans Narrow;-inkscape-font-specification:Sans"
+ x="421.1301"
+ y="372.44043"
+ id="text3058"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3060"
+ x="421.1301"
+ y="372.44043">qcow2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.01373005px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans Narrow;-inkscape-font-specification:Sans"
+ x="323.02417"
+ y="372.91223"
+ id="text3062"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3064"
+ x="323.02417"
+ y="372.91223">vmdk</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.01373005px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans Narrow;-inkscape-font-specification:Sans"
+ x="391.51471"
+ y="315.46762"
+ id="text3082"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3084"
+ x="391.51471"
+ y="315.46762">ext4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.01373005px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans Narrow;-inkscape-font-specification:Sans"
+ x="426.90472"
+ y="333.87045"
+ id="text3086"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3088"
+ x="426.90472"
+ y="333.87045">btrfs</tspan></text>
+ </g>
+</svg>
diff --git a/contrib/intro/talk.txt b/contrib/intro/talk.txt
new file mode 100644
index 0000000..a8632f6
--- /dev/null
+++ b/contrib/intro/talk.txt
@@ -0,0 +1,7 @@
+This is a short (10-15 min) talk that I give to introduce the main
+features of libguestfs. The "slides" are in the form of a complete
+self-contained HTML page with a handful images that can be easily
+distributed before the talk.
+
+----------------------------------------------------------------------
+
diff --git a/contrib/intro/tools.svg b/contrib/intro/tools.svg
new file mode 100644
index 0000000..fe1f034
--- /dev/null
+++ b/contrib/intro/tools.svg
@@ -0,0 +1,711 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="629.526"
+ height="475.37674"
+ preserveAspectRatio="xMinYMin meet"
+ viewBox="0 0 630.14339 474.34607"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="libguestfs-tools.svg">
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="305.93218"
+ inkscape:cy="244.25314"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1400"
+ inkscape:window-height="833"
+ inkscape:window-x="26"
+ inkscape:window-y="31"
+ inkscape:window-maximized="0"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3046"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4">
+ <marker
+ style="overflow:visible"
+ id="Arrow1Mend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path4254"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path4149" />
+ </marker>
+ <inkscape:perspective
+ id="perspective3761"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <marker
+ style="overflow:visible"
+ id="Arrow1LendR"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1LendR">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#8c8989;fill-rule:evenodd;stroke:#8c8989;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path4924" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1LendH"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1LendH">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#888888;fill-rule:evenodd;stroke:#888888;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path5584" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lendi"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lendi">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#888888;fill-rule:evenodd;stroke:#888888;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path5587" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lendn"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lendn">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path5590" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1LendnS"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1LendnS">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path5709" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1LendnS4"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1LendnS4">
+ <path
+ inkscape:connector-curvature="0"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#888888;fill-rule:evenodd;stroke:#888888;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path5832" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1MendG"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1MendG">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;marker-start:none"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ id="path4721"
+ inkscape:connector-curvature="0" />
+ </marker>
+ </defs>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(-61.579184,-78.961745)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <text
+ sodipodi:linespacing="125%"
+ id="text3793"
+ y="269.36218"
+ x="306"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+ xml:space="preserve"><tspan
+ y="269.36218"
+ x="306"
+ id="tspan3795"
+ sodipodi:role="line" /></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text3797"
+ y="267.36218"
+ x="304"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+ xml:space="preserve"><tspan
+ y="267.36218"
+ x="304"
+ id="tspan3799"
+ sodipodi:role="line" /></text>
+ <g
+ id="g3942"
+ transform="matrix(0.72385693,0,0,0.72385693,134.30682,108.78183)">
+ <rect
+ style="fill:#ffdcdc;fill-opacity:1;stroke:#190000;stroke-width:2.94564199;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect2985"
+ width="294.189"
+ height="237.99187"
+ x="190.705"
+ y="154.46817" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+ x="239"
+ y="201.36218"
+ id="text3757"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3759"
+ x="239"
+ y="201.36218">libguestfs</tspan></text>
+ <g
+ id="g4614"
+ transform="matrix(0.88003385,0,0,0.86189263,26.891233,24.839975)">
+ <rect
+ y="219.36218"
+ x="218"
+ height="40"
+ width="58"
+ id="rect3779"
+ style="fill:#fff6f6;fill-opacity:1;stroke:#190000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text3789"
+ y="247.36218"
+ x="223"
+ style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ xml:space="preserve"><tspan
+ y="247.36218"
+ x="223"
+ id="tspan3791"
+ sodipodi:role="line">mkfs</tspan></text>
+ </g>
+ <g
+ transform="matrix(0.87343177,0,0,0.83132964,36.681547,40.720104)"
+ id="g3077">
+ <rect
+ style="fill:#fff6f6;fill-opacity:1;stroke:#190000;stroke-width:1.2677021;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3781"
+ width="96.596542"
+ height="38.597645"
+ x="279.26575"
+ y="246.24846" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text3801"
+ y="271.77777"
+ x="287.50287"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ xml:space="preserve"><tspan
+ y="271.77777"
+ x="287.50287"
+ id="tspan3803"
+ sodipodi:role="line">lvcreate</tspan></text>
+ </g>
+ <g
+ transform="matrix(0.9731636,0,0,0.89682062,-4.7939037,17.840053)"
+ id="g3072">
+ <rect
+ y="228.36218"
+ x="389"
+ height="40"
+ width="77.964508"
+ id="rect3783"
+ style="fill:#fff6f6;fill-opacity:1;stroke:#190000;stroke-width:1.15940309;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text3805"
+ y="256.36218"
+ x="396"
+ style="font-size:20px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ xml:space="preserve"><tspan
+ y="256.36218"
+ x="396"
+ id="tspan3807"
+ sodipodi:role="line">parted</tspan></text>
+ </g>
+ <g
+ id="g3931">
+ <rect
+ style="fill:#fff6f6;fill-opacity:1;stroke:#190000;stroke-width:0.74572152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3048"
+ width="264"
+ height="30.02943"
+ x="200.91432"
+ y="352.42081" />
+ <text
+ xml:space="preserve"
+ style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="220.93394"
+ y="372.44043"
+ id="text3050"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3052"
+ x="220.93394"
+ y="372.44043">qemu</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.01373005px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans Narrow;-inkscape-font-specification:Sans"
+ x="371.08105"
+ y="372.44043"
+ id="text3054"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3056"
+ x="371.08105"
+ y="372.44043">raw</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.01373005px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans Narrow;-inkscape-font-specification:Sans"
+ x="421.1301"
+ y="372.44043"
+ id="text3058"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3060"
+ x="421.1301"
+ y="372.44043">qcow2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.01373005px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans Narrow;-inkscape-font-specification:Sans"
+ x="323.02417"
+ y="372.91223"
+ id="text3062"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3064"
+ x="323.02417"
+ y="372.91223">vmdk</tspan></text>
+ </g>
+ <g
+ id="g3922">
+ <rect
+ y="292.36197"
+ x="200.91432"
+ height="54"
+ width="264"
+ id="rect3777"
+ style="fill:#fff6f6;fill-opacity:1;stroke:#190000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text3785"
+ y="326.63818"
+ x="220.52794"
+ style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ xml:space="preserve"><tspan
+ y="326.63818"
+ x="220.52794"
+ id="tspan3787"
+ sodipodi:role="line">Linux kernel</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.01373005px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans Narrow;-inkscape-font-specification:Sans"
+ x="391.51471"
+ y="315.46762"
+ id="text3082"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3084"
+ x="391.51471"
+ y="315.46762">ext4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.01373005px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:condensed;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans Narrow;-inkscape-font-specification:Sans"
+ x="426.90472"
+ y="333.87045"
+ id="text3086"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3088"
+ x="426.90472"
+ y="333.87045">btrfs</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g3888"
+ transform="translate(-85.64383,133.06644)">
+ <rect
+ ry="9.1923885"
+ transform="matrix(1.0009807,0,0,1.0009807,10.718182,61.430592)"
+ y="19.7358"
+ x="163.34166"
+ height="31.819805"
+ width="145.66399"
+ id="rect3060"
+ style="fill:#cc0000;fill-opacity:1;stroke:none" />
+ <text
+ transform="matrix(1.0009807,0,0,1.0009807,10.718182,61.430592)"
+ sodipodi:linespacing="125%"
+ id="text3884"
+ y="40.241898"
+ x="178.89801"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans Bold"
+ xml:space="preserve"><tspan
+ y="40.241898"
+ x="178.89801"
+ id="tspan3886"
+ sodipodi:role="line">virt-resize</tspan></text>
+ </g>
+ <g
+ transform="translate(268.25631,31.143212)"
+ id="g3901">
+ <rect
+ style="fill:#cc0000;fill-opacity:1;stroke:none"
+ id="rect3895"
+ width="145.66399"
+ height="31.819805"
+ x="163.34166"
+ y="19.7358"
+ ry="9.1923885"
+ transform="matrix(1.0009807,0,0,1.0009807,10.718182,61.430592)" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans Bold"
+ x="178.89801"
+ y="40.241898"
+ id="text3897"
+ sodipodi:linespacing="125%"
+ transform="matrix(1.0009807,0,0,1.0009807,10.718182,61.430592)"><tspan
+ sodipodi:role="line"
+ id="tspan3899"
+ x="178.89801"
+ y="40.241898">guestmount</tspan></text>
+ </g>
+ <g
+ transform="translate(94.845234,16.279406)"
+ id="g3917">
+ <rect
+ ry="9.2014036"
+ y="72.692146"
+ x="110.51801"
+ height="31.851011"
+ width="145.80684"
+ id="rect3908"
+ style="fill:#cc0000;fill-opacity:1;stroke:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text3910"
+ y="93.218353"
+ x="126.08962"
+ style="font-size:16.01569176px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans Bold"
+ xml:space="preserve"><tspan
+ y="93.218353"
+ x="126.08962"
+ id="tspan3912"
+ sodipodi:role="line">guestfish</tspan></text>
+ </g>
+ <g
+ id="g4006"
+ transform="translate(12.032604,19.818407)">
+ <rect
+ style="fill:#cc0000;fill-opacity:1;stroke:none"
+ id="rect3997"
+ width="145.80684"
+ height="31.851011"
+ x="523.87335"
+ y="229.11598"
+ ry="9.2014036" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.01569176px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans Bold"
+ x="539.44495"
+ y="249.6422"
+ id="text3999"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4001"
+ x="539.44495"
+ y="249.6422">virt-rescue</tspan></text>
+ </g>
+ <g
+ transform="translate(-102.63104,181.19685)"
+ id="g4011">
+ <rect
+ style="fill:#cc0000;fill-opacity:1;stroke:none"
+ id="rect4013"
+ width="145.66399"
+ height="31.819805"
+ x="163.34166"
+ y="19.7358"
+ transform="matrix(1.0009807,0,0,1.0009807,10.718182,61.430592)"
+ ry="9.1923885" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans Bold"
+ x="178.89801"
+ y="40.241898"
+ id="text4015"
+ sodipodi:linespacing="125%"
+ transform="matrix(1.0009807,0,0,1.0009807,10.718182,61.430592)"><tspan
+ sodipodi:role="line"
+ id="tspan4017"
+ x="178.89801"
+ y="40.241898">virt-sparsify</tspan></text>
+ </g>
+ <g
+ id="g4081"
+ transform="translate(-5.6624019,-29.72761)">
+ <rect
+ ry="9.2014036"
+ y="341.65622"
+ x="82.206001"
+ height="31.851011"
+ width="145.80684"
+ id="rect4021"
+ style="fill:#cc0000;fill-opacity:1;stroke:none" />
+ <text
+ transform="scale(0.97311457,1.0276282)"
+ sodipodi:linespacing="125%"
+ id="text4023"
+ y="352.44501"
+ x="87.536247"
+ style="font-size:15.58510303px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans Bold"
+ xml:space="preserve"><tspan
+ y="352.44501"
+ x="87.536247"
+ id="tspan4025"
+ sodipodi:role="line">virt-alignment-scan</tspan></text>
+ </g>
+ <g
+ id="g4038"
+ transform="translate(-7.7858026,8.4936029)">
+ <rect
+ style="fill:#cc0000;fill-opacity:1;stroke:none"
+ id="rect4029"
+ width="145.80684"
+ height="31.851011"
+ x="134.58322"
+ y="428.71567"
+ ry="9.2014036" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.01569176px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans Bold"
+ x="150.15482"
+ y="449.24185"
+ id="text4031"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4033"
+ x="150.15482"
+ y="449.24185">virt-inspector</tspan></text>
+ </g>
+ <g
+ transform="translate(75.026826,46.714815)"
+ id="g4043">
+ <rect
+ ry="9.2014036"
+ y="428.71567"
+ x="134.58322"
+ height="31.851011"
+ width="145.80684"
+ id="rect4045"
+ style="fill:#cc0000;fill-opacity:1;stroke:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4047"
+ y="449.24185"
+ x="150.15482"
+ style="font-size:16.01569176px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans Bold"
+ xml:space="preserve"><tspan
+ y="449.24185"
+ x="150.15482"
+ id="tspan4049"
+ sodipodi:role="line">virt-filesystems</tspan></text>
+ </g>
+ <g
+ id="g4076"
+ transform="translate(38.929013,4.2468014)">
+ <rect
+ style="fill:#cc0000;fill-opacity:1;stroke:none"
+ id="rect4053"
+ width="102.63103"
+ height="31.851011"
+ x="265.52628"
+ y="508.69708"
+ ry="9.2014036" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.01569176px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans Bold"
+ x="281.09787"
+ y="529.22327"
+ id="text4055"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4057"
+ x="281.09787"
+ y="529.22327">virt-df</tspan></text>
+ </g>
+ <g
+ id="g4108"
+ transform="translate(-7.0780024,24.773008)">
+ <rect
+ ry="9.2014036"
+ y="411.72845"
+ x="496.97693"
+ height="31.851011"
+ width="145.80684"
+ id="rect4061"
+ style="fill:#cc0000;fill-opacity:1;stroke:none" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text4063"
+ y="432.25464"
+ x="512.54852"
+ style="font-size:16.01569176px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans Bold"
+ xml:space="preserve"><tspan
+ y="432.25464"
+ x="512.54852"
+ id="tspan4065"
+ sodipodi:role="line">virt-win-reg</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
+ x="380.42343"
+ y="96.660439"
+ id="text4086"
+ sodipodi:linespacing="125%"
+ transform="matrix(1.0009807,0,0,1.0009807,64.410388,68.552031)"><tspan
+ sodipodi:role="line"
+ id="tspan4088"
+ x="380.42343"
+ y="96.660439">FUSE / POSIX</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
+ x="180.31223"
+ y="81.811195"
+ id="text4090"
+ sodipodi:linespacing="125%"
+ transform="matrix(1.0009807,0,0,1.0009807,64.410388,68.552031)"><tspan
+ sodipodi:role="line"
+ id="tspan4092"
+ x="180.31223"
+ y="81.811195">shell scripts</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
+ x="105.35891"
+ y="291.11481"
+ id="text4094"
+ sodipodi:linespacing="125%"
+ transform="matrix(1.0009807,0,0,1.0009807,64.410388,68.552031)"><tspan
+ sodipodi:role="line"
+ id="tspan4096"
+ x="105.35891"
+ y="291.11481">align & resize</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
+ x="247.48737"
+ y="384.45288"
+ id="text4098"
+ sodipodi:linespacing="125%"
+ transform="matrix(1.0009807,0,0,1.0009807,64.410388,68.552031)"><tspan
+ sodipodi:role="line"
+ id="tspan4100"
+ x="247.48737"
+ y="384.45288">inspection</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.01373005px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
+ x="500.41534"
+ y="405.25153"
+ id="text4102"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4104"
+ x="500.41534"
+ y="405.25153">Windows</tspan><tspan
+ sodipodi:role="line"
+ x="500.41534"
+ y="422.76868"
+ id="tspan4106">guests</tspan></text>
+ </g>
+</svg>
diff --git a/contrib/visualize-alignment/.gitignore b/contrib/visualize-alignment/.gitignore
new file mode 100644
index 0000000..68a2009
--- /dev/null
+++ b/contrib/visualize-alignment/.gitignore
@@ -0,0 +1,2 @@
+*.eps
+*.png
diff --git a/contrib/visualize-alignment/README b/contrib/visualize-alignment/README
new file mode 100644
index 0000000..e68a902
--- /dev/null
+++ b/contrib/visualize-alignment/README
@@ -0,0 +1,70 @@
+This directory contains some experimental work for capturing traces of
+block device operations while filesystem operations are performed.
+
+You can trace any operation that libguestfs supports, including
+partitioning, mkfs, LVM operations, and filesystem operations. You
+can enable and disable tracing in order to capture single operations
+such as a single write, or groups of operations. You can examine the
+traces by hand (as text files) or turn them into graphical
+visualizations.
+
+IMPORTANT NOTE: This is not upstream (in qemu) nor integrated into
+libguestfs. We should probably be using the 'blktrace' command
+instead, or if that is not suitable, get a more reliable and useful
+trace mechanism added to qemu (the current patch is not suitable for
+upstreaming).
+
+The *.qtr files are qemu trace files, produced using the unofficial
+qemu patch in the current directory.
+
+- guestfish-N-fs-10M.qtr
+
+ The command 'guestfish -N fs:ext2:10M' before we modified the
+ part-disk API to align the partition to 64 sectors.
+
+- guestfish-N-fs-10M-aligned-part-disk.qtr
+
+ The command 'guestfish -N fs:ext2:10M' after we modified the
+ part-disk API to align the partition to 64 sectors.
+
+- guestfish-add-mount.qtr
+
+ $ guestfish -a test1.img -m /dev/sda1
+ where test1.img was created by the previous command.
+
+- guestfish-write-hello.qtr
+
+ $ guestfish -a test1.img -m /dev/sda1 \
+ debug qtrace "/dev/vda on" : \
+ write /hello "hello, world." : \
+ debug qtrace "/dev/vda off"
+ where test1.img was created by the command above.
+
+ This is just the creation of a new file with a small amount of content.
+
+ Within this trace file, the qtrace on/off commands appear as patterns
+ of reads. For on: 2, 21, 15, 2. For off: 2, 15, 21, 2.
+
+- guestfish-lv-ext4-4k.qtr
+
+ $ guestfish \
+ alloc test1.img 40M : \
+ run : \
+ part-disk /dev/vda mbr : \
+ pvcreate /dev/vda : \
+ vgcreate VG /dev/vda : \
+ lvcreate LV VG 32 : \
+ mkfs-opts ext4 /dev/VG/LV blocksize:4096
+
+ Some points to note:
+ * an ext4 filesystem, so it has a journal and extents
+ * 4K block size, so we expect writes to be aligned
+ * located inside an LV, so more realistic
+
+- guestfish-lv-ext4-4k-write-hello.qtr
+
+ $ guestfish -a test1.img -m /dev/VG/LV \
+ debug qtrace "/dev/vda on" : \
+ write /hello "hello, world." : \
+ debug qtrace "/dev/vda off"
+ where test1.img was created by the previous command.
diff --git a/contrib/visualize-alignment/guestfish-N-fs-10M-aligned-part-disk.qtr b/contrib/visualize-alignment/guestfish-N-fs-10M-aligned-part-disk.qtr
new file mode 100644
index 0000000..d99c24d
--- /dev/null
+++ b/contrib/visualize-alignment/guestfish-N-fs-10M-aligned-part-disk.qtr
@@ -0,0 +1,122 @@
+S 20480
+R 0 1
+R 0 8
+R 8 8
+R 20352 8
+R 20464 8
+R 0 8
+R 8 8
+R 20472 8
+R 20216 8
+R 20416 8
+R 20224 8
+R 20080 8
+R 2048 8
+R 24 8
+R 56 8
+R 120 8
+R 16 8
+R 128 8
+R 64 8
+R 512 8
+R 32 8
+R 4096 8
+R 0 32
+R 20352 8
+R 20464 8
+R 0 8
+R 8 8
+R 0 8
+R 0 8
+R 0 32
+R 32 64
+R 128 8
+R 20456 8
+W 0 24
+W 20456 24
+R 0 8
+R 8 24
+W 0 8
+R 20352 8
+R 20464 8
+R 0 32
+R 32 64
+W 0 8
+R 20472 8
+R 20216 8
+R 20472 8
+R 20416 8
+R 20224 8
+R 20080 8
+R 20464 8
+R 8 8
+R 0 8
+R 2048 8
+R 24 8
+R 56 8
+R 120 8
+R 16 8
+R 128 8
+R 64 8
+R 512 8
+R 32 8
+R 4096 8
+R 20288 8
+R 20400 8
+R 64 8
+R 72 8
+R 20416 1
+R 20160 8
+R 20408 8
+R 2112 8
+R 88 8
+R 120 8
+R 184 8
+R 80 8
+R 192 8
+R 128 8
+R 576 8
+R 96 8
+R 4160 8
+R 0 8
+R 64 2
+W 64 379
+W 443 55
+W 16450 4
+W 16532 92
+R 20416 1
+R 20160 1
+R 20161 1
+R 20162 1
+R 20163 5
+R 2112 1
+R 2113 1
+R 2114 6
+R 576 1
+R 577 1
+R 578 6
+R 4160 1
+R 4161 1
+R 4162 6
+R 0 8
+W 16624 230
+W 20288 128
+W 66 2
+R 20288 8
+R 20400 8
+R 64 8
+R 72 8
+R 20416 1
+R 20160 8
+R 20408 8
+R 2112 8
+R 88 8
+R 120 8
+R 184 8
+R 80 8
+R 192 8
+R 128 8
+R 576 8
+R 96 8
+R 4160 8
+R 0 8
diff --git a/contrib/visualize-alignment/guestfish-N-fs-10M.qtr b/contrib/visualize-alignment/guestfish-N-fs-10M.qtr
new file mode 100644
index 0000000..4b44e4b
--- /dev/null
+++ b/contrib/visualize-alignment/guestfish-N-fs-10M.qtr
@@ -0,0 +1,122 @@
+S 20480
+R 0 1
+R 0 8
+R 8 8
+R 20352 8
+R 20464 8
+R 0 8
+R 8 8
+R 20472 8
+R 20216 8
+R 20416 8
+R 20224 8
+R 20080 8
+R 2048 8
+R 24 8
+R 56 8
+R 120 8
+R 16 8
+R 128 8
+R 64 8
+R 512 8
+R 32 8
+R 4096 8
+R 0 32
+R 20352 8
+R 20464 8
+R 0 8
+R 8 8
+R 0 8
+R 0 8
+R 0 32
+R 32 64
+R 128 8
+R 20456 8
+W 0 24
+W 20456 24
+R 0 8
+R 8 24
+W 0 8
+R 20352 8
+R 20464 8
+R 0 32
+R 32 64
+W 0 8
+R 20472 8
+R 20216 8
+R 20416 8
+R 20224 8
+R 20080 8
+R 20464 8
+R 8 8
+R 0 8
+R 2048 8
+R 24 8
+R 56 8
+R 120 8
+R 16 8
+R 128 8
+R 64 8
+R 512 8
+R 32 8
+R 4096 8
+R 20225 8
+R 20457 8
+R 1 8
+R 9 8
+R 20473 7
+R 20217 8
+R 20465 8
+R 2049 8
+R 25 8
+R 57 8
+R 121 8
+R 17 8
+R 129 8
+R 65 8
+R 513 8
+R 33 8
+R 4097 8
+R 0 8
+R 1 2
+R 20225 8
+W 1 436
+W 16387 1
+W 16388 3
+W 16469 324
+W 20225 248
+R 20473 7
+R 20217 8
+R 2049 1
+R 2050 1
+R 2051 6
+R 513 1
+R 514 1
+R 515 1
+R 516 1
+R 517 1
+R 518 1
+R 519 1
+R 520 1
+R 4097 1
+R 4098 7
+R 0 8
+W 3 2
+R 20225 8
+R 20457 8
+R 1 8
+R 9 8
+R 20473 7
+R 20217 8
+R 20465 8
+R 2049 8
+R 25 8
+R 57 8
+R 121 8
+R 17 8
+R 129 8
+R 65 8
+R 513 8
+R 33 8
+R 4097 8
+R 0 8
diff --git a/contrib/visualize-alignment/guestfish-add-mount.qtr b/contrib/visualize-alignment/guestfish-add-mount.qtr
new file mode 100644
index 0000000..2c99524
--- /dev/null
+++ b/contrib/visualize-alignment/guestfish-add-mount.qtr
@@ -0,0 +1,72 @@
+S 20480
+R 0 1
+R 0 8
+R 20352 8
+R 20464 8
+R 0 8
+R 8 8
+R 20472 8
+R 20216 8
+R 20416 8
+R 20224 8
+R 20080 8
+R 2048 8
+R 24 8
+R 56 8
+R 120 8
+R 16 8
+R 128 8
+R 64 8
+R 512 8
+R 32 8
+R 4096 8
+R 20288 8
+R 20400 8
+R 64 8
+R 72 8
+R 20416 1
+R 20160 8
+R 20408 8
+R 2112 8
+R 88 8
+R 120 8
+R 184 8
+R 80 8
+R 192 8
+R 128 8
+R 576 8
+R 96 8
+R 4160 8
+R 0 8
+R 0 32
+R 20288 1
+R 20400 1
+R 64 1
+R 72 1
+R 64 4
+R 64 4
+R 20288 8
+R 20400 8
+R 64 8
+R 72 8
+R 20416 1
+R 20160 8
+R 20408 8
+R 2112 8
+R 88 8
+R 120 8
+R 184 8
+R 80 8
+R 192 8
+R 128 8
+R 576 8
+R 96 8
+R 4160 8
+R 66 2
+R 68 2
+R 152 2
+W 66 2
+W 66 2
+W 66 2
+W 66 2
+W 66 2
diff --git a/contrib/visualize-alignment/guestfish-lv-ext4-4k-write-hello.qtr b/contrib/visualize-alignment/guestfish-lv-ext4-4k-write-hello.qtr
new file mode 100644
index 0000000..4f856ed
--- /dev/null
+++ b/contrib/visualize-alignment/guestfish-lv-ext4-4k-write-hello.qtr
@@ -0,0 +1,104 @@
+S 81920
+R 0 1
+R 0 8
+R 8 8
+R 81792 8
+R 81904 8
+R 0 8
+R 8 8
+R 81912 8
+R 81656 8
+R 81856 8
+R 81664 8
+R 81520 8
+R 0 32
+R 81792 8
+R 81904 8
+R 0 8
+R 8 8
+R 0 8
+R 8 8
+R 8 8
+R 8 8
+R 8 8
+R 8 8
+R 8 8
+R 0 8
+R 8 8
+R 8 8
+R 8 8
+R 0 8
+R 8 8
+R 8 8
+R 8 8
+R 8 8
+R 8 8
+R 8 8
+R 65792 8
+R 65904 8
+R 384 8
+R 392 8
+R 65912 8
+R 65656 8
+R 65856 8
+R 65664 8
+R 65520 8
+R 2432 8
+R 408 8
+R 440 8
+R 504 8
+R 400 8
+R 512 8
+R 448 8
+R 896 8
+R 416 8
+R 4480 8
+R 65792 8
+R 65904 8
+R 384 8
+R 392 8
+R 65912 8
+R 65656 8
+R 65856 8
+R 65664 8
+R 65520 8
+R 2432 8
+R 408 8
+R 440 8
+R 504 8
+R 400 8
+R 512 8
+R 448 8
+R 896 8
+R 416 8
+R 4480 8
+R 386 2
+R 384 8
+R 392 8
+R 664 8
+R 456 8
+W 384 8
+R 2 1
+R 21 1
+R 15 1
+R 2 1
+R 416 8
+R 536 8
+R 664 8
+R 408 8
+W 456 8
+W 464 8
+W 10712 8
+W 472 40
+W 512 8
+W 392 8
+W 408 16
+W 536 8
+W 664 8
+R 2 1
+R 15 1
+R 21 1
+R 2 1
+W 384 8
+W 456 8
+W 384 8
diff --git a/contrib/visualize-alignment/guestfish-lv-ext4-4k.qtr b/contrib/visualize-alignment/guestfish-lv-ext4-4k.qtr
new file mode 100644
index 0000000..c95d4b5
--- /dev/null
+++ b/contrib/visualize-alignment/guestfish-lv-ext4-4k.qtr
@@ -0,0 +1,450 @@
+S 81920
+R 0 1
+R 0 8
+R 8 8
+R 81792 8
+R 81904 8
+R 0 8
+R 8 8
+R 81912 8
+R 81656 8
+R 81856 8
+R 81664 8
+R 81520 8
+R 2048 8
+R 24 8
+R 56 8
+R 120 8
+R 16 8
+R 128 8
+R 64 8
+R 512 8
+R 32 8
+R 4096 8
+R 0 32
+R 81792 8
+R 81904 8
+R 0 8
+R 8 8
+R 0 8
+R 0 8
+R 0 32
+R 32 64
+R 128 8
+R 81896 8
+W 0 24
+W 81896 24
+R 81792 8
+R 81904 8
+R 0 32
+W 0 8
+R 32 8
+R 40 56
+R 81912 8
+R 81656 8
+R 81856 8
+R 81664 8
+R 81520 8
+R 81904 8
+R 32 8
+R 0 32
+W 0 8
+R 2048 8
+R 120 8
+R 16 8
+R 128 8
+R 64 8
+R 0 8
+R 512 8
+R 32 8
+R 4096 8
+R 81728 8
+R 81840 8
+R 64 8
+R 72 8
+R 81856 1
+R 81600 8
+R 81848 8
+R 2112 8
+R 88 8
+R 120 8
+R 184 8
+R 80 8
+R 192 8
+R 128 8
+R 576 8
+R 96 8
+R 4160 8
+R 0 8
+R 0 8
+R 81792 8
+R 81904 8
+R 81792 8
+R 81904 8
+R 0 8
+R 8 8
+R 81912 8
+R 81656 8
+R 81856 8
+R 81664 8
+R 81520 8
+R 2048 8
+R 24 8
+R 56 8
+R 120 8
+R 16 8
+R 128 8
+R 64 8
+R 512 8
+R 32 8
+R 4096 8
+R 0 8
+R 8 8
+R 0 8
+R 8 8
+R 24 8
+R 120 8
+R 8 8
+R 81792 8
+R 81904 8
+R 0 8
+R 8 8
+R 81912 8
+R 81656 8
+R 81856 8
+R 81664 8
+R 81520 8
+R 2048 8
+R 24 8
+R 56 8
+R 120 8
+R 16 8
+R 128 8
+R 64 8
+R 512 8
+R 32 8
+R 4096 8
+W 8 8
+R 0 8
+R 0 8
+W 0 8
+R 8 8
+W 8 8
+R 0 8
+W 0 8
+R 81792 8
+R 81904 8
+R 0 8
+R 8 8
+R 81912 8
+R 81656 8
+R 81856 8
+R 81664 8
+R 81520 8
+R 0 8
+R 8 8
+R 81792 8
+R 81904 8
+R 0 8
+R 8 8
+R 81912 8
+R 81656 8
+R 81856 8
+R 81664 8
+R 81520 8
+R 81792 8
+R 81904 8
+R 0 8
+R 8 8
+R 81728 1
+R 81840 1
+R 64 1
+R 72 1
+R 64 4
+R 81792 8
+R 81904 8
+R 0 8
+R 8 8
+R 81912 8
+R 81656 8
+R 81856 8
+R 81664 8
+R 81520 8
+R 81728 8
+R 81840 8
+R 64 8
+R 72 8
+R 81856 1
+R 81600 8
+R 81848 1
+R 81849 1
+R 81850 1
+R 81851 1
+R 81852 4
+R 2112 1
+R 2113 1
+R 2114 1
+R 2115 1
+R 2116 1
+R 2117 1
+R 2118 1
+R 2119 1
+R 88 1
+R 89 1
+R 90 1
+R 91 1
+R 92 1
+R 93 1
+R 94 1
+R 95 1
+R 120 1
+R 121 1
+R 122 1
+R 123 1
+R 124 1
+R 125 1
+R 126 1
+R 127 1
+R 184 1
+R 185 1
+R 186 6
+R 80 1
+R 81 1
+R 82 1
+R 83 1
+R 84 1
+R 85 3
+R 192 1
+R 193 1
+R 194 1
+R 195 1
+R 196 1
+R 197 1
+R 198 1
+R 199 1
+R 128 1
+R 129 1
+R 130 1
+R 131 1
+R 132 1
+R 133 1
+R 134 1
+R 135 1
+R 576 1
+R 577 1
+R 578 1
+R 579 1
+R 580 1
+R 581 1
+R 582 1
+R 583 1
+R 96 1
+R 97 1
+R 98 1
+R 99 1
+R 100 1
+R 101 1
+R 102 1
+R 103 1
+R 4160 1
+R 4161 1
+R 4162 1
+R 4163 1
+R 4164 1
+R 4165 1
+R 4166 1
+R 4167 1
+R 0 32
+R 81792 8
+R 81904 8
+R 0 8
+R 56 8
+R 8 8
+R 81728 1
+R 81840 1
+R 64 1
+R 72 1
+R 64 4
+R 81728 8
+R 81840 8
+R 64 8
+R 72 8
+R 81856 1
+R 81600 8
+R 81848 8
+R 2112 8
+R 88 8
+R 120 8
+R 184 8
+R 80 8
+R 192 8
+R 128 8
+R 576 8
+R 96 8
+R 4160 8
+R 0 8
+R 0 8
+R 24 8
+R 56 8
+R 8 8
+R 0 8
+R 8 8
+R 81792 8
+R 81904 8
+R 8 8
+R 0 8
+R 81792 8
+R 81904 8
+R 0 8
+R 8 8
+R 0 8
+R 8 8
+R 81728 1
+R 81840 1
+R 64 1
+R 72 1
+R 64 1
+R 65 3
+R 81912 8
+R 81656 8
+R 81856 8
+R 81664 8
+R 81520 8
+R 81728 8
+R 81840 8
+R 64 8
+R 72 8
+R 81856 1
+R 81600 8
+R 81848 8
+R 2112 8
+R 88 8
+R 120 8
+R 184 8
+R 80 8
+R 192 8
+R 128 8
+R 576 8
+R 96 8
+R 4160 8
+R 8 8
+R 8 8
+W 8 8
+R 8 8
+R 8 8
+W 8 8
+R 8 8
+R 8 8
+W 8 8
+R 81728 8
+R 81840 8
+R 64 8
+R 72 8
+R 81856 1
+R 81600 8
+R 81848 8
+R 2112 8
+R 88 8
+R 120 8
+R 184 8
+R 80 8
+R 192 8
+R 128 8
+R 576 8
+R 96 8
+R 4160 8
+R 81792 8
+R 81904 8
+R 0 8
+R 8 8
+R 81912 8
+R 81656 8
+R 81856 8
+R 81664 8
+R 81520 8
+R 0 8
+R 8 8
+R 8 8
+R 8 8
+R 64 4
+R 8 8
+R 8 8
+R 8 8
+R 8 8
+R 8 8
+R 8 8
+W 8 8
+R 8 8
+R 8 8
+R 8 8
+W 8 8
+R 8 8
+R 8 8
+R 8 8
+W 8 8
+R 0 8
+R 8 8
+R 8 8
+R 8 8
+R 8 8
+R 8 8
+R 8 8
+R 81728 8
+R 81840 8
+R 64 8
+R 72 8
+R 81856 1
+R 81600 8
+R 81848 8
+R 2112 8
+R 88 8
+R 120 8
+R 184 8
+R 80 8
+R 192 8
+R 128 8
+R 576 8
+R 96 8
+R 4160 8
+R 0 8
+R 24 8
+R 56 8
+R 65792 8
+R 65904 8
+R 384 8
+R 392 8
+R 65912 8
+R 65656 8
+R 65856 8
+R 65664 8
+R 65520 8
+R 2432 8
+R 408 8
+R 440 8
+R 504 8
+R 400 8
+R 512 8
+R 448 8
+R 896 8
+R 416 8
+R 4480 8
+R 384 8
+W 384 8
+R 81792 8
+R 81904 8
+R 8 8
+R 81912 8
+R 81656 8
+R 81856 8
+R 81664 8
+R 81520 8
+R 384 8
+W 384 3032
+W 3416 576
+W 3992 1448
+W 5440 1608
+W 7048 3032
+W 10080 632
+W 65792 128
+W 384 8
+W 384 8
diff --git a/contrib/visualize-alignment/guestfish-write-hello.qtr b/contrib/visualize-alignment/guestfish-write-hello.qtr
new file mode 100644
index 0000000..28f7bf1
--- /dev/null
+++ b/contrib/visualize-alignment/guestfish-write-hello.qtr
@@ -0,0 +1,101 @@
+S 20480
+R 0 1
+R 0 8
+R 20352 8
+R 20464 8
+R 0 8
+R 8 8
+R 20472 8
+R 20216 8
+R 20416 8
+R 20224 8
+R 20080 8
+R 2048 8
+R 24 8
+R 56 8
+R 120 8
+R 16 8
+R 128 8
+R 64 8
+R 512 8
+R 32 8
+R 4096 8
+R 20288 8
+R 20400 8
+R 64 8
+R 72 8
+R 20416 1
+R 20160 8
+R 20408 8
+R 2112 8
+R 88 8
+R 120 8
+R 184 8
+R 80 8
+R 192 8
+R 128 8
+R 576 8
+R 96 8
+R 4160 8
+R 0 8
+R 0 32
+R 20288 1
+R 20400 1
+R 64 1
+R 72 1
+R 64 4
+R 64 4
+R 20288 8
+R 20400 8
+R 64 8
+R 72 8
+R 20416 1
+R 20160 8
+R 20408 8
+R 2112 8
+R 88 8
+R 120 8
+R 184 8
+R 80 8
+R 192 8
+R 128 8
+R 576 8
+R 96 8
+R 4160 8
+R 66 2
+R 68 2
+R 152 2
+W 66 2
+W 66 2
+W 66 2
+W 66 2
+R 2 1
+R 21 1
+R 15 1
+R 2 1
+W 66 2
+W 66 2
+W 66 2
+R 470 2
+R 150 2
+R 154 2
+R 148 2
+W 470 2
+W 11330 2
+R 152 2
+W 66 2
+W 68 2
+W 148 8
+W 66 2
+W 66 2
+R 2 1
+R 15 1
+R 21 1
+R 2 1
+W 66 2
+W 66 2
+W 66 2
+W 66 2
+W 66 2
+W 66 2
+W 66 2
diff --git a/contrib/visualize-alignment/qemu-0.13-trace-block-device-access.patch b/contrib/visualize-alignment/qemu-0.13-trace-block-device-access.patch
new file mode 100644
index 0000000..96904b3
--- /dev/null
+++ b/contrib/visualize-alignment/qemu-0.13-trace-block-device-access.patch
@@ -0,0 +1,104 @@
+From e04ef476fd330485e5a88c7018d29c55cf411fe2 Mon Sep 17 00:00:00 2001
+From: Richard W.M. Jones <rjones at redhat.com>
+Date: Tue, 5 Oct 2010 09:54:10 +0100
+Subject: [PATCH] Trace reads and writes to qemu block devices.
+
+NB: This patch is not suitable for nor intended to go upstream in
+its current form.
+
+When qemu opens a block device, this patch creates a trace file
+in /tmp with a name related to the block device. Reads and writes
+to the device cause lines to be written to the trace file:
+
+ S <total_sectors>
+ W <sector> <nb_sectors>
+ R <sector> <nb_sectors>
+
+'S' is the summary line, printed first which just tells you how
+many sectors are on the device.
+
+'W' and 'R' are writes and reads, for the range <sector> through
+to <sector> + <nb_sectors> - 1.
+---
+ block.c | 29 +++++++++++++++++++++++++++++
+ block_int.h | 3 +++
+ 2 files changed, 32 insertions(+), 0 deletions(-)
+
+diff --git a/block.c b/block.c
+index ebbc376..26ead5b 100644
+--- a/block.c
++++ b/block.c
+@@ -474,6 +474,23 @@ static int bdrv_open_common(BlockDriverState *bs, const char *filename,
+ goto free_and_fail;
+ }
+
++ /* Open trace file in /tmp based on filename. XXX */
++ size_t len = strlen (filename);
++ char *trace_file = qemu_malloc (10 + len);
++ snprintf (trace_file, 10 + len, "/tmp/%s.qtr", filename);
++ size_t i;
++ for (i = 5; i < 5 + len; ++i) {
++ if (trace_file[i] == '/')
++ trace_file[i] = '_';
++ }
++ bs->trace_fp = fopen (trace_file, "w");
++ if (bs->trace_fp) {
++ setlinebuf (bs->trace_fp);
++ fprintf (bs->trace_fp, "S %" PRIi64 "\n", bs->total_sectors);
++ } else {
++ perror (trace_file);
++ }
++
+ #ifndef _WIN32
+ if (bs->is_temporary) {
+ unlink(filename);
+@@ -665,6 +682,10 @@ void bdrv_close(BlockDriverState *bs)
+ bdrv_close(bs->file);
+ }
+
++ if (bs->trace_fp)
++ fclose (bs->trace_fp);
++ bs->trace_fp = NULL;
++
+ /* call the change callback */
+ bs->media_changed = 1;
+ if (bs->change_cb)
+@@ -1995,6 +2016,10 @@ BlockDriverAIOCB *bdrv_aio_readv(BlockDriverState *bs, int64_t sector_num,
+ /* Update stats even though technically transfer has not happened. */
+ bs->rd_bytes += (unsigned) nb_sectors * BDRV_SECTOR_SIZE;
+ bs->rd_ops ++;
++
++ if (bs->trace_fp)
++ fprintf (bs->trace_fp,
++ "R %" PRIi64 " %d\n", sector_num, nb_sectors);
+ }
+
+ return ret;
+@@ -2028,6 +2053,10 @@ BlockDriverAIOCB *bdrv_aio_writev(BlockDriverState *bs, int64_t sector_num,
+ if (bs->wr_highest_sector < sector_num + nb_sectors - 1) {
+ bs->wr_highest_sector = sector_num + nb_sectors - 1;
+ }
++
++ if (bs->trace_fp)
++ fprintf (bs->trace_fp,
++ "W %" PRIi64 " %d\n", sector_num, nb_sectors);
+ }
+
+ return ret;
+diff --git a/block_int.h b/block_int.h
+index e8e7156..03e7c9b 100644
+--- a/block_int.h
++++ b/block_int.h
+@@ -178,6 +178,9 @@ struct BlockDriverState {
+ uint64_t wr_ops;
+ uint64_t wr_highest_sector;
+
++ /* Trace to file. */
++ FILE *trace_fp;
++
+ /* Whether the disk can expand beyond total_sectors */
+ int growable;
+
+--
+1.7.3.1
+
diff --git a/contrib/visualize-alignment/tracetops.ml b/contrib/visualize-alignment/tracetops.ml
new file mode 100755
index 0000000..3ea2327
--- /dev/null
+++ b/contrib/visualize-alignment/tracetops.ml
@@ -0,0 +1,423 @@
+#!/usr/bin/ocamlrun /usr/bin/ocaml
+
+(* Convert *.qtr (qemu block device trace) to Postscript.
+ * Copyright (C) 2009-2010 Red Hat Inc.
+ * By Richard W.M. Jones <rjones at redhat.com>.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *)
+
+(* Note that we use ordinary OCaml ints, which means this program is
+ * limited to: ~1TB disks for 32 bit machines, or effectively unlimited
+ * for 64 bit machines. Also we make several 512 byte sector
+ * assumptions.
+ *)
+
+#use "topfind";;
+#require "extlib";;
+
+open ExtList
+open Scanf
+open Printf
+
+type op = Read | Write
+
+(* If 'true' then print debug messages. *)
+let debug = true
+
+(* Width of each row (in sectors) in the output. *)
+let row_size = 64
+
+(* Desirable alignment (sectors). *)
+let alignment = 8
+
+(* Height (in 1/72 inch) of the final image. *)
+let height = 6.*.72.
+
+(* Width (in 1/72 inch) of the final image. *)
+let width = 6.*.72.
+
+(* Reserve at left for the sector number (comes out of width). *)
+let sn_width = 36.
+
+let input =
+ if Array.length Sys.argv = 2 then
+ Sys.argv.(1)
+ else
+ failwith "usage: tracetops filename.qtr"
+
+(* Read the input file. *)
+let nb_sectors, accesses =
+ let chan = open_in input in
+ let nb_sectors =
+ let summary = input_line chan in
+ if String.length summary < 1 || summary.[0] <> 'S' then
+ failwith (sprintf "%s: input is not a qemu block device trace file"
+ input);
+ sscanf summary "S %d" (fun x -> x) in
+
+ if nb_sectors mod row_size <> 0 then
+ failwith (sprintf "input nb_sectors (%d) not divisible by row size (%d)"
+ nb_sectors row_size);
+
+ (* Read the reads and writes from the remainder of the file. *)
+ let accesses = ref [] in
+ let rec loop () =
+ let line = input_line chan in
+ let rw, s, n = sscanf line "%c %d %d" (fun rw s n -> (rw, s, n)) in
+ let rw =
+ match rw with
+ | 'R' -> Read | 'W' -> Write
+ | c -> failwith
+ (sprintf "%s: error reading input: got '%c', expecting 'R' or 'W'"
+ input c) in
+ if n < 0 || s < 0 || s+n > nb_sectors then
+ failwith (sprintf "%s: s (%d), n (%d) out of range" input s n);
+ let aligned = s mod alignment = 0 && n mod alignment = 0 in
+ accesses := (rw, aligned, s, n) :: !accesses;
+ loop ()
+ in
+ (try loop () with
+ | End_of_file -> ()
+ | Scan_failure msg ->
+ failwith (sprintf "%s: error reading input: %s" input msg)
+ );
+ close_in chan;
+
+ let accesses = List.rev !accesses in
+
+ if debug then (
+ eprintf "%s: nb_sectors = %d, accesses = %d\n"
+ input nb_sectors (List.length accesses)
+ );
+
+ nb_sectors, accesses
+
+(* If the accesses list contains any qtrace on/off patterns (in
+ * guestfish: debug "qtrace /dev/vda (on|off)") then filter out the
+ * things we want to display. Otherwise leave the whole trace.
+ *)
+let accesses =
+ let contains_qtrace_patterns =
+ let rec loop = function
+ | [] -> false
+ | (Read, _, 2, 1) :: (Read, _, 21, 1) :: (Read, _, 15, 1) ::
+ (Read, _, 2, 1) :: _ -> true
+ | (Read, _, 2, 1) :: (Read, _, 15, 1) :: (Read, _, 21, 1) ::
+ (Read, _, 2, 1) :: _ -> true
+ | _ :: rest -> loop rest
+ in
+ loop accesses in
+
+ if contains_qtrace_patterns then (
+ if debug then eprintf "%s: contains qtrace on/off patterns\n%!" input;
+
+ let rec find_qtrace_on = function
+ | [] -> []
+ | (Read, _, 2, 1) :: (Read, _, 21, 1) :: (Read, _, 15, 1) ::
+ (Read, _, 2, 1) :: rest -> rest
+ | (Read, _, 2, 1) :: (Read, _, 15, 1) :: (Read, _, 21, 1) ::
+ (Read, _, 2, 1) :: rest ->
+ eprintf "ignored 'qtrace off' pattern when expecting 'qtrace on'\n";
+ find_qtrace_on rest
+ | _ :: rest -> find_qtrace_on rest
+ and split_until_qtrace_off = function
+ | [] -> [], []
+ | (Read, _, 2, 1) :: (Read, _, 15, 1) :: (Read, _, 21, 1) ::
+ (Read, _, 2, 1) :: rest -> [], rest
+ | (Read, _, 2, 1) :: (Read, _, 21, 1) :: (Read, _, 15, 1) ::
+ (Read, _, 2, 1) :: rest ->
+ eprintf "found 'qtrace on' pattern when expecting 'qtrace off'\n";
+ split_until_qtrace_off rest
+ | x :: ys ->
+ let xs, ys = split_until_qtrace_off ys in
+ x :: xs, ys
+ and filter_accesses xs =
+ let xs = find_qtrace_on xs in
+ if xs <> [] then (
+ let xs, ys = split_until_qtrace_off xs in
+ let ys = filter_accesses ys in
+ xs @ ys
+ ) else
+ []
+ in
+ filter_accesses accesses
+ ) else
+ accesses
+
+let ranges =
+ (* Given the number of sectors, make the row array. *)
+ let nr_rows = nb_sectors / row_size in
+ let rows = Array.make nr_rows false in
+
+ List.iter (
+ fun (_, _, s, n) ->
+ let i0 = s / row_size in
+ let i1 = (s+n-1) / row_size in
+ for i = i0 to i1 do rows.(i) <- true done;
+ ) accesses;
+
+ (* Coalesce rows into a list of ranges of rows we will draw. *)
+ let rows = Array.to_list rows in
+ let rows = List.mapi (fun i v -> (v, i)) rows in
+ let ranges =
+ (* When called, we are in the middle of a range which started at i0. *)
+ let rec loop i0 = function
+ | (false, _) :: (false, _) :: (true, i1) :: []
+ | _ :: (_, i1) :: []
+ | (_, i1) :: [] ->
+ [i0, i1]
+ | (false, _) :: (false, _) :: (true, _) :: rest
+ | (false, _) :: (true, _) :: rest
+ | (true, _) :: rest ->
+ loop i0 rest
+ | (false, i1) :: rest ->
+ let i1 = i1 - 1 in
+ let rest = List.dropwhile (function (v, _) -> not v) rest in
+ (match rest with
+ | [] -> [i0, i1]
+ | (_, i2) :: rest -> (i0, i1) :: loop i2 rest)
+ | [] -> assert false
+ in
+ loop 0 (List.tl rows) in
+
+ if debug then (
+ eprintf "%s: rows = %d (ranges = %d)\n" input nr_rows (List.length ranges);
+ List.iter (
+ fun (i0, i1) ->
+ eprintf " %d - %d (rows %d - %d)\n"
+ (i0 * row_size) ((i1 + 1) * row_size - 1) i0 i1
+ ) ranges
+ );
+
+ ranges
+
+(* Locate where we will draw the rows and cells in the final image. *)
+let iter_rows, mapxy, row_height, cell_width =
+ let nr_ranges = List.length ranges in
+ let nr_breaks = nr_ranges - 1 in
+ let nr_rows =
+ List.fold_left (+) 0 (List.map (fun (i0,i1) -> i1-i0+1) ranges) in
+ let nr_rnb = nr_rows + nr_breaks in
+ let row_height = height /. float nr_rnb in
+ let cell_width = (width -. sn_width) /. float row_size in
+
+ if debug then (
+ eprintf "number of rows and breaks = %d\n" nr_rnb;
+ eprintf "row_height x cell_width = %g x %g\n" row_height cell_width
+ );
+
+ (* Create a higher-order function to iterate over the rows. *)
+ let rec iter_rows f =
+ let rec loop row = function
+ | [] -> ()
+ | (i0,i1) :: rows ->
+ for i = i0 to i1 do
+ let y = float (row+i-i0) *. row_height in
+ f y (Some i)
+ done;
+ (* Call an extra time for the break. *)
+ let y = float (row+i1-i0+1) *. row_height in
+ if rows <> [] then f y None;
+ (* extra +1 here is to skip the break *)
+ loop (row+i1-i0+1+1) rows
+ in
+ loop 0 ranges
+ in
+
+ (* Create a hash which maps from the row number to the position
+ * where we draw the row. If the row is not drawn, the hash value
+ * is missing.
+ *)
+ let row_y = Hashtbl.create nr_rows in
+ iter_rows (
+ fun y ->
+ function
+ | Some i -> Hashtbl.replace row_y i y
+ | None -> ()
+ );
+
+ (* Create a function which maps from the sector number to the final
+ * position that we will draw it.
+ *)
+ let mapxy s =
+ let r = s / row_size in
+ let y = try Hashtbl.find row_y r with Not_found -> assert false in
+ let x = sn_width +. cell_width *. float (s mod row_size) in
+ x, y
+ in
+
+ iter_rows, mapxy, row_height, cell_width
+
+(* Start the PostScript file. *)
+let () =
+ printf "%%!PS-Adobe-3.0 EPSF-3.0\n";
+ printf "%%%%BoundingBox: -10 -10 %g %g\n"
+ (width +. 10.) (height +. row_height +. 20.);
+ printf "%%%%Creator: tracetops.ml (part of libguestfs)\n";
+ printf "%%%%Title: %s\n" input;
+ printf "%%%%LanguageLevel: 2\n";
+ printf "%%%%Pages: 1\n";
+ printf "%%%%Page: 1 1\n";
+ printf "\n";
+
+ printf "/min { 2 copy gt { exch } if pop } def\n";
+ printf "/max { 2 copy lt { exch } if pop } def\n";
+
+ (* Function for drawing cells. *)
+ printf "/cell {\n";
+ printf " newpath\n";
+ printf " moveto\n";
+ printf " %g 0 rlineto\n" cell_width;
+ printf " 0 %g rlineto\n" row_height;
+ printf " -%g 0 rlineto\n" cell_width;
+ printf " closepath\n";
+ printf " gsave fill grestore 0.75 setgray stroke\n";
+ printf "} def\n";
+
+ (* Define colours for different cell types. *)
+ printf "/unalignedread { 0.95 0.95 0 setrgbcolor } def\n";
+ printf "/unalignedwrite { 0.95 0 0 setrgbcolor } def\n";
+ printf "/alignedread { 0 0.95 0 setrgbcolor } def\n";
+ printf "/alignedwrite { 0 0 0.95 setrgbcolor } def\n";
+
+ (* Get width of text. *)
+ printf "/textwidth { stringwidth pop } def\n";
+
+ (* Draw the outline. *)
+ printf "/outline {\n";
+ printf " newpath\n";
+ printf " %g 0 moveto\n" sn_width;
+ printf " %g 0 lineto\n" width;
+ printf " %g %g lineto\n" width height;
+ printf " %g %g lineto\n" sn_width height;
+ printf " closepath\n";
+ printf " 0.5 setlinewidth 0.3 setgray stroke\n";
+ printf "} def\n";
+
+ (* Draw the outline breaks. *)
+ printf "/breaks {\n";
+ iter_rows (
+ fun y ->
+ function
+ | Some _ -> ()
+ | None ->
+ let f xmin xmax =
+ let yll = y +. row_height /. 3. -. 2. in
+ let ylr = y +. row_height /. 2. -. 2. in
+ let yur = y +. 2. *. row_height /. 3. in
+ let yul = y +. row_height /. 2. in
+ printf " newpath\n";
+ printf " %g %g moveto\n" xmin yll;
+ printf " %g %g lineto\n" xmax ylr;
+ printf " %g %g lineto\n" xmax yur;
+ printf " %g %g lineto\n" xmin yul;
+ printf " closepath\n";
+ printf " 1 setgray fill\n";
+ printf " newpath\n";
+ printf " %g %g moveto\n" xmin yll;
+ printf " %g %g lineto\n" xmax ylr;
+ printf " %g %g moveto\n" xmax yur;
+ printf " %g %g lineto\n" xmin yul;
+ printf " closepath\n";
+ printf " 0.5 setlinewidth 0.3 setgray stroke\n"
+ in
+ f (sn_width -. 6.) (sn_width +. 6.);
+ f (width -. 6.) (width +. 6.)
+ );
+ printf "} def\n";
+
+ (* Draw the labels. *)
+ printf "/labels {\n";
+ printf " /Courier findfont\n";
+ printf " 0.75 %g mul 10 min scalefont\n" row_height;
+ printf " setfont\n";
+ iter_rows (
+ fun y ->
+ function
+ | Some i ->
+ let sector = i * row_size in
+ printf " newpath\n";
+ printf " /s { (%d) } def\n" sector;
+ printf " %g s textwidth sub 4 sub %g moveto\n" sn_width (y +. 2.);
+ printf " s show\n"
+ | None -> ()
+ );
+ printf "} def\n";
+
+ (* Print the key. *)
+ printf "/key {\n";
+ printf " /Times-Roman findfont\n";
+ printf " 10. scalefont\n";
+ printf " setfont\n";
+ let x = sn_width and y = height +. 10. in
+ printf " unalignedwrite %g %g cell\n" x y;
+ let x = x +. cell_width +. 4. in
+ printf " newpath %g %g moveto (unaligned write) 0.3 setgray show\n" x y;
+ let x = x +. 72. in
+ printf " unalignedread %g %g cell\n" x y;
+ let x = x +. cell_width +. 4. in
+ printf " newpath %g %g moveto (unaligned read) 0.3 setgray show\n" x y;
+ let x = x +. 72. in
+ printf " alignedwrite %g %g cell\n" x y;
+ let x = x +. cell_width +. 4. in
+ printf " newpath %g %g moveto (aligned write) 0.3 setgray show\n" x y;
+ let x = x +. 72. in
+ printf " alignedread %g %g cell\n" x y;
+ let x = x +. cell_width +. 4. in
+ printf " newpath %g %g moveto (aligned read) 0.3 setgray show\n" x y;
+ printf "} def\n";
+
+ printf "\n"
+
+(* Draw the accesses. *)
+let () =
+ (* Sort the accesses so unaligned ones are displayed at the end (on
+ * top of aligned ones) and writes on top of reads. This isn't
+ * really perfect, but it'll do.
+ *)
+ let cmp (rw, aligned, s, n) (rw', aligned', s', n') =
+ let r = compare rw rw' (* Write later *) in
+ if r <> 0 then r else (
+ let r = compare aligned' aligned (* unaligned later *) in
+ if r <> 0 then r else
+ compare (n, s) (n', s')
+ )
+ in
+ let accesses = List.sort ~cmp accesses in
+
+ List.iter (
+ fun op ->
+ let col, s, n =
+ match op with
+ | Read, false, s, n ->
+ "unalignedread", s, n
+ | Write, false, s, n ->
+ "unalignedwrite", s, n
+ | Read, true, s, n ->
+ "alignedread", s, n
+ | Write, true, s, n ->
+ "alignedwrite", s, n in
+ for i = s to s+n-1 do
+ let x, y = mapxy i in
+ printf "%s %g %g cell\n" col x y
+ done;
+ printf "\n"
+ ) accesses
+
+(* Finish off the PostScript output. *)
+let () =
+ printf "outline breaks labels key\n";
+ printf "%%%%EOF\n"
diff --git a/daemon/debug.c b/daemon/debug.c
index 2ba48a7..6b9d756 100644
--- a/daemon/debug.c
+++ b/daemon/debug.c
@@ -92,7 +92,7 @@ do_debug (const char *subcmd, char *const *argv)
return cmds[i].f (subcmd, argc, argv);
}
- reply_with_error ("use 'debug help' to list the supported commands");
+ reply_with_error ("use 'debug help 0' to list the supported commands");
return NULL;
}
diff --git a/debian/changelog b/debian/changelog
index 4a4764d..b0aa845 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,6 @@
-libguestfs (1.15.0-1) unstable; urgency=low
+libguestfs (1.15.1-1) unstable; urgency=low
- * release: New upstream version 1.15.0.
+ * release: New upstream version 1.15.1.
-- Richard W.M. Jones <rjones at redhat.com> Thu, 9 Dec 2010 12:00:00 +0000
diff --git a/fish/inspect.c b/fish/inspect.c
index 2ca54d2..0b82ade 100644
--- a/fish/inspect.c
+++ b/fish/inspect.c
@@ -43,14 +43,14 @@ free_strings (char **argv)
free (argv);
}
-static int
+static size_t
count_strings (char *const *argv)
{
- int c;
+ size_t i;
- for (c = 0; argv[c]; ++c)
+ for (i = 0; argv[i]; ++i)
;
- return c;
+ return i;
}
static int
diff --git a/generator/generator_perl.ml b/generator/generator_perl.ml
index d24e775..c9ec4fb 100644
--- a/generator/generator_perl.ml
+++ b/generator/generator_perl.ml
@@ -810,10 +810,71 @@ handlers and threads.
)
) all_functions_sorted;
+ pr "=cut\n\n";
+
+ (* Introspection hash. *)
+ pr "use vars qw(%%guestfs_introspection);\n";
+ pr "%%guestfs_introspection = (\n";
+ List.iter (
+ fun (name, (ret, args, optargs), _, _, _, shortdesc, _) ->
+ pr " \"%s\" => {\n" name;
+ pr " ret => ";
+ (match ret with
+ | RErr -> pr "'void'"
+ | RInt _ -> pr "'int'"
+ | RBool _ -> pr "'bool'"
+ | RInt64 _ -> pr "'int64'"
+ | RConstString _ -> pr "'const string'"
+ | RConstOptString _ -> pr "'const nullable string'"
+ | RString _ -> pr "'string'"
+ | RStringList _ -> pr "'string list'"
+ | RHashtable _ -> pr "'hash'"
+ | RStruct (_, typ) -> pr "'struct %s'" typ
+ | RStructList (_, typ) -> pr "'struct %s list'" typ
+ | RBufferOut _ -> pr "'buffer'"
+ );
+ pr ",\n";
+ let pr_type i = function
+ | Pathname n -> pr "[ '%s', 'string(path)', %d ]" n i
+ | Device n -> pr "[ '%s', 'string(device)', %d ]" n i
+ | Dev_or_Path n -> pr "[ '%s', 'string(dev_or_path)', %d ]" n i
+ | String n -> pr "[ '%s', 'string', %d ]" n i
+ | FileIn n -> pr "[ '%s', 'string(filename)', %d ]" n i
+ | FileOut n -> pr "[ '%s', 'string(filename)', %d ]" n i
+ | Key n -> pr "[ '%s', 'string(key)', %d ]" n i
+ | BufferIn n -> pr "[ '%s', 'buffer', %d ]" n i
+ | OptString n -> pr "[ '%s', 'nullable string', %d ]" n i
+ | StringList n -> pr "[ '%s', 'string list', %d ]" n i
+ | DeviceList n -> pr "[ '%s', 'string(device) list', %d ]" n i
+ | Bool n -> pr "[ '%s', 'bool', %d ]" n i
+ | Int n -> pr "[ '%s', 'int', %d ]" n i
+ | Int64 n -> pr "[ '%s', 'int64', %d ]" n i
+ | Pointer (t, n) -> pr "[ '%s', 'pointer(%s)', %d ]" n t i
+ in
+ pr " args => [\n";
+ iteri (fun i arg ->
+ pr " ";
+ pr_type i arg;
+ pr ",\n"
+ ) args;
+ pr " ],\n";
+ if optargs <> [] then (
+ pr " optargs => {\n";
+ iteri (fun i arg ->
+ pr " %s => " (name_of_argt arg);
+ pr_type i arg;
+ pr ",\n"
+ ) optargs;
+ pr " },\n";
+ );
+ pr " name => \"%s\",\n" name;
+ pr " description => %S,\n" shortdesc;
+ pr " },\n";
+ ) all_functions_sorted;
+ pr ");\n\n";
+
(* End of file. *)
pr "\
-=cut
-
1;
=back
@@ -835,6 +896,33 @@ class, use the ordinary Perl UNIVERSAL method C<can(METHOD)>
print \"\\$h->set_verbose is available\\n\";
}
+Perl does not offer a way to list the arguments of a method, and
+from time to time we may add extra arguments to calls that take
+optional arguments. For this reason, we provide a global hash
+variable C<%%guestfs_introspection> which contains the arguments
+and their types for each libguestfs method. The keys of this
+hash are the method names, and the values are an hashref
+containing useful introspection information about the method
+(further fields may be added to this in future).
+
+ use Sys::Guestfs;
+ $Sys::Guestfs::guestfs_introspection{mkfs_opts}
+ => {
+ ret => 'void', # return type
+ args => [ # required arguments
+ [ 'fstype', 'string', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ ],
+ optargs => { # optional arguments
+ blocksize => [ 'blocksize', 'int', 0 ],
+ features => [ 'features', 'string', 1 ],
+ inode => [ 'inode', 'int', 2 ],
+ sectorsize => [ 'sectorsize', 'int', 3 ],
+ },
+ name => \"mkfs_opts\",
+ description => \"make a filesystem\",
+ }
+
To test if particular features are supported by the current
build, use the L</available> method like the example below. Note
that the appliance must be launched first.
diff --git a/libguestfs.pc b/libguestfs.pc
index f41128e..25c6c52 100644
--- a/libguestfs.pc
+++ b/libguestfs.pc
@@ -4,7 +4,7 @@ libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: libguestfs
-Version: 1.15.0
+Version: 1.15.1
Description: libguestfs library for accessing and modifying VM images
Requires:
Cflags:
diff --git a/perl/lib/Sys/Guestfs.pm b/perl/lib/Sys/Guestfs.pm
index fcb6a8e..8aa66e1 100644
--- a/perl/lib/Sys/Guestfs.pm
+++ b/perl/lib/Sys/Guestfs.pm
@@ -4843,6 +4843,3343 @@ of somewhere between 2MB and 4MB. See L<guestfs(3)/PROTOCOL LIMITS>.
=cut
+use vars qw(%guestfs_introspection);
+%guestfs_introspection = (
+ "add_cdrom" => {
+ ret => 'void',
+ args => [
+ [ 'filename', 'string', 0 ],
+ ],
+ name => "add_cdrom",
+ description => "add a CD-ROM disk image to examine",
+ },
+ "add_domain" => {
+ ret => 'int',
+ args => [
+ [ 'dom', 'string', 0 ],
+ ],
+ optargs => {
+ libvirturi => [ 'libvirturi', 'string', 0 ],
+ readonly => [ 'readonly', 'bool', 1 ],
+ iface => [ 'iface', 'string', 2 ],
+ live => [ 'live', 'bool', 3 ],
+ allowuuid => [ 'allowuuid', 'bool', 4 ],
+ readonlydisk => [ 'readonlydisk', 'string', 5 ],
+ },
+ name => "add_domain",
+ description => "add the disk(s) from a named libvirt domain",
+ },
+ "add_drive" => {
+ ret => 'void',
+ args => [
+ [ 'filename', 'string', 0 ],
+ ],
+ name => "add_drive",
+ description => "add an image to examine or modify",
+ },
+ "add_drive_opts" => {
+ ret => 'void',
+ args => [
+ [ 'filename', 'string', 0 ],
+ ],
+ optargs => {
+ readonly => [ 'readonly', 'bool', 0 ],
+ format => [ 'format', 'string', 1 ],
+ iface => [ 'iface', 'string', 2 ],
+ name => [ 'name', 'string', 3 ],
+ },
+ name => "add_drive_opts",
+ description => "add an image to examine or modify",
+ },
+ "add_drive_ro" => {
+ ret => 'void',
+ args => [
+ [ 'filename', 'string', 0 ],
+ ],
+ name => "add_drive_ro",
+ description => "add a drive in snapshot mode (read-only)",
+ },
+ "add_drive_ro_with_if" => {
+ ret => 'void',
+ args => [
+ [ 'filename', 'string', 0 ],
+ [ 'iface', 'string', 1 ],
+ ],
+ name => "add_drive_ro_with_if",
+ description => "add a drive read-only specifying the QEMU block emulation to use",
+ },
+ "add_drive_with_if" => {
+ ret => 'void',
+ args => [
+ [ 'filename', 'string', 0 ],
+ [ 'iface', 'string', 1 ],
+ ],
+ name => "add_drive_with_if",
+ description => "add a drive specifying the QEMU block emulation to use",
+ },
+ "aug_clear" => {
+ ret => 'void',
+ args => [
+ [ 'augpath', 'string', 0 ],
+ ],
+ name => "aug_clear",
+ description => "clear Augeas path",
+ },
+ "aug_close" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "aug_close",
+ description => "close the current Augeas handle",
+ },
+ "aug_defnode" => {
+ ret => 'struct int_bool',
+ args => [
+ [ 'name', 'string', 0 ],
+ [ 'expr', 'string', 1 ],
+ [ 'val', 'string', 2 ],
+ ],
+ name => "aug_defnode",
+ description => "define an Augeas node",
+ },
+ "aug_defvar" => {
+ ret => 'int',
+ args => [
+ [ 'name', 'string', 0 ],
+ [ 'expr', 'nullable string', 1 ],
+ ],
+ name => "aug_defvar",
+ description => "define an Augeas variable",
+ },
+ "aug_get" => {
+ ret => 'string',
+ args => [
+ [ 'augpath', 'string', 0 ],
+ ],
+ name => "aug_get",
+ description => "look up the value of an Augeas path",
+ },
+ "aug_init" => {
+ ret => 'void',
+ args => [
+ [ 'root', 'string(path)', 0 ],
+ [ 'flags', 'int', 1 ],
+ ],
+ name => "aug_init",
+ description => "create a new Augeas handle",
+ },
+ "aug_insert" => {
+ ret => 'void',
+ args => [
+ [ 'augpath', 'string', 0 ],
+ [ 'label', 'string', 1 ],
+ [ 'before', 'bool', 2 ],
+ ],
+ name => "aug_insert",
+ description => "insert a sibling Augeas node",
+ },
+ "aug_load" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "aug_load",
+ description => "load files into the tree",
+ },
+ "aug_ls" => {
+ ret => 'string list',
+ args => [
+ [ 'augpath', 'string', 0 ],
+ ],
+ name => "aug_ls",
+ description => "list Augeas nodes under augpath",
+ },
+ "aug_match" => {
+ ret => 'string list',
+ args => [
+ [ 'augpath', 'string', 0 ],
+ ],
+ name => "aug_match",
+ description => "return Augeas nodes which match augpath",
+ },
+ "aug_mv" => {
+ ret => 'void',
+ args => [
+ [ 'src', 'string', 0 ],
+ [ 'dest', 'string', 1 ],
+ ],
+ name => "aug_mv",
+ description => "move Augeas node",
+ },
+ "aug_rm" => {
+ ret => 'int',
+ args => [
+ [ 'augpath', 'string', 0 ],
+ ],
+ name => "aug_rm",
+ description => "remove an Augeas path",
+ },
+ "aug_save" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "aug_save",
+ description => "write all pending Augeas changes to disk",
+ },
+ "aug_set" => {
+ ret => 'void',
+ args => [
+ [ 'augpath', 'string', 0 ],
+ [ 'val', 'string', 1 ],
+ ],
+ name => "aug_set",
+ description => "set Augeas path to value",
+ },
+ "available" => {
+ ret => 'void',
+ args => [
+ [ 'groups', 'string list', 0 ],
+ ],
+ name => "available",
+ description => "test availability of some parts of the API",
+ },
+ "available_all_groups" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "available_all_groups",
+ description => "return a list of all optional groups",
+ },
+ "base64_in" => {
+ ret => 'void',
+ args => [
+ [ 'base64file', 'string(filename)', 0 ],
+ [ 'filename', 'string(path)', 1 ],
+ ],
+ name => "base64_in",
+ description => "upload base64-encoded data to file",
+ },
+ "base64_out" => {
+ ret => 'void',
+ args => [
+ [ 'filename', 'string(path)', 0 ],
+ [ 'base64file', 'string(filename)', 1 ],
+ ],
+ name => "base64_out",
+ description => "download file and encode as base64",
+ },
+ "blockdev_flushbufs" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "blockdev_flushbufs",
+ description => "flush device buffers",
+ },
+ "blockdev_getbsz" => {
+ ret => 'int',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "blockdev_getbsz",
+ description => "get blocksize of block device",
+ },
+ "blockdev_getro" => {
+ ret => 'bool',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "blockdev_getro",
+ description => "is block device set to read-only",
+ },
+ "blockdev_getsize64" => {
+ ret => 'int64',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "blockdev_getsize64",
+ description => "get total size of device in bytes",
+ },
+ "blockdev_getss" => {
+ ret => 'int',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "blockdev_getss",
+ description => "get sectorsize of block device",
+ },
+ "blockdev_getsz" => {
+ ret => 'int64',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "blockdev_getsz",
+ description => "get total size of device in 512-byte sectors",
+ },
+ "blockdev_rereadpt" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "blockdev_rereadpt",
+ description => "reread partition table",
+ },
+ "blockdev_setbsz" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'blocksize', 'int', 1 ],
+ ],
+ name => "blockdev_setbsz",
+ description => "set blocksize of block device",
+ },
+ "blockdev_setro" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "blockdev_setro",
+ description => "set block device to read-only",
+ },
+ "blockdev_setrw" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "blockdev_setrw",
+ description => "set block device to read-write",
+ },
+ "btrfs_filesystem_resize" => {
+ ret => 'void',
+ args => [
+ [ 'mountpoint', 'string(path)', 0 ],
+ ],
+ optargs => {
+ size => [ 'size', 'int64', 0 ],
+ },
+ name => "btrfs_filesystem_resize",
+ description => "resize a btrfs filesystem",
+ },
+ "case_sensitive_path" => {
+ ret => 'string',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "case_sensitive_path",
+ description => "return true path on case-insensitive filesystem",
+ },
+ "cat" => {
+ ret => 'string',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "cat",
+ description => "list the contents of a file",
+ },
+ "checksum" => {
+ ret => 'string',
+ args => [
+ [ 'csumtype', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "checksum",
+ description => "compute MD5, SHAx or CRC checksum of file",
+ },
+ "checksum_device" => {
+ ret => 'string',
+ args => [
+ [ 'csumtype', 'string', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ ],
+ name => "checksum_device",
+ description => "compute MD5, SHAx or CRC checksum of the contents of a device",
+ },
+ "checksums_out" => {
+ ret => 'void',
+ args => [
+ [ 'csumtype', 'string', 0 ],
+ [ 'directory', 'string(path)', 1 ],
+ [ 'sumsfile', 'string(filename)', 2 ],
+ ],
+ name => "checksums_out",
+ description => "compute MD5, SHAx or CRC checksum of files in a directory",
+ },
+ "chmod" => {
+ ret => 'void',
+ args => [
+ [ 'mode', 'int', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "chmod",
+ description => "change file mode",
+ },
+ "chown" => {
+ ret => 'void',
+ args => [
+ [ 'owner', 'int', 0 ],
+ [ 'group', 'int', 1 ],
+ [ 'path', 'string(path)', 2 ],
+ ],
+ name => "chown",
+ description => "change file owner and group",
+ },
+ "command" => {
+ ret => 'string',
+ args => [
+ [ 'arguments', 'string list', 0 ],
+ ],
+ name => "command",
+ description => "run a command from the guest filesystem",
+ },
+ "command_lines" => {
+ ret => 'string list',
+ args => [
+ [ 'arguments', 'string list', 0 ],
+ ],
+ name => "command_lines",
+ description => "run a command, returning lines",
+ },
+ "compress_device_out" => {
+ ret => 'void',
+ args => [
+ [ 'ctype', 'string', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ [ 'zdevice', 'string(filename)', 2 ],
+ ],
+ optargs => {
+ level => [ 'level', 'int', 0 ],
+ },
+ name => "compress_device_out",
+ description => "output compressed device",
+ },
+ "compress_out" => {
+ ret => 'void',
+ args => [
+ [ 'ctype', 'string', 0 ],
+ [ 'file', 'string(path)', 1 ],
+ [ 'zfile', 'string(filename)', 2 ],
+ ],
+ optargs => {
+ level => [ 'level', 'int', 0 ],
+ },
+ name => "compress_out",
+ description => "output compressed file",
+ },
+ "config" => {
+ ret => 'void',
+ args => [
+ [ 'qemuparam', 'string', 0 ],
+ [ 'qemuvalue', 'nullable string', 1 ],
+ ],
+ name => "config",
+ description => "add qemu parameters",
+ },
+ "copy_device_to_device" => {
+ ret => 'void',
+ args => [
+ [ 'src', 'string(device)', 0 ],
+ [ 'dest', 'string(device)', 1 ],
+ ],
+ optargs => {
+ srcoffset => [ 'srcoffset', 'int64', 0 ],
+ destoffset => [ 'destoffset', 'int64', 1 ],
+ size => [ 'size', 'int64', 2 ],
+ },
+ name => "copy_device_to_device",
+ description => "copy from source device to destination device",
+ },
+ "copy_device_to_file" => {
+ ret => 'void',
+ args => [
+ [ 'src', 'string(device)', 0 ],
+ [ 'dest', 'string(path)', 1 ],
+ ],
+ optargs => {
+ srcoffset => [ 'srcoffset', 'int64', 0 ],
+ destoffset => [ 'destoffset', 'int64', 1 ],
+ size => [ 'size', 'int64', 2 ],
+ },
+ name => "copy_device_to_file",
+ description => "copy from source device to destination file",
+ },
+ "copy_file_to_device" => {
+ ret => 'void',
+ args => [
+ [ 'src', 'string(path)', 0 ],
+ [ 'dest', 'string(device)', 1 ],
+ ],
+ optargs => {
+ srcoffset => [ 'srcoffset', 'int64', 0 ],
+ destoffset => [ 'destoffset', 'int64', 1 ],
+ size => [ 'size', 'int64', 2 ],
+ },
+ name => "copy_file_to_device",
+ description => "copy from source file to destination device",
+ },
+ "copy_file_to_file" => {
+ ret => 'void',
+ args => [
+ [ 'src', 'string(path)', 0 ],
+ [ 'dest', 'string(path)', 1 ],
+ ],
+ optargs => {
+ srcoffset => [ 'srcoffset', 'int64', 0 ],
+ destoffset => [ 'destoffset', 'int64', 1 ],
+ size => [ 'size', 'int64', 2 ],
+ },
+ name => "copy_file_to_file",
+ description => "copy from source file to destination file",
+ },
+ "copy_size" => {
+ ret => 'void',
+ args => [
+ [ 'src', 'string(dev_or_path)', 0 ],
+ [ 'dest', 'string(dev_or_path)', 1 ],
+ [ 'size', 'int64', 2 ],
+ ],
+ name => "copy_size",
+ description => "copy size bytes from source to destination using dd",
+ },
+ "cp" => {
+ ret => 'void',
+ args => [
+ [ 'src', 'string(path)', 0 ],
+ [ 'dest', 'string(path)', 1 ],
+ ],
+ name => "cp",
+ description => "copy a file",
+ },
+ "cp_a" => {
+ ret => 'void',
+ args => [
+ [ 'src', 'string(path)', 0 ],
+ [ 'dest', 'string(path)', 1 ],
+ ],
+ name => "cp_a",
+ description => "copy a file or directory recursively",
+ },
+ "dd" => {
+ ret => 'void',
+ args => [
+ [ 'src', 'string(dev_or_path)', 0 ],
+ [ 'dest', 'string(dev_or_path)', 1 ],
+ ],
+ name => "dd",
+ description => "copy from source to destination using dd",
+ },
+ "debug" => {
+ ret => 'string',
+ args => [
+ [ 'subcmd', 'string', 0 ],
+ [ 'extraargs', 'string list', 1 ],
+ ],
+ name => "debug",
+ description => "debugging and internals",
+ },
+ "debug_cmdline" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "debug_cmdline",
+ description => "debug the QEMU command line (internal use only)",
+ },
+ "debug_drives" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "debug_drives",
+ description => "debug the drives (internal use only)",
+ },
+ "debug_upload" => {
+ ret => 'void',
+ args => [
+ [ 'filename', 'string(filename)', 0 ],
+ [ 'tmpname', 'string', 1 ],
+ [ 'mode', 'int', 2 ],
+ ],
+ name => "debug_upload",
+ description => "upload a file to the appliance (internal use only)",
+ },
+ "df" => {
+ ret => 'string',
+ args => [
+ ],
+ name => "df",
+ description => "report file system disk space usage",
+ },
+ "df_h" => {
+ ret => 'string',
+ args => [
+ ],
+ name => "df_h",
+ description => "report file system disk space usage (human readable)",
+ },
+ "dmesg" => {
+ ret => 'string',
+ args => [
+ ],
+ name => "dmesg",
+ description => "return kernel messages",
+ },
+ "download" => {
+ ret => 'void',
+ args => [
+ [ 'remotefilename', 'string(dev_or_path)', 0 ],
+ [ 'filename', 'string(filename)', 1 ],
+ ],
+ name => "download",
+ description => "download a file to the local machine",
+ },
+ "download_offset" => {
+ ret => 'void',
+ args => [
+ [ 'remotefilename', 'string(dev_or_path)', 0 ],
+ [ 'filename', 'string(filename)', 1 ],
+ [ 'offset', 'int64', 2 ],
+ [ 'size', 'int64', 3 ],
+ ],
+ name => "download_offset",
+ description => "download a file to the local machine with offset and size",
+ },
+ "drop_caches" => {
+ ret => 'void',
+ args => [
+ [ 'whattodrop', 'int', 0 ],
+ ],
+ name => "drop_caches",
+ description => "drop kernel page cache, dentries and inodes",
+ },
+ "du" => {
+ ret => 'int64',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "du",
+ description => "estimate file space usage",
+ },
+ "e2fsck_f" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "e2fsck_f",
+ description => "check an ext2/ext3 filesystem",
+ },
+ "echo_daemon" => {
+ ret => 'string',
+ args => [
+ [ 'words', 'string list', 0 ],
+ ],
+ name => "echo_daemon",
+ description => "echo arguments back to the client",
+ },
+ "egrep" => {
+ ret => 'string list',
+ args => [
+ [ 'regex', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "egrep",
+ description => "return lines matching a pattern",
+ },
+ "egrepi" => {
+ ret => 'string list',
+ args => [
+ [ 'regex', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "egrepi",
+ description => "return lines matching a pattern",
+ },
+ "equal" => {
+ ret => 'bool',
+ args => [
+ [ 'file1', 'string(path)', 0 ],
+ [ 'file2', 'string(path)', 1 ],
+ ],
+ name => "equal",
+ description => "test if two files have equal contents",
+ },
+ "exists" => {
+ ret => 'bool',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "exists",
+ description => "test if file or directory exists",
+ },
+ "fallocate" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'len', 'int', 1 ],
+ ],
+ name => "fallocate",
+ description => "preallocate a file in the guest filesystem",
+ },
+ "fallocate64" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'len', 'int64', 1 ],
+ ],
+ name => "fallocate64",
+ description => "preallocate a file in the guest filesystem",
+ },
+ "fgrep" => {
+ ret => 'string list',
+ args => [
+ [ 'pattern', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "fgrep",
+ description => "return lines matching a pattern",
+ },
+ "fgrepi" => {
+ ret => 'string list',
+ args => [
+ [ 'pattern', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "fgrepi",
+ description => "return lines matching a pattern",
+ },
+ "file" => {
+ ret => 'string',
+ args => [
+ [ 'path', 'string(dev_or_path)', 0 ],
+ ],
+ name => "file",
+ description => "determine file type",
+ },
+ "file_architecture" => {
+ ret => 'string',
+ args => [
+ [ 'filename', 'string(path)', 0 ],
+ ],
+ name => "file_architecture",
+ description => "detect the architecture of a binary file",
+ },
+ "filesize" => {
+ ret => 'int64',
+ args => [
+ [ 'file', 'string(path)', 0 ],
+ ],
+ name => "filesize",
+ description => "return the size of the file in bytes",
+ },
+ "fill" => {
+ ret => 'void',
+ args => [
+ [ 'c', 'int', 0 ],
+ [ 'len', 'int', 1 ],
+ [ 'path', 'string(path)', 2 ],
+ ],
+ name => "fill",
+ description => "fill a file with octets",
+ },
+ "fill_pattern" => {
+ ret => 'void',
+ args => [
+ [ 'pattern', 'string', 0 ],
+ [ 'len', 'int', 1 ],
+ [ 'path', 'string(path)', 2 ],
+ ],
+ name => "fill_pattern",
+ description => "fill a file with a repeating pattern of bytes",
+ },
+ "find" => {
+ ret => 'string list',
+ args => [
+ [ 'directory', 'string(path)', 0 ],
+ ],
+ name => "find",
+ description => "find all files and directories",
+ },
+ "find0" => {
+ ret => 'void',
+ args => [
+ [ 'directory', 'string(path)', 0 ],
+ [ 'files', 'string(filename)', 1 ],
+ ],
+ name => "find0",
+ description => "find all files and directories, returning NUL-separated list",
+ },
+ "findfs_label" => {
+ ret => 'string',
+ args => [
+ [ 'label', 'string', 0 ],
+ ],
+ name => "findfs_label",
+ description => "find a filesystem by label",
+ },
+ "findfs_uuid" => {
+ ret => 'string',
+ args => [
+ [ 'uuid', 'string', 0 ],
+ ],
+ name => "findfs_uuid",
+ description => "find a filesystem by UUID",
+ },
+ "fsck" => {
+ ret => 'int',
+ args => [
+ [ 'fstype', 'string', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ ],
+ name => "fsck",
+ description => "run the filesystem checker",
+ },
+ "get_append" => {
+ ret => 'const nullable string',
+ args => [
+ ],
+ name => "get_append",
+ description => "get the additional kernel options",
+ },
+ "get_attach_method" => {
+ ret => 'string',
+ args => [
+ ],
+ name => "get_attach_method",
+ description => "get the attach method",
+ },
+ "get_autosync" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "get_autosync",
+ description => "get autosync mode",
+ },
+ "get_direct" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "get_direct",
+ description => "get direct appliance mode flag",
+ },
+ "get_e2label" => {
+ ret => 'string',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "get_e2label",
+ description => "get the ext2/3/4 filesystem label",
+ },
+ "get_e2uuid" => {
+ ret => 'string',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "get_e2uuid",
+ description => "get the ext2/3/4 filesystem UUID",
+ },
+ "get_memsize" => {
+ ret => 'int',
+ args => [
+ ],
+ name => "get_memsize",
+ description => "get memory allocated to the qemu subprocess",
+ },
+ "get_network" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "get_network",
+ description => "get enable network flag",
+ },
+ "get_path" => {
+ ret => 'const string',
+ args => [
+ ],
+ name => "get_path",
+ description => "get the search path",
+ },
+ "get_pgroup" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "get_pgroup",
+ description => "get process group flag",
+ },
+ "get_pid" => {
+ ret => 'int',
+ args => [
+ ],
+ name => "get_pid",
+ description => "get PID of qemu subprocess",
+ },
+ "get_qemu" => {
+ ret => 'const string',
+ args => [
+ ],
+ name => "get_qemu",
+ description => "get the qemu binary",
+ },
+ "get_recovery_proc" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "get_recovery_proc",
+ description => "get recovery process enabled flag",
+ },
+ "get_selinux" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "get_selinux",
+ description => "get SELinux enabled flag",
+ },
+ "get_smp" => {
+ ret => 'int',
+ args => [
+ ],
+ name => "get_smp",
+ description => "get number of virtual CPUs in appliance",
+ },
+ "get_state" => {
+ ret => 'int',
+ args => [
+ ],
+ name => "get_state",
+ description => "get the current state",
+ },
+ "get_trace" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "get_trace",
+ description => "get command trace enabled flag",
+ },
+ "get_umask" => {
+ ret => 'int',
+ args => [
+ ],
+ name => "get_umask",
+ description => "get the current umask",
+ },
+ "get_verbose" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "get_verbose",
+ description => "get verbose mode",
+ },
+ "getcon" => {
+ ret => 'string',
+ args => [
+ ],
+ name => "getcon",
+ description => "get SELinux security context",
+ },
+ "getxattr" => {
+ ret => 'buffer',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'name', 'string', 1 ],
+ ],
+ name => "getxattr",
+ description => "get a single extended attribute",
+ },
+ "getxattrs" => {
+ ret => 'struct xattr list',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "getxattrs",
+ description => "list extended attributes of a file or directory",
+ },
+ "glob_expand" => {
+ ret => 'string list',
+ args => [
+ [ 'pattern', 'string(path)', 0 ],
+ ],
+ name => "glob_expand",
+ description => "expand a wildcard path",
+ },
+ "grep" => {
+ ret => 'string list',
+ args => [
+ [ 'regex', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "grep",
+ description => "return lines matching a pattern",
+ },
+ "grepi" => {
+ ret => 'string list',
+ args => [
+ [ 'regex', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "grepi",
+ description => "return lines matching a pattern",
+ },
+ "grub_install" => {
+ ret => 'void',
+ args => [
+ [ 'root', 'string(path)', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ ],
+ name => "grub_install",
+ description => "install GRUB 1",
+ },
+ "head" => {
+ ret => 'string list',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "head",
+ description => "return first 10 lines of a file",
+ },
+ "head_n" => {
+ ret => 'string list',
+ args => [
+ [ 'nrlines', 'int', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "head_n",
+ description => "return first N lines of a file",
+ },
+ "hexdump" => {
+ ret => 'string',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "hexdump",
+ description => "dump a file in hexadecimal",
+ },
+ "initrd_cat" => {
+ ret => 'buffer',
+ args => [
+ [ 'initrdpath', 'string(path)', 0 ],
+ [ 'filename', 'string', 1 ],
+ ],
+ name => "initrd_cat",
+ description => "list the contents of a single file in an initrd",
+ },
+ "initrd_list" => {
+ ret => 'string list',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "initrd_list",
+ description => "list files in an initrd",
+ },
+ "inotify_add_watch" => {
+ ret => 'int64',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'mask', 'int', 1 ],
+ ],
+ name => "inotify_add_watch",
+ description => "add an inotify watch",
+ },
+ "inotify_close" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "inotify_close",
+ description => "close the inotify handle",
+ },
+ "inotify_files" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "inotify_files",
+ description => "return list of watched files that had events",
+ },
+ "inotify_init" => {
+ ret => 'void',
+ args => [
+ [ 'maxevents', 'int', 0 ],
+ ],
+ name => "inotify_init",
+ description => "create an inotify handle",
+ },
+ "inotify_read" => {
+ ret => 'struct inotify_event list',
+ args => [
+ ],
+ name => "inotify_read",
+ description => "return list of inotify events",
+ },
+ "inotify_rm_watch" => {
+ ret => 'void',
+ args => [
+ [ 'wd', 'int', 0 ],
+ ],
+ name => "inotify_rm_watch",
+ description => "remove an inotify watch",
+ },
+ "inspect_get_arch" => {
+ ret => 'string',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_arch",
+ description => "get architecture of inspected operating system",
+ },
+ "inspect_get_distro" => {
+ ret => 'string',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_distro",
+ description => "get distro of inspected operating system",
+ },
+ "inspect_get_drive_mappings" => {
+ ret => 'hash',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_drive_mappings",
+ description => "get drive letter mappings",
+ },
+ "inspect_get_filesystems" => {
+ ret => 'string list',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_filesystems",
+ description => "get filesystems associated with inspected operating system",
+ },
+ "inspect_get_format" => {
+ ret => 'string',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_format",
+ description => "get format of inspected operating system",
+ },
+ "inspect_get_hostname" => {
+ ret => 'string',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_hostname",
+ description => "get hostname of the operating system",
+ },
+ "inspect_get_icon" => {
+ ret => 'buffer',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ optargs => {
+ favicon => [ 'favicon', 'bool', 0 ],
+ highquality => [ 'highquality', 'bool', 1 ],
+ },
+ name => "inspect_get_icon",
+ description => "get the icon corresponding to this operating system",
+ },
+ "inspect_get_major_version" => {
+ ret => 'int',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_major_version",
+ description => "get major version of inspected operating system",
+ },
+ "inspect_get_minor_version" => {
+ ret => 'int',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_minor_version",
+ description => "get minor version of inspected operating system",
+ },
+ "inspect_get_mountpoints" => {
+ ret => 'hash',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_mountpoints",
+ description => "get mountpoints of inspected operating system",
+ },
+ "inspect_get_package_format" => {
+ ret => 'string',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_package_format",
+ description => "get package format used by the operating system",
+ },
+ "inspect_get_package_management" => {
+ ret => 'string',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_package_management",
+ description => "get package management tool used by the operating system",
+ },
+ "inspect_get_product_name" => {
+ ret => 'string',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_product_name",
+ description => "get product name of inspected operating system",
+ },
+ "inspect_get_product_variant" => {
+ ret => 'string',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_product_variant",
+ description => "get product variant of inspected operating system",
+ },
+ "inspect_get_roots" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "inspect_get_roots",
+ description => "return list of operating systems found by last inspection",
+ },
+ "inspect_get_type" => {
+ ret => 'string',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_type",
+ description => "get type of inspected operating system",
+ },
+ "inspect_get_windows_current_control_set" => {
+ ret => 'string',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_windows_current_control_set",
+ description => "get Windows CurrentControlSet of inspected operating system",
+ },
+ "inspect_get_windows_systemroot" => {
+ ret => 'string',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_get_windows_systemroot",
+ description => "get Windows systemroot of inspected operating system",
+ },
+ "inspect_is_live" => {
+ ret => 'bool',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_is_live",
+ description => "get live flag for install disk",
+ },
+ "inspect_is_multipart" => {
+ ret => 'bool',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_is_multipart",
+ description => "get multipart flag for install disk",
+ },
+ "inspect_is_netinst" => {
+ ret => 'bool',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_is_netinst",
+ description => "get netinst (network installer) flag for install disk",
+ },
+ "inspect_list_applications" => {
+ ret => 'struct application list',
+ args => [
+ [ 'root', 'string(device)', 0 ],
+ ],
+ name => "inspect_list_applications",
+ description => "get list of applications installed in the operating system",
+ },
+ "inspect_os" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "inspect_os",
+ description => "inspect disk and return list of operating systems found",
+ },
+ "internal_autosync" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "internal_autosync",
+ description => "internal autosync operation",
+ },
+ "is_blockdev" => {
+ ret => 'bool',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "is_blockdev",
+ description => "test if block device",
+ },
+ "is_busy" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "is_busy",
+ description => "is busy processing a command",
+ },
+ "is_chardev" => {
+ ret => 'bool',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "is_chardev",
+ description => "test if character device",
+ },
+ "is_config" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "is_config",
+ description => "is in configuration state",
+ },
+ "is_dir" => {
+ ret => 'bool',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "is_dir",
+ description => "test if a directory",
+ },
+ "is_fifo" => {
+ ret => 'bool',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "is_fifo",
+ description => "test if FIFO (named pipe)",
+ },
+ "is_file" => {
+ ret => 'bool',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "is_file",
+ description => "test if a regular file",
+ },
+ "is_launching" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "is_launching",
+ description => "is launching subprocess",
+ },
+ "is_lv" => {
+ ret => 'bool',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "is_lv",
+ description => "test if device is a logical volume",
+ },
+ "is_ready" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "is_ready",
+ description => "is ready to accept commands",
+ },
+ "is_socket" => {
+ ret => 'bool',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "is_socket",
+ description => "test if socket",
+ },
+ "is_symlink" => {
+ ret => 'bool',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "is_symlink",
+ description => "test if symbolic link",
+ },
+ "is_zero" => {
+ ret => 'bool',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "is_zero",
+ description => "test if a file contains all zero bytes",
+ },
+ "is_zero_device" => {
+ ret => 'bool',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "is_zero_device",
+ description => "test if a device contains all zero bytes",
+ },
+ "kill_subprocess" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "kill_subprocess",
+ description => "kill the qemu subprocess",
+ },
+ "launch" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "launch",
+ description => "launch the qemu subprocess",
+ },
+ "lchown" => {
+ ret => 'void',
+ args => [
+ [ 'owner', 'int', 0 ],
+ [ 'group', 'int', 1 ],
+ [ 'path', 'string(path)', 2 ],
+ ],
+ name => "lchown",
+ description => "change file owner and group",
+ },
+ "lgetxattr" => {
+ ret => 'buffer',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'name', 'string', 1 ],
+ ],
+ name => "lgetxattr",
+ description => "get a single extended attribute",
+ },
+ "lgetxattrs" => {
+ ret => 'struct xattr list',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "lgetxattrs",
+ description => "list extended attributes of a file or directory",
+ },
+ "list_9p" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "list_9p",
+ description => "list 9p filesystems",
+ },
+ "list_devices" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "list_devices",
+ description => "list the block devices",
+ },
+ "list_dm_devices" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "list_dm_devices",
+ description => "list device mapper devices",
+ },
+ "list_filesystems" => {
+ ret => 'hash',
+ args => [
+ ],
+ name => "list_filesystems",
+ description => "list filesystems",
+ },
+ "list_partitions" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "list_partitions",
+ description => "list the partitions",
+ },
+ "ll" => {
+ ret => 'string',
+ args => [
+ [ 'directory', 'string(path)', 0 ],
+ ],
+ name => "ll",
+ description => "list the files in a directory (long format)",
+ },
+ "ln" => {
+ ret => 'void',
+ args => [
+ [ 'target', 'string', 0 ],
+ [ 'linkname', 'string(path)', 1 ],
+ ],
+ name => "ln",
+ description => "create a hard link",
+ },
+ "ln_f" => {
+ ret => 'void',
+ args => [
+ [ 'target', 'string', 0 ],
+ [ 'linkname', 'string(path)', 1 ],
+ ],
+ name => "ln_f",
+ description => "create a hard link",
+ },
+ "ln_s" => {
+ ret => 'void',
+ args => [
+ [ 'target', 'string', 0 ],
+ [ 'linkname', 'string(path)', 1 ],
+ ],
+ name => "ln_s",
+ description => "create a symbolic link",
+ },
+ "ln_sf" => {
+ ret => 'void',
+ args => [
+ [ 'target', 'string', 0 ],
+ [ 'linkname', 'string(path)', 1 ],
+ ],
+ name => "ln_sf",
+ description => "create a symbolic link",
+ },
+ "lremovexattr" => {
+ ret => 'void',
+ args => [
+ [ 'xattr', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "lremovexattr",
+ description => "remove extended attribute of a file or directory",
+ },
+ "ls" => {
+ ret => 'string list',
+ args => [
+ [ 'directory', 'string(path)', 0 ],
+ ],
+ name => "ls",
+ description => "list the files in a directory",
+ },
+ "lsetxattr" => {
+ ret => 'void',
+ args => [
+ [ 'xattr', 'string', 0 ],
+ [ 'val', 'string', 1 ],
+ [ 'vallen', 'int', 2 ],
+ [ 'path', 'string(path)', 3 ],
+ ],
+ name => "lsetxattr",
+ description => "set extended attribute of a file or directory",
+ },
+ "lstat" => {
+ ret => 'struct stat',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "lstat",
+ description => "get file information for a symbolic link",
+ },
+ "lstatlist" => {
+ ret => 'struct stat list',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'names', 'string list', 1 ],
+ ],
+ name => "lstatlist",
+ description => "lstat on multiple files",
+ },
+ "luks_add_key" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'key', 'string(key)', 1 ],
+ [ 'newkey', 'string(key)', 2 ],
+ [ 'keyslot', 'int', 3 ],
+ ],
+ name => "luks_add_key",
+ description => "add a key on a LUKS encrypted device",
+ },
+ "luks_close" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "luks_close",
+ description => "close a LUKS device",
+ },
+ "luks_format" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'key', 'string(key)', 1 ],
+ [ 'keyslot', 'int', 2 ],
+ ],
+ name => "luks_format",
+ description => "format a block device as a LUKS encrypted device",
+ },
+ "luks_format_cipher" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'key', 'string(key)', 1 ],
+ [ 'keyslot', 'int', 2 ],
+ [ 'cipher', 'string', 3 ],
+ ],
+ name => "luks_format_cipher",
+ description => "format a block device as a LUKS encrypted device",
+ },
+ "luks_kill_slot" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'key', 'string(key)', 1 ],
+ [ 'keyslot', 'int', 2 ],
+ ],
+ name => "luks_kill_slot",
+ description => "remove a key from a LUKS encrypted device",
+ },
+ "luks_open" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'key', 'string(key)', 1 ],
+ [ 'mapname', 'string', 2 ],
+ ],
+ name => "luks_open",
+ description => "open a LUKS-encrypted block device",
+ },
+ "luks_open_ro" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'key', 'string(key)', 1 ],
+ [ 'mapname', 'string', 2 ],
+ ],
+ name => "luks_open_ro",
+ description => "open a LUKS-encrypted block device read-only",
+ },
+ "lvcreate" => {
+ ret => 'void',
+ args => [
+ [ 'logvol', 'string', 0 ],
+ [ 'volgroup', 'string', 1 ],
+ [ 'mbytes', 'int', 2 ],
+ ],
+ name => "lvcreate",
+ description => "create an LVM logical volume",
+ },
+ "lvm_canonical_lv_name" => {
+ ret => 'string',
+ args => [
+ [ 'lvname', 'string(device)', 0 ],
+ ],
+ name => "lvm_canonical_lv_name",
+ description => "get canonical name of an LV",
+ },
+ "lvm_clear_filter" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "lvm_clear_filter",
+ description => "clear LVM device filter",
+ },
+ "lvm_remove_all" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "lvm_remove_all",
+ description => "remove all LVM LVs, VGs and PVs",
+ },
+ "lvm_set_filter" => {
+ ret => 'void',
+ args => [
+ [ 'devices', 'string(device) list', 0 ],
+ ],
+ name => "lvm_set_filter",
+ description => "set LVM device filter",
+ },
+ "lvremove" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "lvremove",
+ description => "remove an LVM logical volume",
+ },
+ "lvrename" => {
+ ret => 'void',
+ args => [
+ [ 'logvol', 'string', 0 ],
+ [ 'newlogvol', 'string', 1 ],
+ ],
+ name => "lvrename",
+ description => "rename an LVM logical volume",
+ },
+ "lvresize" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'mbytes', 'int', 1 ],
+ ],
+ name => "lvresize",
+ description => "resize an LVM logical volume",
+ },
+ "lvresize_free" => {
+ ret => 'void',
+ args => [
+ [ 'lv', 'string(device)', 0 ],
+ [ 'percent', 'int', 1 ],
+ ],
+ name => "lvresize_free",
+ description => "expand an LV to fill free space",
+ },
+ "lvs" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "lvs",
+ description => "list the LVM logical volumes (LVs)",
+ },
+ "lvs_full" => {
+ ret => 'struct lvm_lv list',
+ args => [
+ ],
+ name => "lvs_full",
+ description => "list the LVM logical volumes (LVs)",
+ },
+ "lvuuid" => {
+ ret => 'string',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "lvuuid",
+ description => "get the UUID of a logical volume",
+ },
+ "lxattrlist" => {
+ ret => 'struct xattr list',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'names', 'string list', 1 ],
+ ],
+ name => "lxattrlist",
+ description => "lgetxattr on multiple files",
+ },
+ "mkdir" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "mkdir",
+ description => "create a directory",
+ },
+ "mkdir_mode" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'mode', 'int', 1 ],
+ ],
+ name => "mkdir_mode",
+ description => "create a directory with a particular mode",
+ },
+ "mkdir_p" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "mkdir_p",
+ description => "create a directory and parents",
+ },
+ "mkdtemp" => {
+ ret => 'string',
+ args => [
+ [ 'template', 'string(path)', 0 ],
+ ],
+ name => "mkdtemp",
+ description => "create a temporary directory",
+ },
+ "mke2fs_J" => {
+ ret => 'void',
+ args => [
+ [ 'fstype', 'string', 0 ],
+ [ 'blocksize', 'int', 1 ],
+ [ 'device', 'string(device)', 2 ],
+ [ 'journal', 'string(device)', 3 ],
+ ],
+ name => "mke2fs_J",
+ description => "make ext2/3/4 filesystem with external journal",
+ },
+ "mke2fs_JL" => {
+ ret => 'void',
+ args => [
+ [ 'fstype', 'string', 0 ],
+ [ 'blocksize', 'int', 1 ],
+ [ 'device', 'string(device)', 2 ],
+ [ 'label', 'string', 3 ],
+ ],
+ name => "mke2fs_JL",
+ description => "make ext2/3/4 filesystem with external journal",
+ },
+ "mke2fs_JU" => {
+ ret => 'void',
+ args => [
+ [ 'fstype', 'string', 0 ],
+ [ 'blocksize', 'int', 1 ],
+ [ 'device', 'string(device)', 2 ],
+ [ 'uuid', 'string', 3 ],
+ ],
+ name => "mke2fs_JU",
+ description => "make ext2/3/4 filesystem with external journal",
+ },
+ "mke2journal" => {
+ ret => 'void',
+ args => [
+ [ 'blocksize', 'int', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ ],
+ name => "mke2journal",
+ description => "make ext2/3/4 external journal",
+ },
+ "mke2journal_L" => {
+ ret => 'void',
+ args => [
+ [ 'blocksize', 'int', 0 ],
+ [ 'label', 'string', 1 ],
+ [ 'device', 'string(device)', 2 ],
+ ],
+ name => "mke2journal_L",
+ description => "make ext2/3/4 external journal with label",
+ },
+ "mke2journal_U" => {
+ ret => 'void',
+ args => [
+ [ 'blocksize', 'int', 0 ],
+ [ 'uuid', 'string', 1 ],
+ [ 'device', 'string(device)', 2 ],
+ ],
+ name => "mke2journal_U",
+ description => "make ext2/3/4 external journal with UUID",
+ },
+ "mkfifo" => {
+ ret => 'void',
+ args => [
+ [ 'mode', 'int', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "mkfifo",
+ description => "make FIFO (named pipe)",
+ },
+ "mkfs" => {
+ ret => 'void',
+ args => [
+ [ 'fstype', 'string', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ ],
+ name => "mkfs",
+ description => "make a filesystem",
+ },
+ "mkfs_b" => {
+ ret => 'void',
+ args => [
+ [ 'fstype', 'string', 0 ],
+ [ 'blocksize', 'int', 1 ],
+ [ 'device', 'string(device)', 2 ],
+ ],
+ name => "mkfs_b",
+ description => "make a filesystem with block size",
+ },
+ "mkfs_opts" => {
+ ret => 'void',
+ args => [
+ [ 'fstype', 'string', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ ],
+ optargs => {
+ blocksize => [ 'blocksize', 'int', 0 ],
+ features => [ 'features', 'string', 1 ],
+ inode => [ 'inode', 'int', 2 ],
+ sectorsize => [ 'sectorsize', 'int', 3 ],
+ },
+ name => "mkfs_opts",
+ description => "make a filesystem",
+ },
+ "mkmountpoint" => {
+ ret => 'void',
+ args => [
+ [ 'exemptpath', 'string', 0 ],
+ ],
+ name => "mkmountpoint",
+ description => "create a mountpoint",
+ },
+ "mknod" => {
+ ret => 'void',
+ args => [
+ [ 'mode', 'int', 0 ],
+ [ 'devmajor', 'int', 1 ],
+ [ 'devminor', 'int', 2 ],
+ [ 'path', 'string(path)', 3 ],
+ ],
+ name => "mknod",
+ description => "make block, character or FIFO devices",
+ },
+ "mknod_b" => {
+ ret => 'void',
+ args => [
+ [ 'mode', 'int', 0 ],
+ [ 'devmajor', 'int', 1 ],
+ [ 'devminor', 'int', 2 ],
+ [ 'path', 'string(path)', 3 ],
+ ],
+ name => "mknod_b",
+ description => "make block device node",
+ },
+ "mknod_c" => {
+ ret => 'void',
+ args => [
+ [ 'mode', 'int', 0 ],
+ [ 'devmajor', 'int', 1 ],
+ [ 'devminor', 'int', 2 ],
+ [ 'path', 'string(path)', 3 ],
+ ],
+ name => "mknod_c",
+ description => "make char device node",
+ },
+ "mkswap" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "mkswap",
+ description => "create a swap partition",
+ },
+ "mkswap_L" => {
+ ret => 'void',
+ args => [
+ [ 'label', 'string', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ ],
+ name => "mkswap_L",
+ description => "create a swap partition with a label",
+ },
+ "mkswap_U" => {
+ ret => 'void',
+ args => [
+ [ 'uuid', 'string', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ ],
+ name => "mkswap_U",
+ description => "create a swap partition with an explicit UUID",
+ },
+ "mkswap_file" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "mkswap_file",
+ description => "create a swap file",
+ },
+ "modprobe" => {
+ ret => 'void',
+ args => [
+ [ 'modulename', 'string', 0 ],
+ ],
+ name => "modprobe",
+ description => "load a kernel module",
+ },
+ "mount" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'mountpoint', 'string', 1 ],
+ ],
+ name => "mount",
+ description => "mount a guest disk at a position in the filesystem",
+ },
+ "mount_9p" => {
+ ret => 'void',
+ args => [
+ [ 'mounttag', 'string', 0 ],
+ [ 'mountpoint', 'string', 1 ],
+ ],
+ optargs => {
+ options => [ 'options', 'string', 0 ],
+ },
+ name => "mount_9p",
+ description => "mount 9p filesystem",
+ },
+ "mount_loop" => {
+ ret => 'void',
+ args => [
+ [ 'file', 'string(path)', 0 ],
+ [ 'mountpoint', 'string(path)', 1 ],
+ ],
+ name => "mount_loop",
+ description => "mount a file using the loop device",
+ },
+ "mount_options" => {
+ ret => 'void',
+ args => [
+ [ 'options', 'string', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ [ 'mountpoint', 'string', 2 ],
+ ],
+ name => "mount_options",
+ description => "mount a guest disk with mount options",
+ },
+ "mount_ro" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'mountpoint', 'string', 1 ],
+ ],
+ name => "mount_ro",
+ description => "mount a guest disk, read-only",
+ },
+ "mount_vfs" => {
+ ret => 'void',
+ args => [
+ [ 'options', 'string', 0 ],
+ [ 'vfstype', 'string', 1 ],
+ [ 'device', 'string(device)', 2 ],
+ [ 'mountpoint', 'string', 3 ],
+ ],
+ name => "mount_vfs",
+ description => "mount a guest disk with mount options and vfstype",
+ },
+ "mountpoints" => {
+ ret => 'hash',
+ args => [
+ ],
+ name => "mountpoints",
+ description => "show mountpoints",
+ },
+ "mounts" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "mounts",
+ description => "show mounted filesystems",
+ },
+ "mv" => {
+ ret => 'void',
+ args => [
+ [ 'src', 'string(path)', 0 ],
+ [ 'dest', 'string(path)', 1 ],
+ ],
+ name => "mv",
+ description => "move a file",
+ },
+ "ntfs_3g_probe" => {
+ ret => 'int',
+ args => [
+ [ 'rw', 'bool', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ ],
+ name => "ntfs_3g_probe",
+ description => "probe NTFS volume",
+ },
+ "ntfsresize" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "ntfsresize",
+ description => "resize an NTFS filesystem",
+ },
+ "ntfsresize_opts" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ optargs => {
+ size => [ 'size', 'int64', 0 ],
+ force => [ 'force', 'bool', 1 ],
+ },
+ name => "ntfsresize_opts",
+ description => "resize an NTFS filesystem",
+ },
+ "ntfsresize_size" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'size', 'int64', 1 ],
+ ],
+ name => "ntfsresize_size",
+ description => "resize an NTFS filesystem (with size)",
+ },
+ "part_add" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'prlogex', 'string', 1 ],
+ [ 'startsect', 'int64', 2 ],
+ [ 'endsect', 'int64', 3 ],
+ ],
+ name => "part_add",
+ description => "add a partition to the device",
+ },
+ "part_del" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'partnum', 'int', 1 ],
+ ],
+ name => "part_del",
+ description => "delete a partition",
+ },
+ "part_disk" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'parttype', 'string', 1 ],
+ ],
+ name => "part_disk",
+ description => "partition whole disk with a single primary partition",
+ },
+ "part_get_bootable" => {
+ ret => 'bool',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'partnum', 'int', 1 ],
+ ],
+ name => "part_get_bootable",
+ description => "return true if a partition is bootable",
+ },
+ "part_get_mbr_id" => {
+ ret => 'int',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'partnum', 'int', 1 ],
+ ],
+ name => "part_get_mbr_id",
+ description => "get the MBR type byte (ID byte) from a partition",
+ },
+ "part_get_parttype" => {
+ ret => 'string',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "part_get_parttype",
+ description => "get the partition table type",
+ },
+ "part_init" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'parttype', 'string', 1 ],
+ ],
+ name => "part_init",
+ description => "create an empty partition table",
+ },
+ "part_list" => {
+ ret => 'struct partition list',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "part_list",
+ description => "list partitions on a device",
+ },
+ "part_set_bootable" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'partnum', 'int', 1 ],
+ [ 'bootable', 'bool', 2 ],
+ ],
+ name => "part_set_bootable",
+ description => "make a partition bootable",
+ },
+ "part_set_mbr_id" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'partnum', 'int', 1 ],
+ [ 'idbyte', 'int', 2 ],
+ ],
+ name => "part_set_mbr_id",
+ description => "set the MBR type byte (ID byte) of a partition",
+ },
+ "part_set_name" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'partnum', 'int', 1 ],
+ [ 'name', 'string', 2 ],
+ ],
+ name => "part_set_name",
+ description => "set partition name",
+ },
+ "part_to_dev" => {
+ ret => 'string',
+ args => [
+ [ 'partition', 'string(device)', 0 ],
+ ],
+ name => "part_to_dev",
+ description => "convert partition name to device name",
+ },
+ "part_to_partnum" => {
+ ret => 'int',
+ args => [
+ [ 'partition', 'string(device)', 0 ],
+ ],
+ name => "part_to_partnum",
+ description => "convert partition name to partition number",
+ },
+ "ping_daemon" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "ping_daemon",
+ description => "ping the guest daemon",
+ },
+ "pread" => {
+ ret => 'buffer',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'count', 'int', 1 ],
+ [ 'offset', 'int64', 2 ],
+ ],
+ name => "pread",
+ description => "read part of a file",
+ },
+ "pread_device" => {
+ ret => 'buffer',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'count', 'int', 1 ],
+ [ 'offset', 'int64', 2 ],
+ ],
+ name => "pread_device",
+ description => "read part of a device",
+ },
+ "pvcreate" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "pvcreate",
+ description => "create an LVM physical volume",
+ },
+ "pvremove" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "pvremove",
+ description => "remove an LVM physical volume",
+ },
+ "pvresize" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "pvresize",
+ description => "resize an LVM physical volume",
+ },
+ "pvresize_size" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'size', 'int64', 1 ],
+ ],
+ name => "pvresize_size",
+ description => "resize an LVM physical volume (with size)",
+ },
+ "pvs" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "pvs",
+ description => "list the LVM physical volumes (PVs)",
+ },
+ "pvs_full" => {
+ ret => 'struct lvm_pv list',
+ args => [
+ ],
+ name => "pvs_full",
+ description => "list the LVM physical volumes (PVs)",
+ },
+ "pvuuid" => {
+ ret => 'string',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "pvuuid",
+ description => "get the UUID of a physical volume",
+ },
+ "pwrite" => {
+ ret => 'int',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'content', 'buffer', 1 ],
+ [ 'offset', 'int64', 2 ],
+ ],
+ name => "pwrite",
+ description => "write to part of a file",
+ },
+ "pwrite_device" => {
+ ret => 'int',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'content', 'buffer', 1 ],
+ [ 'offset', 'int64', 2 ],
+ ],
+ name => "pwrite_device",
+ description => "write to part of a device",
+ },
+ "read_file" => {
+ ret => 'buffer',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "read_file",
+ description => "read a file",
+ },
+ "read_lines" => {
+ ret => 'string list',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "read_lines",
+ description => "read file as lines",
+ },
+ "readdir" => {
+ ret => 'struct dirent list',
+ args => [
+ [ 'dir', 'string(path)', 0 ],
+ ],
+ name => "readdir",
+ description => "read directories entries",
+ },
+ "readlink" => {
+ ret => 'string',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "readlink",
+ description => "read the target of a symbolic link",
+ },
+ "readlinklist" => {
+ ret => 'string list',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'names', 'string list', 1 ],
+ ],
+ name => "readlinklist",
+ description => "readlink on multiple files",
+ },
+ "realpath" => {
+ ret => 'string',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "realpath",
+ description => "canonicalized absolute pathname",
+ },
+ "removexattr" => {
+ ret => 'void',
+ args => [
+ [ 'xattr', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "removexattr",
+ description => "remove extended attribute of a file or directory",
+ },
+ "resize2fs" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "resize2fs",
+ description => "resize an ext2, ext3 or ext4 filesystem",
+ },
+ "resize2fs_M" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "resize2fs_M",
+ description => "resize an ext2, ext3 or ext4 filesystem to the minimum size",
+ },
+ "resize2fs_size" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'size', 'int64', 1 ],
+ ],
+ name => "resize2fs_size",
+ description => "resize an ext2, ext3 or ext4 filesystem (with size)",
+ },
+ "rm" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "rm",
+ description => "remove a file",
+ },
+ "rm_rf" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "rm_rf",
+ description => "remove a file or directory recursively",
+ },
+ "rmdir" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "rmdir",
+ description => "remove a directory",
+ },
+ "rmmountpoint" => {
+ ret => 'void',
+ args => [
+ [ 'exemptpath', 'string', 0 ],
+ ],
+ name => "rmmountpoint",
+ description => "remove a mountpoint",
+ },
+ "scrub_device" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "scrub_device",
+ description => "scrub (securely wipe) a device",
+ },
+ "scrub_file" => {
+ ret => 'void',
+ args => [
+ [ 'file', 'string(path)', 0 ],
+ ],
+ name => "scrub_file",
+ description => "scrub (securely wipe) a file",
+ },
+ "scrub_freespace" => {
+ ret => 'void',
+ args => [
+ [ 'dir', 'string(path)', 0 ],
+ ],
+ name => "scrub_freespace",
+ description => "scrub (securely wipe) free space",
+ },
+ "set_append" => {
+ ret => 'void',
+ args => [
+ [ 'append', 'nullable string', 0 ],
+ ],
+ name => "set_append",
+ description => "add options to kernel command line",
+ },
+ "set_attach_method" => {
+ ret => 'void',
+ args => [
+ [ 'attachmethod', 'string', 0 ],
+ ],
+ name => "set_attach_method",
+ description => "set the attach method",
+ },
+ "set_autosync" => {
+ ret => 'void',
+ args => [
+ [ 'autosync', 'bool', 0 ],
+ ],
+ name => "set_autosync",
+ description => "set autosync mode",
+ },
+ "set_direct" => {
+ ret => 'void',
+ args => [
+ [ 'direct', 'bool', 0 ],
+ ],
+ name => "set_direct",
+ description => "enable or disable direct appliance mode",
+ },
+ "set_e2label" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'label', 'string', 1 ],
+ ],
+ name => "set_e2label",
+ description => "set the ext2/3/4 filesystem label",
+ },
+ "set_e2uuid" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'uuid', 'string', 1 ],
+ ],
+ name => "set_e2uuid",
+ description => "set the ext2/3/4 filesystem UUID",
+ },
+ "set_memsize" => {
+ ret => 'void',
+ args => [
+ [ 'memsize', 'int', 0 ],
+ ],
+ name => "set_memsize",
+ description => "set memory allocated to the qemu subprocess",
+ },
+ "set_network" => {
+ ret => 'void',
+ args => [
+ [ 'network', 'bool', 0 ],
+ ],
+ name => "set_network",
+ description => "set enable network flag",
+ },
+ "set_path" => {
+ ret => 'void',
+ args => [
+ [ 'searchpath', 'nullable string', 0 ],
+ ],
+ name => "set_path",
+ description => "set the search path",
+ },
+ "set_pgroup" => {
+ ret => 'void',
+ args => [
+ [ 'pgroup', 'bool', 0 ],
+ ],
+ name => "set_pgroup",
+ description => "set process group flag",
+ },
+ "set_qemu" => {
+ ret => 'void',
+ args => [
+ [ 'qemu', 'nullable string', 0 ],
+ ],
+ name => "set_qemu",
+ description => "set the qemu binary",
+ },
+ "set_recovery_proc" => {
+ ret => 'void',
+ args => [
+ [ 'recoveryproc', 'bool', 0 ],
+ ],
+ name => "set_recovery_proc",
+ description => "enable or disable the recovery process",
+ },
+ "set_selinux" => {
+ ret => 'void',
+ args => [
+ [ 'selinux', 'bool', 0 ],
+ ],
+ name => "set_selinux",
+ description => "set SELinux enabled or disabled at appliance boot",
+ },
+ "set_smp" => {
+ ret => 'void',
+ args => [
+ [ 'smp', 'int', 0 ],
+ ],
+ name => "set_smp",
+ description => "set number of virtual CPUs in appliance",
+ },
+ "set_trace" => {
+ ret => 'void',
+ args => [
+ [ 'trace', 'bool', 0 ],
+ ],
+ name => "set_trace",
+ description => "enable or disable command traces",
+ },
+ "set_verbose" => {
+ ret => 'void',
+ args => [
+ [ 'verbose', 'bool', 0 ],
+ ],
+ name => "set_verbose",
+ description => "set verbose mode",
+ },
+ "setcon" => {
+ ret => 'void',
+ args => [
+ [ 'context', 'string', 0 ],
+ ],
+ name => "setcon",
+ description => "set SELinux security context",
+ },
+ "setxattr" => {
+ ret => 'void',
+ args => [
+ [ 'xattr', 'string', 0 ],
+ [ 'val', 'string', 1 ],
+ [ 'vallen', 'int', 2 ],
+ [ 'path', 'string(path)', 3 ],
+ ],
+ name => "setxattr",
+ description => "set extended attribute of a file or directory",
+ },
+ "sfdisk" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'cyls', 'int', 1 ],
+ [ 'heads', 'int', 2 ],
+ [ 'sectors', 'int', 3 ],
+ [ 'lines', 'string list', 4 ],
+ ],
+ name => "sfdisk",
+ description => "create partitions on a block device",
+ },
+ "sfdiskM" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'lines', 'string list', 1 ],
+ ],
+ name => "sfdiskM",
+ description => "create partitions on a block device",
+ },
+ "sfdisk_N" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ [ 'partnum', 'int', 1 ],
+ [ 'cyls', 'int', 2 ],
+ [ 'heads', 'int', 3 ],
+ [ 'sectors', 'int', 4 ],
+ [ 'line', 'string', 5 ],
+ ],
+ name => "sfdisk_N",
+ description => "modify a single partition on a block device",
+ },
+ "sfdisk_disk_geometry" => {
+ ret => 'string',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "sfdisk_disk_geometry",
+ description => "display the disk geometry from the partition table",
+ },
+ "sfdisk_kernel_geometry" => {
+ ret => 'string',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "sfdisk_kernel_geometry",
+ description => "display the kernel geometry",
+ },
+ "sfdisk_l" => {
+ ret => 'string',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "sfdisk_l",
+ description => "display the partition table",
+ },
+ "sh" => {
+ ret => 'string',
+ args => [
+ [ 'command', 'string', 0 ],
+ ],
+ name => "sh",
+ description => "run a command via the shell",
+ },
+ "sh_lines" => {
+ ret => 'string list',
+ args => [
+ [ 'command', 'string', 0 ],
+ ],
+ name => "sh_lines",
+ description => "run a command via the shell returning lines",
+ },
+ "sleep" => {
+ ret => 'void',
+ args => [
+ [ 'secs', 'int', 0 ],
+ ],
+ name => "sleep",
+ description => "sleep for some seconds",
+ },
+ "stat" => {
+ ret => 'struct stat',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "stat",
+ description => "get file information",
+ },
+ "statvfs" => {
+ ret => 'struct statvfs',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "statvfs",
+ description => "get file system statistics",
+ },
+ "strings" => {
+ ret => 'string list',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "strings",
+ description => "print the printable strings in a file",
+ },
+ "strings_e" => {
+ ret => 'string list',
+ args => [
+ [ 'encoding', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "strings_e",
+ description => "print the printable strings in a file",
+ },
+ "swapoff_device" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "swapoff_device",
+ description => "disable swap on device",
+ },
+ "swapoff_file" => {
+ ret => 'void',
+ args => [
+ [ 'file', 'string(path)', 0 ],
+ ],
+ name => "swapoff_file",
+ description => "disable swap on file",
+ },
+ "swapoff_label" => {
+ ret => 'void',
+ args => [
+ [ 'label', 'string', 0 ],
+ ],
+ name => "swapoff_label",
+ description => "disable swap on labeled swap partition",
+ },
+ "swapoff_uuid" => {
+ ret => 'void',
+ args => [
+ [ 'uuid', 'string', 0 ],
+ ],
+ name => "swapoff_uuid",
+ description => "disable swap on swap partition by UUID",
+ },
+ "swapon_device" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "swapon_device",
+ description => "enable swap on device",
+ },
+ "swapon_file" => {
+ ret => 'void',
+ args => [
+ [ 'file', 'string(path)', 0 ],
+ ],
+ name => "swapon_file",
+ description => "enable swap on file",
+ },
+ "swapon_label" => {
+ ret => 'void',
+ args => [
+ [ 'label', 'string', 0 ],
+ ],
+ name => "swapon_label",
+ description => "enable swap on labeled swap partition",
+ },
+ "swapon_uuid" => {
+ ret => 'void',
+ args => [
+ [ 'uuid', 'string', 0 ],
+ ],
+ name => "swapon_uuid",
+ description => "enable swap on swap partition by UUID",
+ },
+ "sync" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "sync",
+ description => "sync disks, writes are flushed through to the disk image",
+ },
+ "tail" => {
+ ret => 'string list',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "tail",
+ description => "return last 10 lines of a file",
+ },
+ "tail_n" => {
+ ret => 'string list',
+ args => [
+ [ 'nrlines', 'int', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "tail_n",
+ description => "return last N lines of a file",
+ },
+ "tar_in" => {
+ ret => 'void',
+ args => [
+ [ 'tarfile', 'string(filename)', 0 ],
+ [ 'directory', 'string(path)', 1 ],
+ ],
+ name => "tar_in",
+ description => "unpack tarfile to directory",
+ },
+ "tar_out" => {
+ ret => 'void',
+ args => [
+ [ 'directory', 'string', 0 ],
+ [ 'tarfile', 'string(filename)', 1 ],
+ ],
+ name => "tar_out",
+ description => "pack directory into tarfile",
+ },
+ "test0" => {
+ ret => 'void',
+ args => [
+ [ 'str', 'string', 0 ],
+ [ 'optstr', 'nullable string', 1 ],
+ [ 'strlist', 'string list', 2 ],
+ [ 'b', 'bool', 3 ],
+ [ 'integer', 'int', 4 ],
+ [ 'integer64', 'int64', 5 ],
+ [ 'filein', 'string(filename)', 6 ],
+ [ 'fileout', 'string(filename)', 7 ],
+ [ 'bufferin', 'buffer', 8 ],
+ ],
+ name => "test0",
+ description => "internal test function - do not use",
+ },
+ "test0rbool" => {
+ ret => 'bool',
+ args => [
+ [ 'val', 'string', 0 ],
+ ],
+ name => "test0rbool",
+ description => "internal test function - do not use",
+ },
+ "test0rboolerr" => {
+ ret => 'bool',
+ args => [
+ ],
+ name => "test0rboolerr",
+ description => "internal test function - do not use",
+ },
+ "test0rconstoptstring" => {
+ ret => 'const nullable string',
+ args => [
+ [ 'val', 'string', 0 ],
+ ],
+ name => "test0rconstoptstring",
+ description => "internal test function - do not use",
+ },
+ "test0rconstoptstringerr" => {
+ ret => 'const nullable string',
+ args => [
+ ],
+ name => "test0rconstoptstringerr",
+ description => "internal test function - do not use",
+ },
+ "test0rconststring" => {
+ ret => 'const string',
+ args => [
+ [ 'val', 'string', 0 ],
+ ],
+ name => "test0rconststring",
+ description => "internal test function - do not use",
+ },
+ "test0rconststringerr" => {
+ ret => 'const string',
+ args => [
+ ],
+ name => "test0rconststringerr",
+ description => "internal test function - do not use",
+ },
+ "test0rhashtable" => {
+ ret => 'hash',
+ args => [
+ [ 'val', 'string', 0 ],
+ ],
+ name => "test0rhashtable",
+ description => "internal test function - do not use",
+ },
+ "test0rhashtableerr" => {
+ ret => 'hash',
+ args => [
+ ],
+ name => "test0rhashtableerr",
+ description => "internal test function - do not use",
+ },
+ "test0rint" => {
+ ret => 'int',
+ args => [
+ [ 'val', 'string', 0 ],
+ ],
+ name => "test0rint",
+ description => "internal test function - do not use",
+ },
+ "test0rint64" => {
+ ret => 'int64',
+ args => [
+ [ 'val', 'string', 0 ],
+ ],
+ name => "test0rint64",
+ description => "internal test function - do not use",
+ },
+ "test0rint64err" => {
+ ret => 'int64',
+ args => [
+ ],
+ name => "test0rint64err",
+ description => "internal test function - do not use",
+ },
+ "test0rinterr" => {
+ ret => 'int',
+ args => [
+ ],
+ name => "test0rinterr",
+ description => "internal test function - do not use",
+ },
+ "test0rstring" => {
+ ret => 'string',
+ args => [
+ [ 'val', 'string', 0 ],
+ ],
+ name => "test0rstring",
+ description => "internal test function - do not use",
+ },
+ "test0rstringerr" => {
+ ret => 'string',
+ args => [
+ ],
+ name => "test0rstringerr",
+ description => "internal test function - do not use",
+ },
+ "test0rstringlist" => {
+ ret => 'string list',
+ args => [
+ [ 'val', 'string', 0 ],
+ ],
+ name => "test0rstringlist",
+ description => "internal test function - do not use",
+ },
+ "test0rstringlisterr" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "test0rstringlisterr",
+ description => "internal test function - do not use",
+ },
+ "test0rstruct" => {
+ ret => 'struct lvm_pv',
+ args => [
+ [ 'val', 'string', 0 ],
+ ],
+ name => "test0rstruct",
+ description => "internal test function - do not use",
+ },
+ "test0rstructerr" => {
+ ret => 'struct lvm_pv',
+ args => [
+ ],
+ name => "test0rstructerr",
+ description => "internal test function - do not use",
+ },
+ "test0rstructlist" => {
+ ret => 'struct lvm_pv list',
+ args => [
+ [ 'val', 'string', 0 ],
+ ],
+ name => "test0rstructlist",
+ description => "internal test function - do not use",
+ },
+ "test0rstructlisterr" => {
+ ret => 'struct lvm_pv list',
+ args => [
+ ],
+ name => "test0rstructlisterr",
+ description => "internal test function - do not use",
+ },
+ "tgz_in" => {
+ ret => 'void',
+ args => [
+ [ 'tarball', 'string(filename)', 0 ],
+ [ 'directory', 'string(path)', 1 ],
+ ],
+ name => "tgz_in",
+ description => "unpack compressed tarball to directory",
+ },
+ "tgz_out" => {
+ ret => 'void',
+ args => [
+ [ 'directory', 'string(path)', 0 ],
+ [ 'tarball', 'string(filename)', 1 ],
+ ],
+ name => "tgz_out",
+ description => "pack directory into compressed tarball",
+ },
+ "touch" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "touch",
+ description => "update file timestamps or create a new file",
+ },
+ "truncate" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "truncate",
+ description => "truncate a file to zero size",
+ },
+ "truncate_size" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'size', 'int64', 1 ],
+ ],
+ name => "truncate_size",
+ description => "truncate a file to a particular size",
+ },
+ "tune2fs_l" => {
+ ret => 'hash',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "tune2fs_l",
+ description => "get ext2/ext3/ext4 superblock details",
+ },
+ "txz_in" => {
+ ret => 'void',
+ args => [
+ [ 'tarball', 'string(filename)', 0 ],
+ [ 'directory', 'string(path)', 1 ],
+ ],
+ name => "txz_in",
+ description => "unpack compressed tarball to directory",
+ },
+ "txz_out" => {
+ ret => 'void',
+ args => [
+ [ 'directory', 'string(path)', 0 ],
+ [ 'tarball', 'string(filename)', 1 ],
+ ],
+ name => "txz_out",
+ description => "pack directory into compressed tarball",
+ },
+ "umask" => {
+ ret => 'int',
+ args => [
+ [ 'mask', 'int', 0 ],
+ ],
+ name => "umask",
+ description => "set file mode creation mask (umask)",
+ },
+ "umount" => {
+ ret => 'void',
+ args => [
+ [ 'pathordevice', 'string', 0 ],
+ ],
+ name => "umount",
+ description => "unmount a filesystem",
+ },
+ "umount_all" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "umount_all",
+ description => "unmount all filesystems",
+ },
+ "upload" => {
+ ret => 'void',
+ args => [
+ [ 'filename', 'string(filename)', 0 ],
+ [ 'remotefilename', 'string(dev_or_path)', 1 ],
+ ],
+ name => "upload",
+ description => "upload a file from the local machine",
+ },
+ "upload_offset" => {
+ ret => 'void',
+ args => [
+ [ 'filename', 'string(filename)', 0 ],
+ [ 'remotefilename', 'string(dev_or_path)', 1 ],
+ [ 'offset', 'int64', 2 ],
+ ],
+ name => "upload_offset",
+ description => "upload a file from the local machine with offset",
+ },
+ "utimens" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'atsecs', 'int64', 1 ],
+ [ 'atnsecs', 'int64', 2 ],
+ [ 'mtsecs', 'int64', 3 ],
+ [ 'mtnsecs', 'int64', 4 ],
+ ],
+ name => "utimens",
+ description => "set timestamp of a file with nanosecond precision",
+ },
+ "version" => {
+ ret => 'struct version',
+ args => [
+ ],
+ name => "version",
+ description => "get the library version number",
+ },
+ "vfs_label" => {
+ ret => 'string',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "vfs_label",
+ description => "get the filesystem label",
+ },
+ "vfs_type" => {
+ ret => 'string',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "vfs_type",
+ description => "get the Linux VFS type corresponding to a mounted device",
+ },
+ "vfs_uuid" => {
+ ret => 'string',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "vfs_uuid",
+ description => "get the filesystem UUID",
+ },
+ "vg_activate" => {
+ ret => 'void',
+ args => [
+ [ 'activate', 'bool', 0 ],
+ [ 'volgroups', 'string list', 1 ],
+ ],
+ name => "vg_activate",
+ description => "activate or deactivate some volume groups",
+ },
+ "vg_activate_all" => {
+ ret => 'void',
+ args => [
+ [ 'activate', 'bool', 0 ],
+ ],
+ name => "vg_activate_all",
+ description => "activate or deactivate all volume groups",
+ },
+ "vgcreate" => {
+ ret => 'void',
+ args => [
+ [ 'volgroup', 'string', 0 ],
+ [ 'physvols', 'string(device) list', 1 ],
+ ],
+ name => "vgcreate",
+ description => "create an LVM volume group",
+ },
+ "vglvuuids" => {
+ ret => 'string list',
+ args => [
+ [ 'vgname', 'string', 0 ],
+ ],
+ name => "vglvuuids",
+ description => "get the LV UUIDs of all LVs in the volume group",
+ },
+ "vgpvuuids" => {
+ ret => 'string list',
+ args => [
+ [ 'vgname', 'string', 0 ],
+ ],
+ name => "vgpvuuids",
+ description => "get the PV UUIDs containing the volume group",
+ },
+ "vgremove" => {
+ ret => 'void',
+ args => [
+ [ 'vgname', 'string', 0 ],
+ ],
+ name => "vgremove",
+ description => "remove an LVM volume group",
+ },
+ "vgrename" => {
+ ret => 'void',
+ args => [
+ [ 'volgroup', 'string', 0 ],
+ [ 'newvolgroup', 'string', 1 ],
+ ],
+ name => "vgrename",
+ description => "rename an LVM volume group",
+ },
+ "vgs" => {
+ ret => 'string list',
+ args => [
+ ],
+ name => "vgs",
+ description => "list the LVM volume groups (VGs)",
+ },
+ "vgs_full" => {
+ ret => 'struct lvm_vg list',
+ args => [
+ ],
+ name => "vgs_full",
+ description => "list the LVM volume groups (VGs)",
+ },
+ "vgscan" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "vgscan",
+ description => "rescan for LVM physical volumes, volume groups and logical volumes",
+ },
+ "vguuid" => {
+ ret => 'string',
+ args => [
+ [ 'vgname', 'string', 0 ],
+ ],
+ name => "vguuid",
+ description => "get the UUID of a volume group",
+ },
+ "wait_ready" => {
+ ret => 'void',
+ args => [
+ ],
+ name => "wait_ready",
+ description => "wait until the qemu subprocess launches (no op)",
+ },
+ "wc_c" => {
+ ret => 'int',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "wc_c",
+ description => "count characters in a file",
+ },
+ "wc_l" => {
+ ret => 'int',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "wc_l",
+ description => "count lines in a file",
+ },
+ "wc_w" => {
+ ret => 'int',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ ],
+ name => "wc_w",
+ description => "count words in a file",
+ },
+ "write" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'content', 'buffer', 1 ],
+ ],
+ name => "write",
+ description => "create a new file",
+ },
+ "write_append" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'content', 'buffer', 1 ],
+ ],
+ name => "write_append",
+ description => "append content to end of file",
+ },
+ "write_file" => {
+ ret => 'void',
+ args => [
+ [ 'path', 'string(path)', 0 ],
+ [ 'content', 'string', 1 ],
+ [ 'size', 'int', 2 ],
+ ],
+ name => "write_file",
+ description => "create a file",
+ },
+ "zegrep" => {
+ ret => 'string list',
+ args => [
+ [ 'regex', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "zegrep",
+ description => "return lines matching a pattern",
+ },
+ "zegrepi" => {
+ ret => 'string list',
+ args => [
+ [ 'regex', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "zegrepi",
+ description => "return lines matching a pattern",
+ },
+ "zero" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "zero",
+ description => "write zeroes to the device",
+ },
+ "zero_device" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "zero_device",
+ description => "write zeroes to an entire device",
+ },
+ "zerofree" => {
+ ret => 'void',
+ args => [
+ [ 'device', 'string(device)', 0 ],
+ ],
+ name => "zerofree",
+ description => "zero unused inodes and disk blocks on ext2/3 filesystem",
+ },
+ "zfgrep" => {
+ ret => 'string list',
+ args => [
+ [ 'pattern', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "zfgrep",
+ description => "return lines matching a pattern",
+ },
+ "zfgrepi" => {
+ ret => 'string list',
+ args => [
+ [ 'pattern', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "zfgrepi",
+ description => "return lines matching a pattern",
+ },
+ "zfile" => {
+ ret => 'string',
+ args => [
+ [ 'meth', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "zfile",
+ description => "determine file type inside a compressed file",
+ },
+ "zgrep" => {
+ ret => 'string list',
+ args => [
+ [ 'regex', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "zgrep",
+ description => "return lines matching a pattern",
+ },
+ "zgrepi" => {
+ ret => 'string list',
+ args => [
+ [ 'regex', 'string', 0 ],
+ [ 'path', 'string(path)', 1 ],
+ ],
+ name => "zgrepi",
+ description => "return lines matching a pattern",
+ },
+);
+
1;
=back
@@ -4864,6 +8201,33 @@ class, use the ordinary Perl UNIVERSAL method C<can(METHOD)>
print "\$h->set_verbose is available\n";
}
+Perl does not offer a way to list the arguments of a method, and
+from time to time we may add extra arguments to calls that take
+optional arguments. For this reason, we provide a global hash
+variable C<%guestfs_introspection> which contains the arguments
+and their types for each libguestfs method. The keys of this
+hash are the method names, and the values are an hashref
+containing useful introspection information about the method
+(further fields may be added to this in future).
+
+ use Sys::Guestfs;
+ $Sys::Guestfs::guestfs_introspection{mkfs_opts}
+ => {
+ ret => 'void', # return type
+ args => [ # required arguments
+ [ 'fstype', 'string', 0 ],
+ [ 'device', 'string(device)', 1 ],
+ ],
+ optargs => { # optional arguments
+ blocksize => [ 'blocksize', 'int', 0 ],
+ features => [ 'features', 'string', 1 ],
+ inode => [ 'inode', 'int', 2 ],
+ sectorsize => [ 'sectorsize', 'int', 3 ],
+ },
+ name => "mkfs_opts",
+ description => "make a filesystem",
+ }
+
To test if particular features are supported by the current
build, use the L</available> method like the example below. Note
that the appliance must be launched first.
diff --git a/perl/t/900-introspection.t b/perl/t/900-introspection.t
new file mode 100644
index 0000000..6defc9b
--- /dev/null
+++ b/perl/t/900-introspection.t
@@ -0,0 +1,42 @@
+# libguestfs Perl bindings -*- perl -*-
+# Copyright (C) 2011 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# Test %guestfs_introspection.
+
+use strict;
+use warnings;
+use Test::More tests => 10;
+
+use Errno;
+
+use Sys::Guestfs;
+
+my %add_drive = %{$Sys::Guestfs::guestfs_introspection{add_drive}};
+ok(1);
+
+is ($add_drive{ret}, "void");
+is ($add_drive{args}[0][0], "filename");
+is ($add_drive{args}[0][1], "string");
+is ($add_drive{args}[0][2], 0);
+
+my %add_drive_opts = %{$Sys::Guestfs::guestfs_introspection{add_drive_opts}};
+ok(1);
+
+ok (exists $add_drive_opts{optargs});
+ok (exists $add_drive_opts{optargs}->{readonly});
+is ($add_drive_opts{optargs}->{readonly}[0], "readonly");
+is ($add_drive_opts{optargs}->{readonly}[1], "bool");
diff --git a/po-docs/ja.po b/po-docs/ja.po
index 744b652..6c9560a 100644
--- a/po-docs/ja.po
+++ b/po-docs/ja.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: libguestfs at redhat.com\n"
-"POT-Creation-Date: 2011-10-27 16:05+0200\n"
+"POT-Creation-Date: 2011-11-01 14:20+0000\n"
"PO-Revision-Date: 2011-10-27 09:15+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Japanese <trans-ja at lists.fedoraproject.org>\n"
@@ -91,7 +91,7 @@ msgstr ""
#: ../fish/virt-tar-out.pod:15 ../fuse/guestmount.pod:20
#: ../inspector/virt-inspector.pod:19 ../java/examples/guestfs-java.pod:15
#: ../ocaml/examples/guestfs-ocaml.pod:25 ../perl/examples/guestfs-perl.pod:18
-#: ../python/examples/guestfs-python.pod:14 ../rescue/virt-rescue.pod:29
+#: ../python/examples/guestfs-python.pod:14 ../rescue/virt-rescue.pod:31
#: ../resize/virt-resize.pod:13 ../ruby/examples/guestfs-ruby.pod:15
#: ../sparsify/virt-sparsify.pod:11 ../src/guestfs.pod:23
#: ../test-tool/libguestfs-test-tool.pod:11
@@ -266,7 +266,7 @@ msgstr ""
#: ../fish/guestfish.pod:148 ../fish/virt-copy-in.pod:45
#: ../fish/virt-copy-out.pod:34 ../fish/virt-tar-in.pod:42
#: ../fish/virt-tar-out.pod:36 ../fuse/guestmount.pod:92
-#: ../inspector/virt-inspector.pod:55 ../rescue/virt-rescue.pod:84
+#: ../inspector/virt-inspector.pod:55 ../rescue/virt-rescue.pod:112
#: ../resize/virt-resize.pod:262 ../sparsify/virt-sparsify.pod:99
#: ../test-tool/libguestfs-test-tool.pod:36
#: ../tools/virt-list-filesystems.pl:53 ../tools/virt-list-partitions.pl:54
@@ -280,7 +280,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:95 ../cat/virt-ls.pod:265
#: ../clone/virt-sysprep.pod:46 ../df/virt-df.pod:63 ../edit/virt-edit.pod:66
#: ../fish/guestfish.pod:152 ../fuse/guestmount.pod:160
-#: ../inspector/virt-inspector.pod:59 ../rescue/virt-rescue.pod:88
+#: ../inspector/virt-inspector.pod:59 ../rescue/virt-rescue.pod:116
#: ../resize/virt-resize.pod:266 ../sparsify/virt-sparsify.pod:103
#: ../test-tool/libguestfs-test-tool.pod:40
#: ../tools/virt-list-filesystems.pl:61 ../tools/virt-list-partitions.pl:62
@@ -293,7 +293,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:95 ../cat/virt-cat.pod:68
#: ../cat/virt-filesystems.pod:97 ../cat/virt-ls.pod:267
#: ../clone/virt-sysprep.pod:48 ../df/virt-df.pod:65 ../edit/virt-edit.pod:68
-#: ../inspector/virt-inspector.pod:61 ../rescue/virt-rescue.pod:90
+#: ../inspector/virt-inspector.pod:61 ../rescue/virt-rescue.pod:118
#: ../tools/virt-list-filesystems.pl:63 ../tools/virt-list-partitions.pl:64
#: ../tools/virt-make-fs.pl:163 ../tools/virt-tar.pl:113
#: ../tools/virt-win-reg.pl:106
@@ -304,7 +304,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:97 ../cat/virt-cat.pod:70
#: ../cat/virt-filesystems.pod:99 ../cat/virt-ls.pod:269
#: ../clone/virt-sysprep.pod:50 ../df/virt-df.pod:67 ../edit/virt-edit.pod:70
-#: ../inspector/virt-inspector.pod:63 ../rescue/virt-rescue.pod:92
+#: ../inspector/virt-inspector.pod:63 ../rescue/virt-rescue.pod:120
msgid "B<-a> file"
msgstr ""
@@ -312,7 +312,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:99 ../cat/virt-cat.pod:72
#: ../cat/virt-filesystems.pod:101 ../cat/virt-ls.pod:271
#: ../clone/virt-sysprep.pod:52 ../df/virt-df.pod:69 ../edit/virt-edit.pod:72
-#: ../inspector/virt-inspector.pod:65 ../rescue/virt-rescue.pod:94
+#: ../inspector/virt-inspector.pod:65 ../rescue/virt-rescue.pod:122
msgid "B<--add> file"
msgstr ""
@@ -326,7 +326,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:107 ../cat/virt-ls.pod:277
#: ../clone/virt-sysprep.pod:56 ../df/virt-df.pod:75 ../edit/virt-edit.pod:78
#: ../fish/guestfish.pod:174 ../fuse/guestmount.pod:102
-#: ../inspector/virt-inspector.pod:71 ../rescue/virt-rescue.pod:100
+#: ../inspector/virt-inspector.pod:71 ../rescue/virt-rescue.pod:128
msgid ""
"The format of the disk image is auto-detected. To override this and force a "
"particular format use the I<--format=..> option."
@@ -336,7 +336,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:106 ../cat/virt-cat.pod:81
#: ../cat/virt-filesystems.pod:125 ../cat/virt-ls.pod:291
#: ../clone/virt-sysprep.pod:59 ../df/virt-df.pod:78
-#: ../rescue/virt-rescue.pod:107
+#: ../rescue/virt-rescue.pod:135
msgid "B<-c> URI"
msgstr ""
@@ -344,7 +344,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:108 ../cat/virt-cat.pod:83
#: ../cat/virt-filesystems.pod:127 ../cat/virt-ls.pod:293
#: ../clone/virt-sysprep.pod:61 ../df/virt-df.pod:80
-#: ../rescue/virt-rescue.pod:109
+#: ../rescue/virt-rescue.pod:137
msgid "B<--connect> URI"
msgstr ""
@@ -352,7 +352,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:110 ../cat/virt-cat.pod:85
#: ../cat/virt-filesystems.pod:129 ../cat/virt-ls.pod:295
#: ../clone/virt-sysprep.pod:63 ../df/virt-df.pod:82 ../edit/virt-edit.pod:99
-#: ../inspector/virt-inspector.pod:78 ../rescue/virt-rescue.pod:111
+#: ../inspector/virt-inspector.pod:78 ../rescue/virt-rescue.pod:139
#: ../tools/virt-list-filesystems.pl:81 ../tools/virt-list-partitions.pl:82
#: ../tools/virt-tar.pl:131 ../tools/virt-win-reg.pl:132
msgid ""
@@ -364,7 +364,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:113 ../cat/virt-cat.pod:88
#: ../cat/virt-filesystems.pod:132 ../cat/virt-ls.pod:298
#: ../clone/virt-sysprep.pod:66 ../df/virt-df.pod:85
-#: ../rescue/virt-rescue.pod:114
+#: ../rescue/virt-rescue.pod:142
msgid ""
"If you specify guest block devices directly (I<-a>), then libvirt is not "
"used at all."
@@ -374,7 +374,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:116 ../cat/virt-cat.pod:91
#: ../cat/virt-filesystems.pod:141 ../cat/virt-ls.pod:307
#: ../clone/virt-sysprep.pod:69 ../df/virt-df.pod:94 ../edit/virt-edit.pod:105
-#: ../inspector/virt-inspector.pod:85 ../rescue/virt-rescue.pod:117
+#: ../inspector/virt-inspector.pod:85 ../rescue/virt-rescue.pod:145
msgid "B<-d> guest"
msgstr ""
@@ -382,7 +382,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:118 ../cat/virt-cat.pod:93
#: ../cat/virt-filesystems.pod:143 ../cat/virt-ls.pod:309
#: ../clone/virt-sysprep.pod:71 ../df/virt-df.pod:96 ../edit/virt-edit.pod:107
-#: ../inspector/virt-inspector.pod:87 ../rescue/virt-rescue.pod:119
+#: ../inspector/virt-inspector.pod:87 ../rescue/virt-rescue.pod:147
msgid "B<--domain> guest"
msgstr ""
@@ -390,7 +390,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:120 ../cat/virt-cat.pod:95
#: ../cat/virt-filesystems.pod:145 ../cat/virt-ls.pod:311
#: ../clone/virt-sysprep.pod:73 ../df/virt-df.pod:98 ../edit/virt-edit.pod:109
-#: ../inspector/virt-inspector.pod:89 ../rescue/virt-rescue.pod:121
+#: ../inspector/virt-inspector.pod:89 ../rescue/virt-rescue.pod:149
msgid ""
"Add all the disks from the named libvirt guest. Domain UUIDs can be used "
"instead of names."
@@ -401,7 +401,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:170 ../cat/virt-ls.pod:328
#: ../clone/virt-sysprep.pod:95 ../df/virt-df.pod:101
#: ../fish/guestfish.pod:233 ../fuse/guestmount.pod:142
-#: ../inspector/virt-inspector.pod:99 ../rescue/virt-rescue.pod:124
+#: ../inspector/virt-inspector.pod:99 ../rescue/virt-rescue.pod:152
msgid "B<--format=raw|qcow2|..>"
msgstr ""
@@ -411,7 +411,7 @@ msgstr ""
#: ../clone/virt-sysprep.pod:97 ../df/virt-df.pod:103
#: ../edit/virt-edit.pod:134 ../fish/guestfish.pod:235
#: ../fuse/guestmount.pod:144 ../inspector/virt-inspector.pod:101
-#: ../rescue/virt-rescue.pod:126
+#: ../rescue/virt-rescue.pod:154
msgid "B<--format>"
msgstr ""
@@ -420,7 +420,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:174 ../cat/virt-ls.pod:332
#: ../clone/virt-sysprep.pod:99 ../df/virt-df.pod:105
#: ../edit/virt-edit.pod:136 ../fish/guestfish.pod:237
-#: ../fuse/guestmount.pod:146 ../rescue/virt-rescue.pod:128
+#: ../fuse/guestmount.pod:146 ../rescue/virt-rescue.pod:156
msgid ""
"The default for the I<-a> option is to auto-detect the format of the disk "
"image. Using this forces the disk format for I<-a> options which follow on "
@@ -434,7 +434,7 @@ msgstr ""
#: ../clone/virt-sysprep.pod:104 ../df/virt-df.pod:110
#: ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242
#: ../fish/guestfish.pod:673 ../inspector/virt-inspector.pod:336
-#: ../rescue/virt-rescue.pod:133 ../src/guestfs.pod:2877
+#: ../rescue/virt-rescue.pod:161 ../src/guestfs.pod:2877
msgid "For example:"
msgstr ""
@@ -451,7 +451,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:183 ../cat/virt-ls.pod:341
#: ../clone/virt-sysprep.pod:108 ../df/virt-df.pod:114
#: ../edit/virt-edit.pod:145 ../fish/guestfish.pod:246
-#: ../rescue/virt-rescue.pod:137
+#: ../rescue/virt-rescue.pod:165
msgid "forces raw format (no auto-detection) for C<disk.img>."
msgstr ""
@@ -468,7 +468,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:187 ../cat/virt-ls.pod:345
#: ../clone/virt-sysprep.pod:112 ../df/virt-df.pod:118
#: ../edit/virt-edit.pod:149 ../fish/guestfish.pod:250
-#: ../rescue/virt-rescue.pod:141
+#: ../rescue/virt-rescue.pod:169
msgid ""
"forces raw format (no auto-detection) for C<disk.img> and reverts to auto-"
"detection for C<another.img>."
@@ -478,7 +478,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:143 ../cat/virt-cat.pod:125
#: ../cat/virt-filesystems.pod:190 ../cat/virt-ls.pod:348
#: ../clone/virt-sysprep.pod:115 ../df/virt-df.pod:121
-#: ../edit/virt-edit.pod:152 ../rescue/virt-rescue.pod:144
+#: ../edit/virt-edit.pod:152 ../rescue/virt-rescue.pod:172
msgid ""
"If you have untrusted raw-format guest disk images, you should use this "
"option to specify the disk format. This avoids a possible security problem "
@@ -510,7 +510,7 @@ msgstr ""
#: ../clone/virt-sysprep.pod:138 ../df/virt-df.pod:173
#: ../edit/virt-edit.pod:161 ../fish/guestfish.pod:390
#: ../fuse/guestmount.pod:266 ../inspector/virt-inspector.pod:119
-#: ../rescue/virt-rescue.pod:182 ../sparsify/virt-sparsify.pod:159
+#: ../rescue/virt-rescue.pod:219 ../sparsify/virt-sparsify.pod:159
msgid "B<-v>"
msgstr ""
@@ -520,7 +520,7 @@ msgstr ""
#: ../clone/virt-sysprep.pod:140 ../df/virt-df.pod:175
#: ../edit/virt-edit.pod:163 ../fish/guestfish.pod:392
#: ../fuse/guestmount.pod:268 ../inspector/virt-inspector.pod:121
-#: ../rescue/virt-rescue.pod:184 ../sparsify/virt-sparsify.pod:161
+#: ../rescue/virt-rescue.pod:221 ../sparsify/virt-sparsify.pod:161
msgid "B<--verbose>"
msgstr ""
@@ -529,7 +529,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:265 ../cat/virt-ls.pod:429
#: ../clone/virt-sysprep.pod:142 ../df/virt-df.pod:177
#: ../edit/virt-edit.pod:165 ../inspector/virt-inspector.pod:123
-#: ../rescue/virt-rescue.pod:186 ../sparsify/virt-sparsify.pod:163
+#: ../rescue/virt-rescue.pod:223 ../sparsify/virt-sparsify.pod:163
msgid "Enable verbose messages for debugging."
msgstr ""
@@ -539,7 +539,7 @@ msgstr ""
#: ../clone/virt-sysprep.pod:144 ../df/virt-df.pod:179
#: ../edit/virt-edit.pod:167 ../fish/guestfish.pod:397
#: ../fuse/guestmount.pod:272 ../inspector/virt-inspector.pod:125
-#: ../rescue/virt-rescue.pod:188 ../resize/virt-resize.pod:561
+#: ../rescue/virt-rescue.pod:225 ../resize/virt-resize.pod:561
#: ../sparsify/virt-sparsify.pod:165
msgid "B<-V>"
msgstr ""
@@ -550,7 +550,7 @@ msgstr ""
#: ../clone/virt-sysprep.pod:146 ../df/virt-df.pod:181
#: ../edit/virt-edit.pod:169 ../fish/guestfish.pod:399
#: ../fuse/guestmount.pod:274 ../inspector/virt-inspector.pod:127
-#: ../rescue/virt-rescue.pod:190 ../resize/virt-resize.pod:563
+#: ../rescue/virt-rescue.pod:227 ../resize/virt-resize.pod:563
#: ../sparsify/virt-sparsify.pod:167 ../tools/virt-list-filesystems.pl:69
#: ../tools/virt-list-partitions.pl:70 ../tools/virt-make-fs.pl:169
#: ../tools/virt-tar.pl:119 ../tools/virt-win-reg.pl:112
@@ -562,7 +562,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:271 ../cat/virt-ls.pod:435
#: ../clone/virt-sysprep.pod:148 ../df/virt-df.pod:183
#: ../edit/virt-edit.pod:171 ../inspector/virt-inspector.pod:129
-#: ../rescue/virt-rescue.pod:192 ../resize/virt-resize.pod:565
+#: ../rescue/virt-rescue.pod:229 ../resize/virt-resize.pod:565
#: ../sparsify/virt-sparsify.pod:169 ../tools/virt-list-filesystems.pl:71
#: ../tools/virt-list-partitions.pl:72 ../tools/virt-make-fs.pl:171
#: ../tools/virt-tar.pl:121 ../tools/virt-win-reg.pl:114
@@ -575,7 +575,7 @@ msgstr ""
#: ../clone/virt-sysprep.pod:150 ../df/virt-df.pod:185
#: ../edit/virt-edit.pod:173 ../fish/guestfish.pod:412
#: ../fuse/guestmount.pod:287 ../inspector/virt-inspector.pod:131
-#: ../rescue/virt-rescue.pod:203 ../sparsify/virt-sparsify.pod:171
+#: ../rescue/virt-rescue.pod:240 ../sparsify/virt-sparsify.pod:171
#: ../tools/virt-tar.pl:158
msgid "B<-x>"
msgstr ""
@@ -585,7 +585,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:283 ../cat/virt-ls.pod:439
#: ../clone/virt-sysprep.pod:152 ../df/virt-df.pod:187
#: ../edit/virt-edit.pod:175 ../inspector/virt-inspector.pod:133
-#: ../rescue/virt-rescue.pod:205 ../sparsify/virt-sparsify.pod:173
+#: ../rescue/virt-rescue.pod:242 ../sparsify/virt-sparsify.pod:173
msgid "Enable tracing of libguestfs API calls."
msgstr ""
@@ -861,7 +861,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:373 ../cat/virt-ls.pod:483
#: ../clone/virt-sysprep.pod:475 ../df/virt-df.pod:215
#: ../edit/virt-edit.pod:342 ../inspector/virt-inspector.pod:352
-#: ../rescue/virt-rescue.pod:266 ../resize/virt-resize.pod:676
+#: ../rescue/virt-rescue.pod:303 ../resize/virt-resize.pod:676
#: ../tools/virt-list-filesystems.pl:188 ../tools/virt-list-partitions.pl:258
#: ../tools/virt-make-fs.pl:550 ../tools/virt-tar.pl:289
#: ../tools/virt-win-reg.pl:744
@@ -873,7 +873,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:375 ../cat/virt-ls.pod:485
#: ../clone/virt-sysprep.pod:477 ../df/virt-df.pod:217
#: ../edit/virt-edit.pod:344 ../inspector/virt-inspector.pod:354
-#: ../rescue/virt-rescue.pod:268 ../resize/virt-resize.pod:678
+#: ../rescue/virt-rescue.pod:305 ../resize/virt-resize.pod:678
#: ../tools/virt-list-filesystems.pl:190 ../tools/virt-list-partitions.pl:260
#: ../tools/virt-make-fs.pl:552 ../tools/virt-tar.pl:291
#: ../tools/virt-win-reg.pl:752
@@ -1037,7 +1037,7 @@ msgstr ""
#: ../fish/virt-tar-out.pod:41 ../fuse/guestmount.pod:317
#: ../inspector/virt-inspector.pod:380 ../java/examples/guestfs-java.pod:45
#: ../ocaml/examples/guestfs-ocaml.pod:78 ../perl/examples/guestfs-perl.pod:39
-#: ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:288
+#: ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:325
#: ../resize/virt-resize.pod:688 ../ruby/examples/guestfs-ruby.pod:36
#: ../sparsify/virt-sparsify.pod:251 ../src/guestfs.pod:3270
#: ../test-tool/libguestfs-test-tool.pod:100
@@ -1058,7 +1058,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:361 ../cat/virt-cat.pod:252
#: ../cat/virt-filesystems.pod:396 ../cat/virt-ls.pod:507
#: ../clone/virt-sysprep.pod:501 ../df/virt-df.pod:235
-#: ../edit/virt-edit.pod:368 ../rescue/virt-rescue.pod:296
+#: ../edit/virt-edit.pod:368 ../rescue/virt-rescue.pod:334
#: ../resize/virt-resize.pod:711 ../sparsify/virt-sparsify.pod:264
#: ../tools/virt-list-filesystems.pl:208 ../tools/virt-list-partitions.pl:277
#: ../tools/virt-make-fs.pl:582 ../tools/virt-tar.pl:311
@@ -1071,7 +1071,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:398 ../cat/virt-ls.pod:509
#: ../clone/virt-sysprep.pod:503 ../df/virt-df.pod:237
#: ../edit/virt-edit.pod:370 ../inspector/virt-inspector.pod:395
-#: ../rescue/virt-rescue.pod:298 ../resize/virt-resize.pod:713
+#: ../rescue/virt-rescue.pod:336 ../resize/virt-resize.pod:713
#: ../sparsify/virt-sparsify.pod:266 ../tools/virt-list-filesystems.pl:210
#: ../tools/virt-list-partitions.pl:279 ../tools/virt-make-fs.pl:584
#: ../tools/virt-tar.pl:313 ../tools/virt-win-reg.pl:785
@@ -1089,7 +1089,7 @@ msgstr ""
#: ../fish/virt-tar-out.pod:55 ../fuse/guestmount.pod:332
#: ../inspector/virt-inspector.pod:403 ../java/examples/guestfs-java.pod:62
#: ../ocaml/examples/guestfs-ocaml.pod:95 ../perl/examples/guestfs-perl.pod:56
-#: ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:300
+#: ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:338
#: ../resize/virt-resize.pod:715 ../ruby/examples/guestfs-ruby.pod:52
#: ../sparsify/virt-sparsify.pod:268 ../src/guestfs.pod:3352
#: ../test-tool/libguestfs-test-tool.pod:110
@@ -1113,7 +1113,7 @@ msgstr ""
#: ../fish/virt-copy-in.pod:69 ../fish/virt-copy-out.pod:58
#: ../fish/virt-tar-in.pod:67 ../fish/virt-tar-out.pod:60
#: ../fuse/guestmount.pod:337 ../inspector/virt-inspector.pod:407
-#: ../rescue/virt-rescue.pod:304 ../resize/virt-resize.pod:719
+#: ../rescue/virt-rescue.pod:342 ../resize/virt-resize.pod:719
#: ../sparsify/virt-sparsify.pod:272 ../test-tool/libguestfs-test-tool.pod:115
#: ../tools/virt-list-filesystems.pl:216 ../tools/virt-list-partitions.pl:285
#: ../tools/virt-make-fs.pl:590 ../tools/virt-tar.pl:319
@@ -1133,7 +1133,7 @@ msgstr ""
#: ../fish/virt-copy-in.pod:74 ../fish/virt-copy-out.pod:63
#: ../fish/virt-tar-in.pod:72 ../fish/virt-tar-out.pod:65
#: ../fuse/guestmount.pod:342 ../inspector/virt-inspector.pod:412
-#: ../rescue/virt-rescue.pod:309 ../resize/virt-resize.pod:724
+#: ../rescue/virt-rescue.pod:347 ../resize/virt-resize.pod:724
#: ../sparsify/virt-sparsify.pod:277 ../test-tool/libguestfs-test-tool.pod:120
#: ../tools/virt-list-filesystems.pl:221 ../tools/virt-list-partitions.pl:290
#: ../tools/virt-make-fs.pl:595 ../tools/virt-tar.pl:324
@@ -1153,7 +1153,7 @@ msgstr ""
#: ../fish/virt-copy-in.pod:79 ../fish/virt-copy-out.pod:68
#: ../fish/virt-tar-in.pod:77 ../fish/virt-tar-out.pod:70
#: ../fuse/guestmount.pod:347 ../inspector/virt-inspector.pod:417
-#: ../rescue/virt-rescue.pod:314 ../resize/virt-resize.pod:729
+#: ../rescue/virt-rescue.pod:352 ../resize/virt-resize.pod:729
#: ../sparsify/virt-sparsify.pod:282 ../test-tool/libguestfs-test-tool.pod:125
#: ../tools/virt-list-filesystems.pl:226 ../tools/virt-list-partitions.pl:295
#: ../tools/virt-make-fs.pl:600 ../tools/virt-tar.pl:329
@@ -1326,7 +1326,7 @@ msgstr ""
#. type: textblock
#: ../cat/virt-cat.pod:74 ../cat/virt-filesystems.pod:103
#: ../cat/virt-ls.pod:273 ../df/virt-df.pod:71 ../edit/virt-edit.pod:74
-#: ../inspector/virt-inspector.pod:67 ../rescue/virt-rescue.pod:96
+#: ../inspector/virt-inspector.pod:67 ../rescue/virt-rescue.pod:124
msgid ""
"Add I<file> which should be a disk image from a virtual machine. If the "
"virtual machine has multiple block devices, you must supply all of them with "
@@ -1383,7 +1383,7 @@ msgstr ""
#. type: =head1
#: ../cat/virt-cat.pod:152 ../cat/virt-ls.pod:443 ../edit/virt-edit.pod:179
-#: ../inspector/virt-inspector.pod:137 ../rescue/virt-rescue.pod:209
+#: ../inspector/virt-inspector.pod:137 ../rescue/virt-rescue.pod:246
msgid "OLD-STYLE COMMAND LINE ARGUMENTS"
msgstr ""
@@ -1402,7 +1402,7 @@ msgstr ""
#. type: textblock
#: ../cat/virt-cat.pod:158 ../cat/virt-ls.pod:449 ../edit/virt-edit.pod:185
-#: ../inspector/virt-inspector.pod:143 ../rescue/virt-rescue.pod:215
+#: ../inspector/virt-inspector.pod:143 ../rescue/virt-rescue.pod:252
msgid "or"
msgstr ""
@@ -1416,7 +1416,7 @@ msgstr ""
#. type: textblock
#: ../cat/virt-cat.pod:162 ../cat/virt-ls.pod:453 ../edit/virt-edit.pod:189
-#: ../inspector/virt-inspector.pod:147 ../rescue/virt-rescue.pod:219
+#: ../inspector/virt-inspector.pod:147 ../rescue/virt-rescue.pod:256
msgid ""
"whereas in this version you should use I<-a> or I<-d> respectively to avoid "
"the confusing case where a disk image might have the same name as a guest."
@@ -1424,7 +1424,7 @@ msgstr ""
#. type: textblock
#: ../cat/virt-cat.pod:166 ../cat/virt-ls.pod:457 ../edit/virt-edit.pod:193
-#: ../inspector/virt-inspector.pod:151 ../rescue/virt-rescue.pod:223
+#: ../inspector/virt-inspector.pod:151 ../rescue/virt-rescue.pod:260
msgid "For compatibility the old style is still supported."
msgstr ""
@@ -2256,7 +2256,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-ls.pod:13 ../df/virt-df.pod:15 ../rescue/virt-rescue.pod:13
+#: ../cat/virt-ls.pod:13 ../df/virt-df.pod:15 ../rescue/virt-rescue.pod:15
msgid "Old style:"
msgstr ""
@@ -2984,7 +2984,7 @@ msgstr ""
#. type: textblock
#: ../cat/virt-ls.pod:513 ../df/virt-df.pod:241 ../edit/virt-edit.pod:374
-#: ../rescue/virt-rescue.pod:302
+#: ../rescue/virt-rescue.pod:340
msgid "Copyright (C) 2009-2011 Red Hat Inc."
msgstr ""
@@ -4048,7 +4048,7 @@ msgstr ""
#. type: =head1
#: ../edit/virt-edit.pod:21 ../fish/guestfish.pod:23
#: ../fish/virt-copy-in.pod:13 ../fish/virt-tar-in.pod:15
-#: ../fuse/guestmount.pod:15 ../rescue/virt-rescue.pod:19
+#: ../fuse/guestmount.pod:15 ../rescue/virt-rescue.pod:21
#: ../tools/virt-tar.pl:64 ../tools/virt-win-reg.pl:51
msgid "WARNING"
msgstr ""
@@ -4516,7 +4516,7 @@ msgstr ""
#. type: =head1
#: ../edit/virt-edit.pod:329 ../fish/guestfish.pod:1119
-#: ../rescue/virt-rescue.pod:261 ../sparsify/virt-sparsify.pod:232
+#: ../rescue/virt-rescue.pod:298 ../sparsify/virt-sparsify.pod:232
#: ../src/guestfs.pod:3209 ../test-tool/libguestfs-test-tool.pod:95
msgid "ENVIRONMENT VARIABLES"
msgstr ""
@@ -18846,13 +18846,13 @@ msgstr ""
#. type: =item
#: ../fish/guestfish.pod:369 ../fuse/guestmount.pod:248
-#: ../rescue/virt-rescue.pod:161
+#: ../rescue/virt-rescue.pod:189
msgid "B<-r>"
msgstr ""
#. type: =item
#: ../fish/guestfish.pod:371 ../fuse/guestmount.pod:250
-#: ../rescue/virt-rescue.pod:163
+#: ../rescue/virt-rescue.pod:191
msgid "B<--ro>"
msgstr ""
@@ -18864,7 +18864,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:376 ../rescue/virt-rescue.pod:167
+#: ../fish/guestfish.pod:376 ../rescue/virt-rescue.pod:195
msgid ""
"The option must always be used if the disk image or virtual machine might be "
"running, and is generally recommended in cases where you don't need write "
@@ -18886,7 +18886,7 @@ msgstr ""
#. type: =item
#: ../fish/guestfish.pod:386 ../fuse/guestmount.pod:262
-#: ../rescue/virt-rescue.pod:173
+#: ../rescue/virt-rescue.pod:201
msgid "B<--selinux>"
msgstr ""
@@ -18908,13 +18908,13 @@ msgstr ""
#. type: =item
#: ../fish/guestfish.pod:403 ../fuse/guestmount.pod:278
-#: ../rescue/virt-rescue.pod:194
+#: ../rescue/virt-rescue.pod:231
msgid "B<-w>"
msgstr ""
#. type: =item
#: ../fish/guestfish.pod:405 ../fuse/guestmount.pod:280
-#: ../rescue/virt-rescue.pod:196
+#: ../rescue/virt-rescue.pod:233
msgid "B<--rw>"
msgstr ""
@@ -20705,25 +20705,25 @@ msgstr ""
#. type: =head1
#: ../fish/guestfish.pod:1209 ../fuse/guestmount.pod:297
-#: ../rescue/virt-rescue.pod:273
+#: ../rescue/virt-rescue.pod:310
msgid "FILES"
msgstr ""
#. type: =item
#: ../fish/guestfish.pod:1213 ../fuse/guestmount.pod:301
-#: ../rescue/virt-rescue.pod:277
+#: ../rescue/virt-rescue.pod:314
msgid "$HOME/.libguestfs-tools.rc"
msgstr ""
#. type: =item
#: ../fish/guestfish.pod:1215 ../fuse/guestmount.pod:303
-#: ../rescue/virt-rescue.pod:279
+#: ../rescue/virt-rescue.pod:316
msgid "/etc/libguestfs-tools.conf"
msgstr ""
#. type: textblock
#: ../fish/guestfish.pod:1217 ../fuse/guestmount.pod:305
-#: ../rescue/virt-rescue.pod:281
+#: ../rescue/virt-rescue.pod:318
msgid ""
"This configuration file controls the default read-only or read-write mode "
"(I<--ro> or I<--rw>)."
@@ -21329,7 +21329,7 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../fuse/guestmount.pod:73 ../rescue/virt-rescue.pod:68
+#: ../fuse/guestmount.pod:73 ../rescue/virt-rescue.pod:96
#: ../resize/virt-resize.pod:621
msgid "NOTES"
msgstr ""
@@ -21547,7 +21547,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fuse/guestmount.pod:260 ../rescue/virt-rescue.pod:171
+#: ../fuse/guestmount.pod:260 ../rescue/virt-rescue.pod:199
msgid "See also L<guestfish(1)/OPENING DISKS FOR READ AND WRITE>."
msgstr ""
@@ -21568,7 +21568,7 @@ msgstr ""
#. type: textblock
#: ../fuse/guestmount.pod:285 ../fuse/guestmount.pod:308
-#: ../rescue/virt-rescue.pod:201 ../rescue/virt-rescue.pod:284
+#: ../rescue/virt-rescue.pod:238 ../rescue/virt-rescue.pod:321
msgid "See L<guestfish(1)/OPENING DISKS FOR READ AND WRITE>."
msgstr ""
@@ -22535,10 +22535,10 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:15
+#: ../rescue/virt-rescue.pod:13
#, no-wrap
msgid ""
-" virt-rescue [--options] domname\n"
+" virt-rescue --suggest (-d domname | -a disk.img ...)\n"
"\n"
msgstr ""
@@ -22546,12 +22546,20 @@ msgstr ""
#: ../rescue/virt-rescue.pod:17
#, no-wrap
msgid ""
+" virt-rescue [--options] domname\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:19
+#, no-wrap
+msgid ""
" virt-rescue [--options] disk.img [disk.img ...]\n"
"\n"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:21
+#: ../rescue/virt-rescue.pod:23
msgid ""
"You must I<not> use C<virt-rescue> on live virtual machines. Doing so will "
"probably result in disk corruption in the VM. C<virt-rescue> tries to stop "
@@ -22559,7 +22567,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:25
+#: ../rescue/virt-rescue.pod:27
msgid ""
"However if you use the I<--ro> (read only) option, then you can attach a "
"shell to a live virtual machine. The results might be strange or "
@@ -22567,7 +22575,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:31
+#: ../rescue/virt-rescue.pod:33
msgid ""
"virt-rescue is like a Rescue CD, but for virtual machines, and without the "
"need for a CD. virt-rescue gives you a rescue shell and some simple "
@@ -22576,14 +22584,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:36
+#: ../rescue/virt-rescue.pod:38
msgid ""
"You can run virt-rescue on any virtual machine known to libvirt, or directly "
"on disk image(s):"
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:39
+#: ../rescue/virt-rescue.pod:41
#, no-wrap
msgid ""
" virt-rescue -d GuestName\n"
@@ -22591,7 +22599,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:41
+#: ../rescue/virt-rescue.pod:43
#, no-wrap
msgid ""
" virt-rescue --ro -a /path/to/disk.img\n"
@@ -22599,7 +22607,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:43
+#: ../rescue/virt-rescue.pod:45
#, no-wrap
msgid ""
" virt-rescue -a /dev/sdc\n"
@@ -22607,12 +22615,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:45
+#: ../rescue/virt-rescue.pod:47
msgid "For live VMs you I<must> use the --ro option."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:47
+#: ../rescue/virt-rescue.pod:49
msgid ""
"When you run virt-rescue on a virtual machine or disk image, you are placed "
"in an interactive bash shell where you can use many ordinary Linux "
@@ -22622,34 +22630,98 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:54
+#: ../rescue/virt-rescue.pod:56
+msgid ""
+"You can get virt-rescue to suggest mount commands for you by using the I<--"
+"suggest> option (in another terminal):"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:59
+#, no-wrap
+msgid ""
+" $ virt-rescue --suggest -d Fedora15\n"
+" Inspecting the virtual machine or disk image ...\n"
+" \n"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:62
+#, no-wrap
+msgid ""
+" This disk contains one or more operating systems. You can use these\n"
+" mount commands in virt-rescue (at the ><rescue> prompt) to mount the\n"
+" filesystems.\n"
+" \n"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:66
+#, no-wrap
+msgid ""
+" # /dev/vg_f15x32/lv_root is the root of a linux operating system\n"
+" # type: linux, distro: fedora, version: 15.0\n"
+" # Fedora release 15 (Lovelock)\n"
+" \n"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:70
+#, no-wrap
+msgid ""
+" mount /dev/vg_f15x32/lv_root /sysroot/\n"
+" mount /dev/vda1 /sysroot/boot\n"
+" mount --bind /dev /sysroot/dev\n"
+" mount --bind /dev/pts /sysroot/dev/pts\n"
+" mount --bind /proc /sysroot/proc\n"
+" mount --bind /sys /sysroot/sys\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: ../rescue/virt-rescue.pod:77
msgid ""
-"In the example below, we list logical volumes, then choose one to mount "
-"under C</sysroot>:"
+"Another way is to list the logical volumes (with L<lvs(8)>) and partitions "
+"(with L<parted(8)>) and mount them by hand:"
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:57
+#: ../rescue/virt-rescue.pod:80
#, no-wrap
msgid ""
" ><rescue> lvs\n"
" LV VG Attr LSize Origin Snap% Move Log Copy% Convert\n"
-" lv_root vg_f11x64 -wi-a- 8.83G\n"
-" lv_swap vg_f11x64 -wi-a- 992.00M\n"
-" ><rescue> mount /dev/vg_f11x64/lv_root /sysroot\n"
+" lv_root vg_f15x32 -wi-a- 8.83G\n"
+" lv_swap vg_f15x32 -wi-a- 992.00M\n"
+" ><rescue> mount /dev/vg_f15x32/lv_root /sysroot\n"
+" ><rescue> mount /dev/vda1 /sysroot/boot\n"
" ><rescue> ls /sysroot\n"
"\n"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:64
+#: ../rescue/virt-rescue.pod:88
msgid ""
-"If you don't know what filesystems are available on the virtual machine then "
-"you can use commands such as L<parted(8)> and L<lvs(8)> to find out."
+"Another command to list available filesystems is L<virt-filesystems(1)>."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:70
+#: ../rescue/virt-rescue.pod:91
+msgid ""
+"To run commands in a Linux guest (for example, grub), you should chroot into "
+"the /sysroot directory first:"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:94
+#, no-wrap
+msgid ""
+" ><rescue> chroot /sysroot\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: ../rescue/virt-rescue.pod:98
msgid ""
"Virt-rescue can be used on I<any> disk image file or device, not just a "
"virtual machine. For example you can use it on a blank file if you want to "
@@ -22659,14 +22731,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:76
+#: ../rescue/virt-rescue.pod:104
msgid ""
"Virt-rescue does not require root. You only need to run it as root if you "
"need root to open the disk image."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:79
+#: ../rescue/virt-rescue.pod:107
msgid ""
"This tool is just designed for quick interactive hacking on a virtual "
"machine. For more structured access to a virtual machine disk image, you "
@@ -22675,17 +22747,17 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:103
+#: ../rescue/virt-rescue.pod:131
msgid "B<--append kernelopts>"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:105
+#: ../rescue/virt-rescue.pod:133
msgid "Pass additional options to the rescue kernel."
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:135
+#: ../rescue/virt-rescue.pod:163
#, no-wrap
msgid ""
" virt-rescue --format=raw -a disk.img\n"
@@ -22693,7 +22765,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:139
+#: ../rescue/virt-rescue.pod:167
#, no-wrap
msgid ""
" virt-rescue --format=raw -a disk.img --format -a another.img\n"
@@ -22701,17 +22773,17 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:148
+#: ../rescue/virt-rescue.pod:176
msgid "B<-m MB>"
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:150
+#: ../rescue/virt-rescue.pod:178
msgid "B<--memsize MB>"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:152
+#: ../rescue/virt-rescue.pod:180
msgid ""
"Change the amount of memory allocated to the rescue system. The default is "
"set by libguestfs and is small but adequate for running system tools. The "
@@ -22720,51 +22792,71 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:157
+#: ../rescue/virt-rescue.pod:185
msgid "B<--network>"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:159
+#: ../rescue/virt-rescue.pod:187
msgid "Enable QEMU user networking in the guest. See L</NETWORK>."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:165
+#: ../rescue/virt-rescue.pod:193
msgid "Open the image read-only."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:175
+#: ../rescue/virt-rescue.pod:203
msgid ""
"Enable SELinux in the rescue appliance. You should read L<guestfs(3)/"
"SELINUX> before using this option."
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:178
+#: ../rescue/virt-rescue.pod:206
msgid "B<--smp> N"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:180
+#: ../rescue/virt-rescue.pod:208
msgid "Enable N E<ge> 2 virtual CPUs in the rescue appliance."
msgstr ""
+#. type: =item
+#: ../rescue/virt-rescue.pod:210
+msgid "B<--suggest>"
+msgstr ""
+
+#. type: textblock
+#: ../rescue/virt-rescue.pod:212
+msgid ""
+"Inspect the disk image and suggest what mount commands should be used to "
+"mount the disks. You should use the I<--suggest> option in a second "
+"terminal, then paste the commands into another virt-rescue."
+msgstr ""
+
#. type: textblock
-#: ../rescue/virt-rescue.pod:198
+#: ../rescue/virt-rescue.pod:216
+msgid ""
+"This option implies I<--ro> and is safe to use even if the guest is up or if "
+"another virt-rescue is running."
+msgstr ""
+
+#. type: textblock
+#: ../rescue/virt-rescue.pod:235
msgid ""
"This changes the I<-a> and I<-d> options so that disks are added and mounts "
"are done read-write."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:211
+#: ../rescue/virt-rescue.pod:248
msgid "Previous versions of virt-rescue allowed you to write either:"
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:213
+#: ../rescue/virt-rescue.pod:250
#, no-wrap
msgid ""
" virt-rescue disk.img [disk.img ...]\n"
@@ -22772,7 +22864,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:217
+#: ../rescue/virt-rescue.pod:254
#, no-wrap
msgid ""
" virt-rescue guestname\n"
@@ -22780,12 +22872,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../rescue/virt-rescue.pod:225
+#: ../rescue/virt-rescue.pod:262
msgid "NETWORK"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:227
+#: ../rescue/virt-rescue.pod:264
msgid ""
"Adding the I<--network> option enables QEMU user networking in the rescue "
"appliance. There are some differences between user networking and ordinary "
@@ -22793,12 +22885,12 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:233
+#: ../rescue/virt-rescue.pod:270
msgid "ping does not work"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:235
+#: ../rescue/virt-rescue.pod:272
msgid ""
"Because the ICMP ECHO_REQUEST protocol generally requires root in order to "
"send the ping packets, and because virt-rescue must be able to run as non-"
@@ -22809,22 +22901,22 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:242
+#: ../rescue/virt-rescue.pod:279
msgid "cannot receive connections"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:244
+#: ../rescue/virt-rescue.pod:281
msgid "QEMU user networking cannot receive incoming connections."
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:246
+#: ../rescue/virt-rescue.pod:283
msgid "making TCP connections"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:248
+#: ../rescue/virt-rescue.pod:285
msgid ""
"The virt-rescue appliance needs to be small and so does not include many "
"network tools. In particular there is no L<telnet(1)> command. You can "
@@ -22833,7 +22925,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:253
+#: ../rescue/virt-rescue.pod:290
#, no-wrap
msgid ""
" exec 3<>/dev/tcp/redhat.com/80\n"
@@ -22843,22 +22935,22 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:257
+#: ../rescue/virt-rescue.pod:294
msgid "See L<bash(1)> for more details."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:263
+#: ../rescue/virt-rescue.pod:300
msgid ""
"Several environment variables affect virt-rescue. See L<guestfs(3)/"
"ENVIRONMENT VARIABLES> for the complete list."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:290
+#: ../rescue/virt-rescue.pod:327
msgid ""
-"L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-edit(1)>, L<http://"
-"libguestfs.org/>."
+"L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-edit(1)>, L<virt-"
+"filesystems(1)>, L<http://libguestfs.org/>."
msgstr ""
#. type: textblock
diff --git a/po-docs/ja/guestfish.1 b/po-docs/ja/guestfish.1
index 7933f3a..11ccf98 100644
--- a/po-docs/ja/guestfish.1
+++ b/po-docs/ja/guestfish.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "guestfish 1"
-.TH guestfish 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH guestfish 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/guestfs.3 b/po-docs/ja/guestfs.3
index 4594af4..0cfd369 100644
--- a/po-docs/ja/guestfs.3
+++ b/po-docs/ja/guestfs.3
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "guestfs 3"
-.TH guestfs 3 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH guestfs 3 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/guestmount.1 b/po-docs/ja/guestmount.1
index 69f48f3..04e0e0e 100644
--- a/po-docs/ja/guestmount.1
+++ b/po-docs/ja/guestmount.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "guestmount 1"
-.TH guestmount 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH guestmount 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/libguestfs-test-tool.1 b/po-docs/ja/libguestfs-test-tool.1
index 5f3d309..f580bfd 100644
--- a/po-docs/ja/libguestfs-test-tool.1
+++ b/po-docs/ja/libguestfs-test-tool.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "libguestfs-test-tool 1"
-.TH libguestfs-test-tool 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH libguestfs-test-tool 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-alignment-scan.1 b/po-docs/ja/virt-alignment-scan.1
index 7ab3e70..352fac1 100644
--- a/po-docs/ja/virt-alignment-scan.1
+++ b/po-docs/ja/virt-alignment-scan.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-alignment-scan 1"
-.TH virt-alignment-scan 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-alignment-scan 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-cat.1 b/po-docs/ja/virt-cat.1
index 2025916..d77d320 100644
--- a/po-docs/ja/virt-cat.1
+++ b/po-docs/ja/virt-cat.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-cat 1"
-.TH virt-cat 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-cat 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-copy-in.1 b/po-docs/ja/virt-copy-in.1
index 570d4d6..4bf44e4 100644
--- a/po-docs/ja/virt-copy-in.1
+++ b/po-docs/ja/virt-copy-in.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-copy-in 1"
-.TH virt-copy-in 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-copy-in 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-copy-out.1 b/po-docs/ja/virt-copy-out.1
index 01c8075..9d3e062 100644
--- a/po-docs/ja/virt-copy-out.1
+++ b/po-docs/ja/virt-copy-out.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-copy-out 1"
-.TH virt-copy-out 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-copy-out 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-df.1 b/po-docs/ja/virt-df.1
index bc3c850..be24757 100644
--- a/po-docs/ja/virt-df.1
+++ b/po-docs/ja/virt-df.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-df 1"
-.TH virt-df 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-df 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-edit.1 b/po-docs/ja/virt-edit.1
index 5684d3d..5a659c4 100644
--- a/po-docs/ja/virt-edit.1
+++ b/po-docs/ja/virt-edit.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-edit 1"
-.TH virt-edit 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-edit 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-filesystems.1 b/po-docs/ja/virt-filesystems.1
index 31b077d..8522fee 100644
--- a/po-docs/ja/virt-filesystems.1
+++ b/po-docs/ja/virt-filesystems.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-filesystems 1"
-.TH virt-filesystems 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-filesystems 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-inspector.1 b/po-docs/ja/virt-inspector.1
index 6167e5e..5ad177b 100644
--- a/po-docs/ja/virt-inspector.1
+++ b/po-docs/ja/virt-inspector.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-inspector 1"
-.TH virt-inspector 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-inspector 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-list-filesystems.1 b/po-docs/ja/virt-list-filesystems.1
index 24f1269..1400545 100644
--- a/po-docs/ja/virt-list-filesystems.1
+++ b/po-docs/ja/virt-list-filesystems.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-list-filesystems.pl 1"
-.TH virt-list-filesystems.pl 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-list-filesystems.pl 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-list-partitions.1 b/po-docs/ja/virt-list-partitions.1
index 87a0271..f6ff9d9 100644
--- a/po-docs/ja/virt-list-partitions.1
+++ b/po-docs/ja/virt-list-partitions.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-list-partitions.pl 1"
-.TH virt-list-partitions.pl 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-list-partitions.pl 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-ls.1 b/po-docs/ja/virt-ls.1
index 46fe852..6c5eb00 100644
--- a/po-docs/ja/virt-ls.1
+++ b/po-docs/ja/virt-ls.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-ls 1"
-.TH virt-ls 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-ls 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-make-fs.1 b/po-docs/ja/virt-make-fs.1
index af0e2bc..35b96d2 100644
--- a/po-docs/ja/virt-make-fs.1
+++ b/po-docs/ja/virt-make-fs.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-make-fs.pl 1"
-.TH virt-make-fs.pl 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-make-fs.pl 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-rescue.1 b/po-docs/ja/virt-rescue.1
index aa60adb..a093fa2 100644
--- a/po-docs/ja/virt-rescue.1
+++ b/po-docs/ja/virt-rescue.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-rescue 1"
-.TH virt-rescue 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-rescue 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -76,6 +76,8 @@ virt-rescue \- Run a rescue shell on a virtual machine
\& virt\-rescue [\-\-options] \-d domname
\&
\& virt\-rescue [\-\-options] \-a disk.img [\-a disk.img ...]
+\&
+\& virt\-rescue \-\-suggest (\-d domname | \-a disk.img ...)
.Ve
.PP
Old style:
@@ -120,20 +122,50 @@ commands. What you see in \f(CW\*(C`/\*(C'\fR (\f(CW\*(C`/bin\*(C'\fR, \f(CW\*(
appliance. You must mount the virtual machine's filesystems by hand. There
is an empty directory called \f(CW\*(C`/sysroot\*(C'\fR where you can mount filesystems.
.PP
-In the example below, we list logical volumes, then choose one to mount
-under \f(CW\*(C`/sysroot\*(C'\fR:
+You can get virt-rescue to suggest mount commands for you by using the
+\&\fI\-\-suggest\fR option (in another terminal):
+.PP
+.Vb 2
+\& $ virt\-rescue \-\-suggest \-d Fedora15
+\& Inspecting the virtual machine or disk image ...
+\&
+\& This disk contains one or more operating systems. You can use these
+\& mount commands in virt\-rescue (at the ><rescue> prompt) to mount the
+\& filesystems.
+\&
+\& # /dev/vg_f15x32/lv_root is the root of a linux operating system
+\& # type: linux, distro: fedora, version: 15.0
+\& # Fedora release 15 (Lovelock)
+\&
+\& mount /dev/vg_f15x32/lv_root /sysroot/
+\& mount /dev/vda1 /sysroot/boot
+\& mount \-\-bind /dev /sysroot/dev
+\& mount \-\-bind /dev/pts /sysroot/dev/pts
+\& mount \-\-bind /proc /sysroot/proc
+\& mount \-\-bind /sys /sysroot/sys
+.Ve
.PP
-.Vb 6
+Another way is to list the logical volumes (with \fIlvs\fR\|(8)) and partitions
+(with \fIparted\fR\|(8)) and mount them by hand:
+.PP
+.Vb 7
\& ><rescue> lvs
\& LV VG Attr LSize Origin Snap% Move Log Copy% Convert
-\& lv_root vg_f11x64 \-wi\-a\- 8.83G
-\& lv_swap vg_f11x64 \-wi\-a\- 992.00M
-\& ><rescue> mount /dev/vg_f11x64/lv_root /sysroot
+\& lv_root vg_f15x32 \-wi\-a\- 8.83G
+\& lv_swap vg_f15x32 \-wi\-a\- 992.00M
+\& ><rescue> mount /dev/vg_f15x32/lv_root /sysroot
+\& ><rescue> mount /dev/vda1 /sysroot/boot
\& ><rescue> ls /sysroot
.Ve
.PP
-If you don't know what filesystems are available on the virtual machine then
-you can use commands such as \fIparted\fR\|(8) and \fIlvs\fR\|(8) to find out.
+Another command to list available filesystems is \fIvirt\-filesystems\fR\|(1).
+.PP
+To run commands in a Linux guest (for example, grub), you should chroot into
+the /sysroot directory first:
+.PP
+.Vb 1
+\& ><rescue> chroot /sysroot
+.Ve
.SS "\s-1NOTES\s0"
.IX Subsection "NOTES"
Virt-rescue can be used on \fIany\fR disk image file or device, not just a
@@ -250,6 +282,14 @@ Enable SELinux in the rescue appliance. You should read
.IP "\fB\-\-smp\fR N" 4
.IX Item "--smp N"
Enable N ≥ 2 virtual CPUs in the rescue appliance.
+.IP "\fB\-\-suggest\fR" 4
+.IX Item "--suggest"
+Inspect the disk image and suggest what mount commands should be used to
+mount the disks. You should use the \fI\-\-suggest\fR option in a second
+terminal, then paste the commands into another virt-rescue.
+.Sp
+This option implies \fI\-\-ro\fR and is safe to use even if the guest is up or if
+another virt-rescue is running.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
@@ -351,7 +391,7 @@ See \*(L"\s-1OPENING\s0 \s-1DISKS\s0 \s-1FOR\s0 \s-1READ\s0 \s-1AND\s0 \s-1WRITE
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIguestfs\fR\|(3), \fIguestfish\fR\|(1), \fIvirt\-cat\fR\|(1), \fIvirt\-edit\fR\|(1),
-<http://libguestfs.org/>.
+\&\fIvirt\-filesystems\fR\|(1), <http://libguestfs.org/>.
.SH "AUTHOR"
.IX Header "AUTHOR"
Richard W.M. Jones <http://people.redhat.com/~rjones/>
diff --git a/po-docs/ja/virt-rescue.pod b/po-docs/ja/virt-rescue.pod
index 1fc0471..76bcd02 100644
--- a/po-docs/ja/virt-rescue.pod
+++ b/po-docs/ja/virt-rescue.pod
@@ -10,6 +10,8 @@ virt-rescue - Run a rescue shell on a virtual machine
virt-rescue [--options] -a disk.img [-a disk.img ...]
+ virt-rescue --suggest (-d domname | -a disk.img ...)
+
Old style:
virt-rescue [--options] domname
@@ -50,18 +52,44 @@ commands. What you see in C</> (C</bin>, C</lib> etc) is the rescue
appliance. You must mount the virtual machine's filesystems by hand. There
is an empty directory called C</sysroot> where you can mount filesystems.
-In the example below, we list logical volumes, then choose one to mount
-under C</sysroot>:
+You can get virt-rescue to suggest mount commands for you by using the
+I<--suggest> option (in another terminal):
+
+ $ virt-rescue --suggest -d Fedora15
+ Inspecting the virtual machine or disk image ...
+
+ This disk contains one or more operating systems. You can use these
+ mount commands in virt-rescue (at the ><rescue> prompt) to mount the
+ filesystems.
+
+ # /dev/vg_f15x32/lv_root is the root of a linux operating system
+ # type: linux, distro: fedora, version: 15.0
+ # Fedora release 15 (Lovelock)
+
+ mount /dev/vg_f15x32/lv_root /sysroot/
+ mount /dev/vda1 /sysroot/boot
+ mount --bind /dev /sysroot/dev
+ mount --bind /dev/pts /sysroot/dev/pts
+ mount --bind /proc /sysroot/proc
+ mount --bind /sys /sysroot/sys
+
+Another way is to list the logical volumes (with L<lvs(8)>) and partitions
+(with L<parted(8)>) and mount them by hand:
><rescue> lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
- lv_root vg_f11x64 -wi-a- 8.83G
- lv_swap vg_f11x64 -wi-a- 992.00M
- ><rescue> mount /dev/vg_f11x64/lv_root /sysroot
+ lv_root vg_f15x32 -wi-a- 8.83G
+ lv_swap vg_f15x32 -wi-a- 992.00M
+ ><rescue> mount /dev/vg_f15x32/lv_root /sysroot
+ ><rescue> mount /dev/vda1 /sysroot/boot
><rescue> ls /sysroot
-If you don't know what filesystems are available on the virtual machine then
-you can use commands such as L<parted(8)> and L<lvs(8)> to find out.
+Another command to list available filesystems is L<virt-filesystems(1)>.
+
+To run commands in a Linux guest (for example, grub), you should chroot into
+the /sysroot directory first:
+
+ ><rescue> chroot /sysroot
=head2 NOTES
@@ -177,6 +205,15 @@ L<guestfs(3)/SELINUX> before using this option.
Enable N E<ge> 2 virtual CPUs in the rescue appliance.
+=item B<--suggest>
+
+Inspect the disk image and suggest what mount commands should be used to
+mount the disks. You should use the I<--suggest> option in a second
+terminal, then paste the commands into another virt-rescue.
+
+This option implies I<--ro> and is safe to use even if the guest is up or if
+another virt-rescue is running.
+
=item B<-v>
=item B<--verbose>
@@ -285,7 +322,7 @@ See L<guestfish(1)/OPENING DISKS FOR READ AND WRITE>.
=head1 SEE ALSO
L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-edit(1)>,
-L<http://libguestfs.org/>.
+L<virt-filesystems(1)>, L<http://libguestfs.org/>.
=head1 AUTHOR
diff --git a/po-docs/ja/virt-resize.1 b/po-docs/ja/virt-resize.1
index 73d171e..7303688 100644
--- a/po-docs/ja/virt-resize.1
+++ b/po-docs/ja/virt-resize.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-resize 1"
-.TH virt-resize 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-resize 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-sparsify.1 b/po-docs/ja/virt-sparsify.1
index 29030d5..8d2591e 100644
--- a/po-docs/ja/virt-sparsify.1
+++ b/po-docs/ja/virt-sparsify.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-sparsify 1"
-.TH virt-sparsify 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-sparsify 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-sysprep.1 b/po-docs/ja/virt-sysprep.1
index 73e7caa..30c5551 100644
--- a/po-docs/ja/virt-sysprep.1
+++ b/po-docs/ja/virt-sysprep.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-sysprep 1"
-.TH virt-sysprep 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-sysprep 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-tar-in.1 b/po-docs/ja/virt-tar-in.1
index bfaf349..797fb9d 100644
--- a/po-docs/ja/virt-tar-in.1
+++ b/po-docs/ja/virt-tar-in.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-tar-in 1"
-.TH virt-tar-in 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-tar-in 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-tar-out.1 b/po-docs/ja/virt-tar-out.1
index adb437a..afd134c 100644
--- a/po-docs/ja/virt-tar-out.1
+++ b/po-docs/ja/virt-tar-out.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-tar-out 1"
-.TH virt-tar-out 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-tar-out 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-tar.1 b/po-docs/ja/virt-tar.1
index 83fc9e0..ae5f92c 100644
--- a/po-docs/ja/virt-tar.1
+++ b/po-docs/ja/virt-tar.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-tar.pl 1"
-.TH virt-tar.pl 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-tar.pl 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/ja/virt-win-reg.1 b/po-docs/ja/virt-win-reg.1
index c4832c4..25b9844 100644
--- a/po-docs/ja/virt-win-reg.1
+++ b/po-docs/ja/virt-win-reg.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-win-reg.pl 1"
-.TH virt-win-reg.pl 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-win-reg.pl 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/libguestfs-docs.pot b/po-docs/libguestfs-docs.pot
index e5c110d..7f99c0e 100644
--- a/po-docs/libguestfs-docs.pot
+++ b/po-docs/libguestfs-docs.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: libguestfs 1.15.0\n"
+"Project-Id-Version: libguestfs 1.15.1\n"
"Report-Msgid-Bugs-To: libguestfs at redhat.com\n"
-"POT-Creation-Date: 2011-10-27 16:05+0200\n"
+"POT-Creation-Date: 2011-11-01 14:20+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
@@ -49,7 +49,7 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../align/virt-alignment-scan.pod:13 ../cat/virt-cat.pod:19 ../cat/virt-filesystems.pod:13 ../cat/virt-ls.pod:19 ../clone/virt-sysprep.pod:13 ../df/virt-df.pod:21 ../edit/virt-edit.pod:27 ../erlang/examples/guestfs-erlang.pod:16 ../examples/guestfs-examples.pod:19 ../examples/guestfs-recipes.pod:18 ../fish/guestfish.pod:30 ../fish/virt-copy-in.pod:19 ../fish/virt-copy-out.pod:13 ../fish/virt-tar-in.pod:21 ../fish/virt-tar-out.pod:15 ../fuse/guestmount.pod:20 ../inspector/virt-inspector [...]
+#: ../align/virt-alignment-scan.pod:13 ../cat/virt-cat.pod:19 ../cat/virt-filesystems.pod:13 ../cat/virt-ls.pod:19 ../clone/virt-sysprep.pod:13 ../df/virt-df.pod:21 ../edit/virt-edit.pod:27 ../erlang/examples/guestfs-erlang.pod:16 ../examples/guestfs-examples.pod:19 ../examples/guestfs-recipes.pod:18 ../fish/guestfish.pod:30 ../fish/virt-copy-in.pod:19 ../fish/virt-copy-out.pod:13 ../fish/virt-tar-in.pod:21 ../fish/virt-tar-out.pod:15 ../fuse/guestmount.pod:20 ../inspector/virt-inspector [...]
msgid "DESCRIPTION"
msgstr ""
@@ -212,27 +212,27 @@ msgid "If you just want the exit code with no output, use the I<-q> option."
msgstr ""
#. type: =head1
-#: ../align/virt-alignment-scan.pod:89 ../cat/virt-cat.pod:62 ../cat/virt-filesystems.pod:91 ../cat/virt-ls.pod:261 ../clone/virt-sysprep.pod:42 ../df/virt-df.pod:59 ../edit/virt-edit.pod:62 ../fish/guestfish.pod:148 ../fish/virt-copy-in.pod:45 ../fish/virt-copy-out.pod:34 ../fish/virt-tar-in.pod:42 ../fish/virt-tar-out.pod:36 ../fuse/guestmount.pod:92 ../inspector/virt-inspector.pod:55 ../rescue/virt-rescue.pod:84 ../resize/virt-resize.pod:262 ../sparsify/virt-sparsify.pod:99 ../test-to [...]
+#: ../align/virt-alignment-scan.pod:89 ../cat/virt-cat.pod:62 ../cat/virt-filesystems.pod:91 ../cat/virt-ls.pod:261 ../clone/virt-sysprep.pod:42 ../df/virt-df.pod:59 ../edit/virt-edit.pod:62 ../fish/guestfish.pod:148 ../fish/virt-copy-in.pod:45 ../fish/virt-copy-out.pod:34 ../fish/virt-tar-in.pod:42 ../fish/virt-tar-out.pod:36 ../fuse/guestmount.pod:92 ../inspector/virt-inspector.pod:55 ../rescue/virt-rescue.pod:112 ../resize/virt-resize.pod:262 ../sparsify/virt-sparsify.pod:99 ../test-t [...]
msgid "OPTIONS"
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:93 ../cat/virt-cat.pod:66 ../cat/virt-filesystems.pod:95 ../cat/virt-ls.pod:265 ../clone/virt-sysprep.pod:46 ../df/virt-df.pod:63 ../edit/virt-edit.pod:66 ../fish/guestfish.pod:152 ../fuse/guestmount.pod:160 ../inspector/virt-inspector.pod:59 ../rescue/virt-rescue.pod:88 ../resize/virt-resize.pod:266 ../sparsify/virt-sparsify.pod:103 ../test-tool/libguestfs-test-tool.pod:40 ../tools/virt-list-filesystems.pl:61 ../tools/virt-list-partitions.pl:62 ../too [...]
+#: ../align/virt-alignment-scan.pod:93 ../cat/virt-cat.pod:66 ../cat/virt-filesystems.pod:95 ../cat/virt-ls.pod:265 ../clone/virt-sysprep.pod:46 ../df/virt-df.pod:63 ../edit/virt-edit.pod:66 ../fish/guestfish.pod:152 ../fuse/guestmount.pod:160 ../inspector/virt-inspector.pod:59 ../rescue/virt-rescue.pod:116 ../resize/virt-resize.pod:266 ../sparsify/virt-sparsify.pod:103 ../test-tool/libguestfs-test-tool.pod:40 ../tools/virt-list-filesystems.pl:61 ../tools/virt-list-partitions.pl:62 ../to [...]
msgid "B<--help>"
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:95 ../cat/virt-cat.pod:68 ../cat/virt-filesystems.pod:97 ../cat/virt-ls.pod:267 ../clone/virt-sysprep.pod:48 ../df/virt-df.pod:65 ../edit/virt-edit.pod:68 ../inspector/virt-inspector.pod:61 ../rescue/virt-rescue.pod:90 ../tools/virt-list-filesystems.pl:63 ../tools/virt-list-partitions.pl:64 ../tools/virt-make-fs.pl:163 ../tools/virt-tar.pl:113 ../tools/virt-win-reg.pl:106
+#: ../align/virt-alignment-scan.pod:95 ../cat/virt-cat.pod:68 ../cat/virt-filesystems.pod:97 ../cat/virt-ls.pod:267 ../clone/virt-sysprep.pod:48 ../df/virt-df.pod:65 ../edit/virt-edit.pod:68 ../inspector/virt-inspector.pod:61 ../rescue/virt-rescue.pod:118 ../tools/virt-list-filesystems.pl:63 ../tools/virt-list-partitions.pl:64 ../tools/virt-make-fs.pl:163 ../tools/virt-tar.pl:113 ../tools/virt-win-reg.pl:106
msgid "Display brief help."
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:97 ../cat/virt-cat.pod:70 ../cat/virt-filesystems.pod:99 ../cat/virt-ls.pod:269 ../clone/virt-sysprep.pod:50 ../df/virt-df.pod:67 ../edit/virt-edit.pod:70 ../inspector/virt-inspector.pod:63 ../rescue/virt-rescue.pod:92
+#: ../align/virt-alignment-scan.pod:97 ../cat/virt-cat.pod:70 ../cat/virt-filesystems.pod:99 ../cat/virt-ls.pod:269 ../clone/virt-sysprep.pod:50 ../df/virt-df.pod:67 ../edit/virt-edit.pod:70 ../inspector/virt-inspector.pod:63 ../rescue/virt-rescue.pod:120
msgid "B<-a> file"
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:99 ../cat/virt-cat.pod:72 ../cat/virt-filesystems.pod:101 ../cat/virt-ls.pod:271 ../clone/virt-sysprep.pod:52 ../df/virt-df.pod:69 ../edit/virt-edit.pod:72 ../inspector/virt-inspector.pod:65 ../rescue/virt-rescue.pod:94
+#: ../align/virt-alignment-scan.pod:99 ../cat/virt-cat.pod:72 ../cat/virt-filesystems.pod:101 ../cat/virt-ls.pod:271 ../clone/virt-sysprep.pod:52 ../df/virt-df.pod:69 ../edit/virt-edit.pod:72 ../inspector/virt-inspector.pod:65 ../rescue/virt-rescue.pod:122
msgid "B<--add> file"
msgstr ""
@@ -242,65 +242,65 @@ msgid "Add I<file> which should be a disk image from a virtual machine."
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:103 ../cat/virt-cat.pod:78 ../cat/virt-filesystems.pod:107 ../cat/virt-ls.pod:277 ../clone/virt-sysprep.pod:56 ../df/virt-df.pod:75 ../edit/virt-edit.pod:78 ../fish/guestfish.pod:174 ../fuse/guestmount.pod:102 ../inspector/virt-inspector.pod:71 ../rescue/virt-rescue.pod:100
+#: ../align/virt-alignment-scan.pod:103 ../cat/virt-cat.pod:78 ../cat/virt-filesystems.pod:107 ../cat/virt-ls.pod:277 ../clone/virt-sysprep.pod:56 ../df/virt-df.pod:75 ../edit/virt-edit.pod:78 ../fish/guestfish.pod:174 ../fuse/guestmount.pod:102 ../inspector/virt-inspector.pod:71 ../rescue/virt-rescue.pod:128
msgid ""
"The format of the disk image is auto-detected. To override this and force a "
"particular format use the I<--format=..> option."
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:106 ../cat/virt-cat.pod:81 ../cat/virt-filesystems.pod:125 ../cat/virt-ls.pod:291 ../clone/virt-sysprep.pod:59 ../df/virt-df.pod:78 ../rescue/virt-rescue.pod:107
+#: ../align/virt-alignment-scan.pod:106 ../cat/virt-cat.pod:81 ../cat/virt-filesystems.pod:125 ../cat/virt-ls.pod:291 ../clone/virt-sysprep.pod:59 ../df/virt-df.pod:78 ../rescue/virt-rescue.pod:135
msgid "B<-c> URI"
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:108 ../cat/virt-cat.pod:83 ../cat/virt-filesystems.pod:127 ../cat/virt-ls.pod:293 ../clone/virt-sysprep.pod:61 ../df/virt-df.pod:80 ../rescue/virt-rescue.pod:109
+#: ../align/virt-alignment-scan.pod:108 ../cat/virt-cat.pod:83 ../cat/virt-filesystems.pod:127 ../cat/virt-ls.pod:293 ../clone/virt-sysprep.pod:61 ../df/virt-df.pod:80 ../rescue/virt-rescue.pod:137
msgid "B<--connect> URI"
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:110 ../cat/virt-cat.pod:85 ../cat/virt-filesystems.pod:129 ../cat/virt-ls.pod:295 ../clone/virt-sysprep.pod:63 ../df/virt-df.pod:82 ../edit/virt-edit.pod:99 ../inspector/virt-inspector.pod:78 ../rescue/virt-rescue.pod:111 ../tools/virt-list-filesystems.pl:81 ../tools/virt-list-partitions.pl:82 ../tools/virt-tar.pl:131 ../tools/virt-win-reg.pl:132
+#: ../align/virt-alignment-scan.pod:110 ../cat/virt-cat.pod:85 ../cat/virt-filesystems.pod:129 ../cat/virt-ls.pod:295 ../clone/virt-sysprep.pod:63 ../df/virt-df.pod:82 ../edit/virt-edit.pod:99 ../inspector/virt-inspector.pod:78 ../rescue/virt-rescue.pod:139 ../tools/virt-list-filesystems.pl:81 ../tools/virt-list-partitions.pl:82 ../tools/virt-tar.pl:131 ../tools/virt-win-reg.pl:132
msgid ""
"If using libvirt, connect to the given I<URI>. If omitted, then we connect "
"to the default libvirt hypervisor."
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:113 ../cat/virt-cat.pod:88 ../cat/virt-filesystems.pod:132 ../cat/virt-ls.pod:298 ../clone/virt-sysprep.pod:66 ../df/virt-df.pod:85 ../rescue/virt-rescue.pod:114
+#: ../align/virt-alignment-scan.pod:113 ../cat/virt-cat.pod:88 ../cat/virt-filesystems.pod:132 ../cat/virt-ls.pod:298 ../clone/virt-sysprep.pod:66 ../df/virt-df.pod:85 ../rescue/virt-rescue.pod:142
msgid ""
"If you specify guest block devices directly (I<-a>), then libvirt is not "
"used at all."
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:116 ../cat/virt-cat.pod:91 ../cat/virt-filesystems.pod:141 ../cat/virt-ls.pod:307 ../clone/virt-sysprep.pod:69 ../df/virt-df.pod:94 ../edit/virt-edit.pod:105 ../inspector/virt-inspector.pod:85 ../rescue/virt-rescue.pod:117
+#: ../align/virt-alignment-scan.pod:116 ../cat/virt-cat.pod:91 ../cat/virt-filesystems.pod:141 ../cat/virt-ls.pod:307 ../clone/virt-sysprep.pod:69 ../df/virt-df.pod:94 ../edit/virt-edit.pod:105 ../inspector/virt-inspector.pod:85 ../rescue/virt-rescue.pod:145
msgid "B<-d> guest"
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:118 ../cat/virt-cat.pod:93 ../cat/virt-filesystems.pod:143 ../cat/virt-ls.pod:309 ../clone/virt-sysprep.pod:71 ../df/virt-df.pod:96 ../edit/virt-edit.pod:107 ../inspector/virt-inspector.pod:87 ../rescue/virt-rescue.pod:119
+#: ../align/virt-alignment-scan.pod:118 ../cat/virt-cat.pod:93 ../cat/virt-filesystems.pod:143 ../cat/virt-ls.pod:309 ../clone/virt-sysprep.pod:71 ../df/virt-df.pod:96 ../edit/virt-edit.pod:107 ../inspector/virt-inspector.pod:87 ../rescue/virt-rescue.pod:147
msgid "B<--domain> guest"
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:120 ../cat/virt-cat.pod:95 ../cat/virt-filesystems.pod:145 ../cat/virt-ls.pod:311 ../clone/virt-sysprep.pod:73 ../df/virt-df.pod:98 ../edit/virt-edit.pod:109 ../inspector/virt-inspector.pod:89 ../rescue/virt-rescue.pod:121
+#: ../align/virt-alignment-scan.pod:120 ../cat/virt-cat.pod:95 ../cat/virt-filesystems.pod:145 ../cat/virt-ls.pod:311 ../clone/virt-sysprep.pod:73 ../df/virt-df.pod:98 ../edit/virt-edit.pod:109 ../inspector/virt-inspector.pod:89 ../rescue/virt-rescue.pod:149
msgid ""
"Add all the disks from the named libvirt guest. Domain UUIDs can be used "
"instead of names."
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:123 ../cat/virt-cat.pod:105 ../cat/virt-filesystems.pod:170 ../cat/virt-ls.pod:328 ../clone/virt-sysprep.pod:95 ../df/virt-df.pod:101 ../fish/guestfish.pod:233 ../fuse/guestmount.pod:142 ../inspector/virt-inspector.pod:99 ../rescue/virt-rescue.pod:124
+#: ../align/virt-alignment-scan.pod:123 ../cat/virt-cat.pod:105 ../cat/virt-filesystems.pod:170 ../cat/virt-ls.pod:328 ../clone/virt-sysprep.pod:95 ../df/virt-df.pod:101 ../fish/guestfish.pod:233 ../fuse/guestmount.pod:142 ../inspector/virt-inspector.pod:99 ../rescue/virt-rescue.pod:152
msgid "B<--format=raw|qcow2|..>"
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:125 ../cat/virt-cat.pod:107 ../cat/virt-filesystems.pod:172 ../cat/virt-ls.pod:330 ../clone/virt-sysprep.pod:97 ../df/virt-df.pod:103 ../edit/virt-edit.pod:134 ../fish/guestfish.pod:235 ../fuse/guestmount.pod:144 ../inspector/virt-inspector.pod:101 ../rescue/virt-rescue.pod:126
+#: ../align/virt-alignment-scan.pod:125 ../cat/virt-cat.pod:107 ../cat/virt-filesystems.pod:172 ../cat/virt-ls.pod:330 ../clone/virt-sysprep.pod:97 ../df/virt-df.pod:103 ../edit/virt-edit.pod:134 ../fish/guestfish.pod:235 ../fuse/guestmount.pod:144 ../inspector/virt-inspector.pod:101 ../rescue/virt-rescue.pod:154
msgid "B<--format>"
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:127 ../cat/virt-cat.pod:109 ../cat/virt-filesystems.pod:174 ../cat/virt-ls.pod:332 ../clone/virt-sysprep.pod:99 ../df/virt-df.pod:105 ../edit/virt-edit.pod:136 ../fish/guestfish.pod:237 ../fuse/guestmount.pod:146 ../rescue/virt-rescue.pod:128
+#: ../align/virt-alignment-scan.pod:127 ../cat/virt-cat.pod:109 ../cat/virt-filesystems.pod:174 ../cat/virt-ls.pod:332 ../clone/virt-sysprep.pod:99 ../df/virt-df.pod:105 ../edit/virt-edit.pod:136 ../fish/guestfish.pod:237 ../fuse/guestmount.pod:146 ../rescue/virt-rescue.pod:156
msgid ""
"The default for the I<-a> option is to auto-detect the format of the disk "
"image. Using this forces the disk format for I<-a> options which follow on "
@@ -309,7 +309,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:132 ../cat/virt-cat.pod:114 ../cat/virt-filesystems.pod:179 ../cat/virt-ls.pod:337 ../clone/virt-sysprep.pod:104 ../df/virt-df.pod:110 ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242 ../fish/guestfish.pod:673 ../inspector/virt-inspector.pod:336 ../rescue/virt-rescue.pod:133 ../src/guestfs.pod:2877
+#: ../align/virt-alignment-scan.pod:132 ../cat/virt-cat.pod:114 ../cat/virt-filesystems.pod:179 ../cat/virt-ls.pod:337 ../clone/virt-sysprep.pod:104 ../df/virt-df.pod:110 ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242 ../fish/guestfish.pod:673 ../inspector/virt-inspector.pod:336 ../rescue/virt-rescue.pod:161 ../src/guestfs.pod:2877
msgid "For example:"
msgstr ""
@@ -322,7 +322,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:136 ../cat/virt-cat.pod:118 ../cat/virt-filesystems.pod:183 ../cat/virt-ls.pod:341 ../clone/virt-sysprep.pod:108 ../df/virt-df.pod:114 ../edit/virt-edit.pod:145 ../fish/guestfish.pod:246 ../rescue/virt-rescue.pod:137
+#: ../align/virt-alignment-scan.pod:136 ../cat/virt-cat.pod:118 ../cat/virt-filesystems.pod:183 ../cat/virt-ls.pod:341 ../clone/virt-sysprep.pod:108 ../df/virt-df.pod:114 ../edit/virt-edit.pod:145 ../fish/guestfish.pod:246 ../rescue/virt-rescue.pod:165
msgid "forces raw format (no auto-detection) for C<disk.img>."
msgstr ""
@@ -335,14 +335,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:140 ../cat/virt-cat.pod:122 ../cat/virt-filesystems.pod:187 ../cat/virt-ls.pod:345 ../clone/virt-sysprep.pod:112 ../df/virt-df.pod:118 ../edit/virt-edit.pod:149 ../fish/guestfish.pod:250 ../rescue/virt-rescue.pod:141
+#: ../align/virt-alignment-scan.pod:140 ../cat/virt-cat.pod:122 ../cat/virt-filesystems.pod:187 ../cat/virt-ls.pod:345 ../clone/virt-sysprep.pod:112 ../df/virt-df.pod:118 ../edit/virt-edit.pod:149 ../fish/guestfish.pod:250 ../rescue/virt-rescue.pod:169
msgid ""
"forces raw format (no auto-detection) for C<disk.img> and reverts to "
"auto-detection for C<another.img>."
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:143 ../cat/virt-cat.pod:125 ../cat/virt-filesystems.pod:190 ../cat/virt-ls.pod:348 ../clone/virt-sysprep.pod:115 ../df/virt-df.pod:121 ../edit/virt-edit.pod:152 ../rescue/virt-rescue.pod:144
+#: ../align/virt-alignment-scan.pod:143 ../cat/virt-cat.pod:125 ../cat/virt-filesystems.pod:190 ../cat/virt-ls.pod:348 ../clone/virt-sysprep.pod:115 ../df/virt-df.pod:121 ../edit/virt-edit.pod:152 ../rescue/virt-rescue.pod:172
msgid ""
"If you have untrusted raw-format guest disk images, you should use this "
"option to specify the disk format. This avoids a possible security problem "
@@ -367,42 +367,42 @@ msgid ""
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:154 ../cat/virt-cat.pod:134 ../cat/virt-filesystems.pod:261 ../cat/virt-ls.pod:425 ../clone/virt-sysprep.pod:138 ../df/virt-df.pod:173 ../edit/virt-edit.pod:161 ../fish/guestfish.pod:390 ../fuse/guestmount.pod:266 ../inspector/virt-inspector.pod:119 ../rescue/virt-rescue.pod:182 ../sparsify/virt-sparsify.pod:159
+#: ../align/virt-alignment-scan.pod:154 ../cat/virt-cat.pod:134 ../cat/virt-filesystems.pod:261 ../cat/virt-ls.pod:425 ../clone/virt-sysprep.pod:138 ../df/virt-df.pod:173 ../edit/virt-edit.pod:161 ../fish/guestfish.pod:390 ../fuse/guestmount.pod:266 ../inspector/virt-inspector.pod:119 ../rescue/virt-rescue.pod:219 ../sparsify/virt-sparsify.pod:159
msgid "B<-v>"
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:156 ../cat/virt-cat.pod:136 ../cat/virt-filesystems.pod:263 ../cat/virt-ls.pod:427 ../clone/virt-sysprep.pod:140 ../df/virt-df.pod:175 ../edit/virt-edit.pod:163 ../fish/guestfish.pod:392 ../fuse/guestmount.pod:268 ../inspector/virt-inspector.pod:121 ../rescue/virt-rescue.pod:184 ../sparsify/virt-sparsify.pod:161
+#: ../align/virt-alignment-scan.pod:156 ../cat/virt-cat.pod:136 ../cat/virt-filesystems.pod:263 ../cat/virt-ls.pod:427 ../clone/virt-sysprep.pod:140 ../df/virt-df.pod:175 ../edit/virt-edit.pod:163 ../fish/guestfish.pod:392 ../fuse/guestmount.pod:268 ../inspector/virt-inspector.pod:121 ../rescue/virt-rescue.pod:221 ../sparsify/virt-sparsify.pod:161
msgid "B<--verbose>"
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:158 ../cat/virt-cat.pod:138 ../cat/virt-filesystems.pod:265 ../cat/virt-ls.pod:429 ../clone/virt-sysprep.pod:142 ../df/virt-df.pod:177 ../edit/virt-edit.pod:165 ../inspector/virt-inspector.pod:123 ../rescue/virt-rescue.pod:186 ../sparsify/virt-sparsify.pod:163
+#: ../align/virt-alignment-scan.pod:158 ../cat/virt-cat.pod:138 ../cat/virt-filesystems.pod:265 ../cat/virt-ls.pod:429 ../clone/virt-sysprep.pod:142 ../df/virt-df.pod:177 ../edit/virt-edit.pod:165 ../inspector/virt-inspector.pod:123 ../rescue/virt-rescue.pod:223 ../sparsify/virt-sparsify.pod:163
msgid "Enable verbose messages for debugging."
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:160 ../cat/virt-cat.pod:140 ../cat/virt-filesystems.pod:267 ../cat/virt-ls.pod:431 ../clone/virt-sysprep.pod:144 ../df/virt-df.pod:179 ../edit/virt-edit.pod:167 ../fish/guestfish.pod:397 ../fuse/guestmount.pod:272 ../inspector/virt-inspector.pod:125 ../rescue/virt-rescue.pod:188 ../resize/virt-resize.pod:561 ../sparsify/virt-sparsify.pod:165
+#: ../align/virt-alignment-scan.pod:160 ../cat/virt-cat.pod:140 ../cat/virt-filesystems.pod:267 ../cat/virt-ls.pod:431 ../clone/virt-sysprep.pod:144 ../df/virt-df.pod:179 ../edit/virt-edit.pod:167 ../fish/guestfish.pod:397 ../fuse/guestmount.pod:272 ../inspector/virt-inspector.pod:125 ../rescue/virt-rescue.pod:225 ../resize/virt-resize.pod:561 ../sparsify/virt-sparsify.pod:165
msgid "B<-V>"
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:162 ../cat/virt-cat.pod:142 ../cat/virt-filesystems.pod:269 ../cat/virt-ls.pod:433 ../clone/virt-sysprep.pod:146 ../df/virt-df.pod:181 ../edit/virt-edit.pod:169 ../fish/guestfish.pod:399 ../fuse/guestmount.pod:274 ../inspector/virt-inspector.pod:127 ../rescue/virt-rescue.pod:190 ../resize/virt-resize.pod:563 ../sparsify/virt-sparsify.pod:167 ../tools/virt-list-filesystems.pl:69 ../tools/virt-list-partitions.pl:70 ../tools/virt-make-fs.pl:169 ../tools/v [...]
+#: ../align/virt-alignment-scan.pod:162 ../cat/virt-cat.pod:142 ../cat/virt-filesystems.pod:269 ../cat/virt-ls.pod:433 ../clone/virt-sysprep.pod:146 ../df/virt-df.pod:181 ../edit/virt-edit.pod:169 ../fish/guestfish.pod:399 ../fuse/guestmount.pod:274 ../inspector/virt-inspector.pod:127 ../rescue/virt-rescue.pod:227 ../resize/virt-resize.pod:563 ../sparsify/virt-sparsify.pod:167 ../tools/virt-list-filesystems.pl:69 ../tools/virt-list-partitions.pl:70 ../tools/virt-make-fs.pl:169 ../tools/v [...]
msgid "B<--version>"
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:164 ../cat/virt-cat.pod:144 ../cat/virt-filesystems.pod:271 ../cat/virt-ls.pod:435 ../clone/virt-sysprep.pod:148 ../df/virt-df.pod:183 ../edit/virt-edit.pod:171 ../inspector/virt-inspector.pod:129 ../rescue/virt-rescue.pod:192 ../resize/virt-resize.pod:565 ../sparsify/virt-sparsify.pod:169 ../tools/virt-list-filesystems.pl:71 ../tools/virt-list-partitions.pl:72 ../tools/virt-make-fs.pl:171 ../tools/virt-tar.pl:121 ../tools/virt-win-reg.pl:114
+#: ../align/virt-alignment-scan.pod:164 ../cat/virt-cat.pod:144 ../cat/virt-filesystems.pod:271 ../cat/virt-ls.pod:435 ../clone/virt-sysprep.pod:148 ../df/virt-df.pod:183 ../edit/virt-edit.pod:171 ../inspector/virt-inspector.pod:129 ../rescue/virt-rescue.pod:229 ../resize/virt-resize.pod:565 ../sparsify/virt-sparsify.pod:169 ../tools/virt-list-filesystems.pl:71 ../tools/virt-list-partitions.pl:72 ../tools/virt-make-fs.pl:171 ../tools/virt-tar.pl:121 ../tools/virt-win-reg.pl:114
msgid "Display version number and exit."
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:166 ../cat/virt-cat.pod:146 ../cat/virt-filesystems.pod:281 ../cat/virt-ls.pod:437 ../clone/virt-sysprep.pod:150 ../df/virt-df.pod:185 ../edit/virt-edit.pod:173 ../fish/guestfish.pod:412 ../fuse/guestmount.pod:287 ../inspector/virt-inspector.pod:131 ../rescue/virt-rescue.pod:203 ../sparsify/virt-sparsify.pod:171 ../tools/virt-tar.pl:158
+#: ../align/virt-alignment-scan.pod:166 ../cat/virt-cat.pod:146 ../cat/virt-filesystems.pod:281 ../cat/virt-ls.pod:437 ../clone/virt-sysprep.pod:150 ../df/virt-df.pod:185 ../edit/virt-edit.pod:173 ../fish/guestfish.pod:412 ../fuse/guestmount.pod:287 ../inspector/virt-inspector.pod:131 ../rescue/virt-rescue.pod:240 ../sparsify/virt-sparsify.pod:171 ../tools/virt-tar.pl:158
msgid "B<-x>"
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:168 ../cat/virt-cat.pod:148 ../cat/virt-filesystems.pod:283 ../cat/virt-ls.pod:439 ../clone/virt-sysprep.pod:152 ../df/virt-df.pod:187 ../edit/virt-edit.pod:175 ../inspector/virt-inspector.pod:133 ../rescue/virt-rescue.pod:205 ../sparsify/virt-sparsify.pod:173
+#: ../align/virt-alignment-scan.pod:168 ../cat/virt-cat.pod:148 ../cat/virt-filesystems.pod:283 ../cat/virt-ls.pod:439 ../clone/virt-sysprep.pod:152 ../df/virt-df.pod:187 ../edit/virt-edit.pod:175 ../inspector/virt-inspector.pod:133 ../rescue/virt-rescue.pod:242 ../sparsify/virt-sparsify.pod:173
msgid "Enable tracing of libguestfs API calls."
msgstr ""
@@ -673,12 +673,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../align/virt-alignment-scan.pod:311 ../cat/virt-cat.pod:231 ../cat/virt-filesystems.pod:373 ../cat/virt-ls.pod:483 ../clone/virt-sysprep.pod:475 ../df/virt-df.pod:215 ../edit/virt-edit.pod:342 ../inspector/virt-inspector.pod:352 ../rescue/virt-rescue.pod:266 ../resize/virt-resize.pod:676 ../tools/virt-list-filesystems.pl:188 ../tools/virt-list-partitions.pl:258 ../tools/virt-make-fs.pl:550 ../tools/virt-tar.pl:289 ../tools/virt-win-reg.pl:744
+#: ../align/virt-alignment-scan.pod:311 ../cat/virt-cat.pod:231 ../cat/virt-filesystems.pod:373 ../cat/virt-ls.pod:483 ../clone/virt-sysprep.pod:475 ../df/virt-df.pod:215 ../edit/virt-edit.pod:342 ../inspector/virt-inspector.pod:352 ../rescue/virt-rescue.pod:303 ../resize/virt-resize.pod:676 ../tools/virt-list-filesystems.pl:188 ../tools/virt-list-partitions.pl:258 ../tools/virt-make-fs.pl:550 ../tools/virt-tar.pl:289 ../tools/virt-win-reg.pl:744
msgid "SHELL QUOTING"
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:313 ../cat/virt-cat.pod:233 ../cat/virt-filesystems.pod:375 ../cat/virt-ls.pod:485 ../clone/virt-sysprep.pod:477 ../df/virt-df.pod:217 ../edit/virt-edit.pod:344 ../inspector/virt-inspector.pod:354 ../rescue/virt-rescue.pod:268 ../resize/virt-resize.pod:678 ../tools/virt-list-filesystems.pl:190 ../tools/virt-list-partitions.pl:260 ../tools/virt-make-fs.pl:552 ../tools/virt-tar.pl:291 ../tools/virt-win-reg.pl:752
+#: ../align/virt-alignment-scan.pod:313 ../cat/virt-cat.pod:233 ../cat/virt-filesystems.pod:375 ../cat/virt-ls.pod:485 ../clone/virt-sysprep.pod:477 ../df/virt-df.pod:217 ../edit/virt-edit.pod:344 ../inspector/virt-inspector.pod:354 ../rescue/virt-rescue.pod:305 ../resize/virt-resize.pod:678 ../tools/virt-list-filesystems.pl:190 ../tools/virt-list-partitions.pl:260 ../tools/virt-make-fs.pl:552 ../tools/virt-tar.pl:291 ../tools/virt-win-reg.pl:752
msgid ""
"Libvirt guest names can contain arbitrary characters, some of which have "
"meaning to the shell such as C<#> and space. You may need to quote or "
@@ -746,7 +746,7 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../align/virt-alignment-scan.pod:352 ../cat/virt-cat.pod:243 ../cat/virt-filesystems.pod:385 ../cat/virt-ls.pod:495 ../clone/virt-sysprep.pod:486 ../df/virt-df.pod:227 ../edit/virt-edit.pod:354 ../erlang/examples/guestfs-erlang.pod:97 ../examples/guestfs-examples.pod:33 ../examples/guestfs-recipes.pod:384 ../fish/guestfish.pod:1268 ../fish/virt-copy-in.pod:50 ../fish/virt-copy-out.pod:39 ../fish/virt-tar-in.pod:47 ../fish/virt-tar-out.pod:41 ../fuse/guestmount.pod:317 ../inspector/vir [...]
+#: ../align/virt-alignment-scan.pod:352 ../cat/virt-cat.pod:243 ../cat/virt-filesystems.pod:385 ../cat/virt-ls.pod:495 ../clone/virt-sysprep.pod:486 ../df/virt-df.pod:227 ../edit/virt-edit.pod:354 ../erlang/examples/guestfs-erlang.pod:97 ../examples/guestfs-examples.pod:33 ../examples/guestfs-recipes.pod:384 ../fish/guestfish.pod:1268 ../fish/virt-copy-in.pod:50 ../fish/virt-copy-out.pod:39 ../fish/virt-tar-in.pod:47 ../fish/virt-tar-out.pod:41 ../fuse/guestmount.pod:317 ../inspector/vir [...]
msgid "SEE ALSO"
msgstr ""
@@ -758,17 +758,17 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../align/virt-alignment-scan.pod:361 ../cat/virt-cat.pod:252 ../cat/virt-filesystems.pod:396 ../cat/virt-ls.pod:507 ../clone/virt-sysprep.pod:501 ../df/virt-df.pod:235 ../edit/virt-edit.pod:368 ../rescue/virt-rescue.pod:296 ../resize/virt-resize.pod:711 ../sparsify/virt-sparsify.pod:264 ../tools/virt-list-filesystems.pl:208 ../tools/virt-list-partitions.pl:277 ../tools/virt-make-fs.pl:582 ../tools/virt-tar.pl:311 ../tools/virt-win-reg.pl:783
+#: ../align/virt-alignment-scan.pod:361 ../cat/virt-cat.pod:252 ../cat/virt-filesystems.pod:396 ../cat/virt-ls.pod:507 ../clone/virt-sysprep.pod:501 ../df/virt-df.pod:235 ../edit/virt-edit.pod:368 ../rescue/virt-rescue.pod:334 ../resize/virt-resize.pod:711 ../sparsify/virt-sparsify.pod:264 ../tools/virt-list-filesystems.pl:208 ../tools/virt-list-partitions.pl:277 ../tools/virt-make-fs.pl:582 ../tools/virt-tar.pl:311 ../tools/virt-win-reg.pl:783
msgid "AUTHOR"
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:363 ../cat/virt-cat.pod:254 ../cat/virt-filesystems.pod:398 ../cat/virt-ls.pod:509 ../clone/virt-sysprep.pod:503 ../df/virt-df.pod:237 ../edit/virt-edit.pod:370 ../inspector/virt-inspector.pod:395 ../rescue/virt-rescue.pod:298 ../resize/virt-resize.pod:713 ../sparsify/virt-sparsify.pod:266 ../tools/virt-list-filesystems.pl:210 ../tools/virt-list-partitions.pl:279 ../tools/virt-make-fs.pl:584 ../tools/virt-tar.pl:313 ../tools/virt-win-reg.pl:785
+#: ../align/virt-alignment-scan.pod:363 ../cat/virt-cat.pod:254 ../cat/virt-filesystems.pod:398 ../cat/virt-ls.pod:509 ../clone/virt-sysprep.pod:503 ../df/virt-df.pod:237 ../edit/virt-edit.pod:370 ../inspector/virt-inspector.pod:395 ../rescue/virt-rescue.pod:336 ../resize/virt-resize.pod:713 ../sparsify/virt-sparsify.pod:266 ../tools/virt-list-filesystems.pl:210 ../tools/virt-list-partitions.pl:279 ../tools/virt-make-fs.pl:584 ../tools/virt-tar.pl:313 ../tools/virt-win-reg.pl:785
msgid "Richard W.M. Jones L<http://people.redhat.com/~rjones/>"
msgstr ""
#. type: =head1
-#: ../align/virt-alignment-scan.pod:365 ../cat/virt-cat.pod:256 ../cat/virt-filesystems.pod:400 ../cat/virt-ls.pod:511 ../clone/virt-sysprep.pod:505 ../df/virt-df.pod:239 ../edit/virt-edit.pod:372 ../erlang/examples/guestfs-erlang.pod:114 ../examples/guestfs-examples.pod:49 ../examples/guestfs-recipes.pod:401 ../fish/guestfish.pod:1300 ../fish/virt-copy-in.pod:64 ../fish/virt-copy-out.pod:53 ../fish/virt-tar-in.pod:62 ../fish/virt-tar-out.pod:55 ../fuse/guestmount.pod:332 ../inspector/vi [...]
+#: ../align/virt-alignment-scan.pod:365 ../cat/virt-cat.pod:256 ../cat/virt-filesystems.pod:400 ../cat/virt-ls.pod:511 ../clone/virt-sysprep.pod:505 ../df/virt-df.pod:239 ../edit/virt-edit.pod:372 ../erlang/examples/guestfs-erlang.pod:114 ../examples/guestfs-examples.pod:49 ../examples/guestfs-recipes.pod:401 ../fish/guestfish.pod:1300 ../fish/virt-copy-in.pod:64 ../fish/virt-copy-out.pod:53 ../fish/virt-tar-in.pod:62 ../fish/virt-tar-out.pod:55 ../fuse/guestmount.pod:332 ../inspector/vi [...]
msgid "COPYRIGHT"
msgstr ""
@@ -778,7 +778,7 @@ msgid "Copyright (C) 2011 Red Hat Inc."
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:369 ../cat/virt-cat.pod:260 ../cat/virt-filesystems.pod:404 ../cat/virt-ls.pod:515 ../clone/virt-sysprep.pod:509 ../df/virt-df.pod:243 ../edit/virt-edit.pod:376 ../fish/guestfish.pod:1305 ../fish/virt-copy-in.pod:69 ../fish/virt-copy-out.pod:58 ../fish/virt-tar-in.pod:67 ../fish/virt-tar-out.pod:60 ../fuse/guestmount.pod:337 ../inspector/virt-inspector.pod:407 ../rescue/virt-rescue.pod:304 ../resize/virt-resize.pod:719 ../sparsify/virt-sparsify.pod:272 [...]
+#: ../align/virt-alignment-scan.pod:369 ../cat/virt-cat.pod:260 ../cat/virt-filesystems.pod:404 ../cat/virt-ls.pod:515 ../clone/virt-sysprep.pod:509 ../df/virt-df.pod:243 ../edit/virt-edit.pod:376 ../fish/guestfish.pod:1305 ../fish/virt-copy-in.pod:69 ../fish/virt-copy-out.pod:58 ../fish/virt-tar-in.pod:67 ../fish/virt-tar-out.pod:60 ../fuse/guestmount.pod:337 ../inspector/virt-inspector.pod:407 ../rescue/virt-rescue.pod:342 ../resize/virt-resize.pod:719 ../sparsify/virt-sparsify.pod:272 [...]
msgid ""
"This program is free software; you can redistribute it and/or modify it "
"under the terms of the GNU General Public License as published by the Free "
@@ -787,7 +787,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:374 ../cat/virt-cat.pod:265 ../cat/virt-filesystems.pod:409 ../cat/virt-ls.pod:520 ../clone/virt-sysprep.pod:514 ../df/virt-df.pod:248 ../edit/virt-edit.pod:381 ../fish/guestfish.pod:1310 ../fish/virt-copy-in.pod:74 ../fish/virt-copy-out.pod:63 ../fish/virt-tar-in.pod:72 ../fish/virt-tar-out.pod:65 ../fuse/guestmount.pod:342 ../inspector/virt-inspector.pod:412 ../rescue/virt-rescue.pod:309 ../resize/virt-resize.pod:724 ../sparsify/virt-sparsify.pod:277 [...]
+#: ../align/virt-alignment-scan.pod:374 ../cat/virt-cat.pod:265 ../cat/virt-filesystems.pod:409 ../cat/virt-ls.pod:520 ../clone/virt-sysprep.pod:514 ../df/virt-df.pod:248 ../edit/virt-edit.pod:381 ../fish/guestfish.pod:1310 ../fish/virt-copy-in.pod:74 ../fish/virt-copy-out.pod:63 ../fish/virt-tar-in.pod:72 ../fish/virt-tar-out.pod:65 ../fuse/guestmount.pod:342 ../inspector/virt-inspector.pod:412 ../rescue/virt-rescue.pod:347 ../resize/virt-resize.pod:724 ../sparsify/virt-sparsify.pod:277 [...]
msgid ""
"This program is distributed in the hope that it will be useful, but WITHOUT "
"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
@@ -796,7 +796,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:379 ../cat/virt-cat.pod:270 ../cat/virt-filesystems.pod:414 ../cat/virt-ls.pod:525 ../clone/virt-sysprep.pod:519 ../df/virt-df.pod:253 ../edit/virt-edit.pod:386 ../fish/guestfish.pod:1315 ../fish/virt-copy-in.pod:79 ../fish/virt-copy-out.pod:68 ../fish/virt-tar-in.pod:77 ../fish/virt-tar-out.pod:70 ../fuse/guestmount.pod:347 ../inspector/virt-inspector.pod:417 ../rescue/virt-rescue.pod:314 ../resize/virt-resize.pod:729 ../sparsify/virt-sparsify.pod:282 [...]
+#: ../align/virt-alignment-scan.pod:379 ../cat/virt-cat.pod:270 ../cat/virt-filesystems.pod:414 ../cat/virt-ls.pod:525 ../clone/virt-sysprep.pod:519 ../df/virt-df.pod:253 ../edit/virt-edit.pod:386 ../fish/guestfish.pod:1315 ../fish/virt-copy-in.pod:79 ../fish/virt-copy-out.pod:68 ../fish/virt-tar-in.pod:77 ../fish/virt-tar-out.pod:70 ../fuse/guestmount.pod:347 ../inspector/virt-inspector.pod:417 ../rescue/virt-rescue.pod:352 ../resize/virt-resize.pod:729 ../sparsify/virt-sparsify.pod:282 [...]
msgid ""
"You should have received a copy of the GNU General Public License along with "
"this program; if not, write to the Free Software Foundation, Inc., 675 Mass "
@@ -955,7 +955,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-cat.pod:74 ../cat/virt-filesystems.pod:103 ../cat/virt-ls.pod:273 ../df/virt-df.pod:71 ../edit/virt-edit.pod:74 ../inspector/virt-inspector.pod:67 ../rescue/virt-rescue.pod:96
+#: ../cat/virt-cat.pod:74 ../cat/virt-filesystems.pod:103 ../cat/virt-ls.pod:273 ../df/virt-df.pod:71 ../edit/virt-edit.pod:74 ../inspector/virt-inspector.pod:67 ../rescue/virt-rescue.pod:124
msgid ""
"Add I<file> which should be a disk image from a virtual machine. If the "
"virtual machine has multiple block devices, you must supply all of them with "
@@ -1005,7 +1005,7 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../cat/virt-cat.pod:152 ../cat/virt-ls.pod:443 ../edit/virt-edit.pod:179 ../inspector/virt-inspector.pod:137 ../rescue/virt-rescue.pod:209
+#: ../cat/virt-cat.pod:152 ../cat/virt-ls.pod:443 ../edit/virt-edit.pod:179 ../inspector/virt-inspector.pod:137 ../rescue/virt-rescue.pod:246
msgid "OLD-STYLE COMMAND LINE ARGUMENTS"
msgstr ""
@@ -1023,7 +1023,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-cat.pod:158 ../cat/virt-ls.pod:449 ../edit/virt-edit.pod:185 ../inspector/virt-inspector.pod:143 ../rescue/virt-rescue.pod:215
+#: ../cat/virt-cat.pod:158 ../cat/virt-ls.pod:449 ../edit/virt-edit.pod:185 ../inspector/virt-inspector.pod:143 ../rescue/virt-rescue.pod:252
msgid "or"
msgstr ""
@@ -1036,14 +1036,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-cat.pod:162 ../cat/virt-ls.pod:453 ../edit/virt-edit.pod:189 ../inspector/virt-inspector.pod:147 ../rescue/virt-rescue.pod:219
+#: ../cat/virt-cat.pod:162 ../cat/virt-ls.pod:453 ../edit/virt-edit.pod:189 ../inspector/virt-inspector.pod:147 ../rescue/virt-rescue.pod:256
msgid ""
"whereas in this version you should use I<-a> or I<-d> respectively to avoid "
"the confusing case where a disk image might have the same name as a guest."
msgstr ""
#. type: textblock
-#: ../cat/virt-cat.pod:166 ../cat/virt-ls.pod:457 ../edit/virt-edit.pod:193 ../inspector/virt-inspector.pod:151 ../rescue/virt-rescue.pod:223
+#: ../cat/virt-cat.pod:166 ../cat/virt-ls.pod:457 ../edit/virt-edit.pod:193 ../inspector/virt-inspector.pod:151 ../rescue/virt-rescue.pod:260
msgid "For compatibility the old style is still supported."
msgstr ""
@@ -1854,7 +1854,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-ls.pod:13 ../df/virt-df.pod:15 ../rescue/virt-rescue.pod:13
+#: ../cat/virt-ls.pod:13 ../df/virt-df.pod:15 ../rescue/virt-rescue.pod:15
msgid "Old style:"
msgstr ""
@@ -2578,7 +2578,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-ls.pod:513 ../df/virt-df.pod:241 ../edit/virt-edit.pod:374 ../rescue/virt-rescue.pod:302
+#: ../cat/virt-ls.pod:513 ../df/virt-df.pod:241 ../edit/virt-edit.pod:374 ../rescue/virt-rescue.pod:340
msgid "Copyright (C) 2009-2011 Red Hat Inc."
msgstr ""
@@ -3641,7 +3641,7 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../edit/virt-edit.pod:21 ../fish/guestfish.pod:23 ../fish/virt-copy-in.pod:13 ../fish/virt-tar-in.pod:15 ../fuse/guestmount.pod:15 ../rescue/virt-rescue.pod:19 ../tools/virt-tar.pl:64 ../tools/virt-win-reg.pl:51
+#: ../edit/virt-edit.pod:21 ../fish/guestfish.pod:23 ../fish/virt-copy-in.pod:13 ../fish/virt-tar-in.pod:15 ../fuse/guestmount.pod:15 ../rescue/virt-rescue.pod:21 ../tools/virt-tar.pl:64 ../tools/virt-win-reg.pl:51
msgid "WARNING"
msgstr ""
@@ -4100,7 +4100,7 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../edit/virt-edit.pod:329 ../fish/guestfish.pod:1119 ../rescue/virt-rescue.pod:261 ../sparsify/virt-sparsify.pod:232 ../src/guestfs.pod:3209 ../test-tool/libguestfs-test-tool.pod:95
+#: ../edit/virt-edit.pod:329 ../fish/guestfish.pod:1119 ../rescue/virt-rescue.pod:298 ../sparsify/virt-sparsify.pod:232 ../src/guestfs.pod:3209 ../test-tool/libguestfs-test-tool.pod:95
msgid "ENVIRONMENT VARIABLES"
msgstr ""
@@ -18164,12 +18164,12 @@ msgid ""
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:369 ../fuse/guestmount.pod:248 ../rescue/virt-rescue.pod:161
+#: ../fish/guestfish.pod:369 ../fuse/guestmount.pod:248 ../rescue/virt-rescue.pod:189
msgid "B<-r>"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:371 ../fuse/guestmount.pod:250 ../rescue/virt-rescue.pod:163
+#: ../fish/guestfish.pod:371 ../fuse/guestmount.pod:250 ../rescue/virt-rescue.pod:191
msgid "B<--ro>"
msgstr ""
@@ -18181,7 +18181,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:376 ../rescue/virt-rescue.pod:167
+#: ../fish/guestfish.pod:376 ../rescue/virt-rescue.pod:195
msgid ""
"The option must always be used if the disk image or virtual machine might be "
"running, and is generally recommended in cases where you don't need write "
@@ -18202,7 +18202,7 @@ msgid "See also L</OPENING DISKS FOR READ AND WRITE> below."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:386 ../fuse/guestmount.pod:262 ../rescue/virt-rescue.pod:173
+#: ../fish/guestfish.pod:386 ../fuse/guestmount.pod:262 ../rescue/virt-rescue.pod:201
msgid "B<--selinux>"
msgstr ""
@@ -18224,12 +18224,12 @@ msgid "Display the guestfish / libguestfs version number and exit."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:403 ../fuse/guestmount.pod:278 ../rescue/virt-rescue.pod:194
+#: ../fish/guestfish.pod:403 ../fuse/guestmount.pod:278 ../rescue/virt-rescue.pod:231
msgid "B<-w>"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:405 ../fuse/guestmount.pod:280 ../rescue/virt-rescue.pod:196
+#: ../fish/guestfish.pod:405 ../fuse/guestmount.pod:280 ../rescue/virt-rescue.pod:233
msgid "B<--rw>"
msgstr ""
@@ -20014,22 +20014,22 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../fish/guestfish.pod:1209 ../fuse/guestmount.pod:297 ../rescue/virt-rescue.pod:273
+#: ../fish/guestfish.pod:1209 ../fuse/guestmount.pod:297 ../rescue/virt-rescue.pod:310
msgid "FILES"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1213 ../fuse/guestmount.pod:301 ../rescue/virt-rescue.pod:277
+#: ../fish/guestfish.pod:1213 ../fuse/guestmount.pod:301 ../rescue/virt-rescue.pod:314
msgid "$HOME/.libguestfs-tools.rc"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1215 ../fuse/guestmount.pod:303 ../rescue/virt-rescue.pod:279
+#: ../fish/guestfish.pod:1215 ../fuse/guestmount.pod:303 ../rescue/virt-rescue.pod:316
msgid "/etc/libguestfs-tools.conf"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1217 ../fuse/guestmount.pod:305 ../rescue/virt-rescue.pod:281
+#: ../fish/guestfish.pod:1217 ../fuse/guestmount.pod:305 ../rescue/virt-rescue.pod:318
msgid ""
"This configuration file controls the default read-only or read-write mode "
"(I<--ro> or I<--rw>)."
@@ -20628,7 +20628,7 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../fuse/guestmount.pod:73 ../rescue/virt-rescue.pod:68 ../resize/virt-resize.pod:621
+#: ../fuse/guestmount.pod:73 ../rescue/virt-rescue.pod:96 ../resize/virt-resize.pod:621
msgid "NOTES"
msgstr ""
@@ -20845,7 +20845,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fuse/guestmount.pod:260 ../rescue/virt-rescue.pod:171
+#: ../fuse/guestmount.pod:260 ../rescue/virt-rescue.pod:199
msgid "See also L<guestfish(1)/OPENING DISKS FOR READ AND WRITE>."
msgstr ""
@@ -20865,7 +20865,7 @@ msgid "Display the program version and exit."
msgstr ""
#. type: textblock
-#: ../fuse/guestmount.pod:285 ../fuse/guestmount.pod:308 ../rescue/virt-rescue.pod:201 ../rescue/virt-rescue.pod:284
+#: ../fuse/guestmount.pod:285 ../fuse/guestmount.pod:308 ../rescue/virt-rescue.pod:238 ../rescue/virt-rescue.pod:321
msgid "See L<guestfish(1)/OPENING DISKS FOR READ AND WRITE>."
msgstr ""
@@ -21828,10 +21828,10 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:15
+#: ../rescue/virt-rescue.pod:13
#, no-wrap
msgid ""
-" virt-rescue [--options] domname\n"
+" virt-rescue --suggest (-d domname | -a disk.img ...)\n"
"\n"
msgstr ""
@@ -21839,12 +21839,20 @@ msgstr ""
#: ../rescue/virt-rescue.pod:17
#, no-wrap
msgid ""
+" virt-rescue [--options] domname\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:19
+#, no-wrap
+msgid ""
" virt-rescue [--options] disk.img [disk.img ...]\n"
"\n"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:21
+#: ../rescue/virt-rescue.pod:23
msgid ""
"You must I<not> use C<virt-rescue> on live virtual machines. Doing so will "
"probably result in disk corruption in the VM. C<virt-rescue> tries to stop "
@@ -21852,7 +21860,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:25
+#: ../rescue/virt-rescue.pod:27
msgid ""
"However if you use the I<--ro> (read only) option, then you can attach a "
"shell to a live virtual machine. The results might be strange or "
@@ -21860,7 +21868,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:31
+#: ../rescue/virt-rescue.pod:33
msgid ""
"virt-rescue is like a Rescue CD, but for virtual machines, and without the "
"need for a CD. virt-rescue gives you a rescue shell and some simple "
@@ -21869,14 +21877,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:36
+#: ../rescue/virt-rescue.pod:38
msgid ""
"You can run virt-rescue on any virtual machine known to libvirt, or directly "
"on disk image(s):"
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:39
+#: ../rescue/virt-rescue.pod:41
#, no-wrap
msgid ""
" virt-rescue -d GuestName\n"
@@ -21884,7 +21892,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:41
+#: ../rescue/virt-rescue.pod:43
#, no-wrap
msgid ""
" virt-rescue --ro -a /path/to/disk.img\n"
@@ -21892,7 +21900,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:43
+#: ../rescue/virt-rescue.pod:45
#, no-wrap
msgid ""
" virt-rescue -a /dev/sdc\n"
@@ -21900,12 +21908,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:45
+#: ../rescue/virt-rescue.pod:47
msgid "For live VMs you I<must> use the --ro option."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:47
+#: ../rescue/virt-rescue.pod:49
msgid ""
"When you run virt-rescue on a virtual machine or disk image, you are placed "
"in an interactive bash shell where you can use many ordinary Linux "
@@ -21915,34 +21923,97 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:54
+#: ../rescue/virt-rescue.pod:56
msgid ""
-"In the example below, we list logical volumes, then choose one to mount "
-"under C</sysroot>:"
+"You can get virt-rescue to suggest mount commands for you by using the "
+"I<--suggest> option (in another terminal):"
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:57
+#: ../rescue/virt-rescue.pod:59
+#, no-wrap
+msgid ""
+" $ virt-rescue --suggest -d Fedora15\n"
+" Inspecting the virtual machine or disk image ...\n"
+" \n"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:62
+#, no-wrap
+msgid ""
+" This disk contains one or more operating systems. You can use these\n"
+" mount commands in virt-rescue (at the ><rescue> prompt) to mount the\n"
+" filesystems.\n"
+" \n"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:66
+#, no-wrap
+msgid ""
+" # /dev/vg_f15x32/lv_root is the root of a linux operating system\n"
+" # type: linux, distro: fedora, version: 15.0\n"
+" # Fedora release 15 (Lovelock)\n"
+" \n"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:70
+#, no-wrap
+msgid ""
+" mount /dev/vg_f15x32/lv_root /sysroot/\n"
+" mount /dev/vda1 /sysroot/boot\n"
+" mount --bind /dev /sysroot/dev\n"
+" mount --bind /dev/pts /sysroot/dev/pts\n"
+" mount --bind /proc /sysroot/proc\n"
+" mount --bind /sys /sysroot/sys\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: ../rescue/virt-rescue.pod:77
+msgid ""
+"Another way is to list the logical volumes (with L<lvs(8)>) and partitions "
+"(with L<parted(8)>) and mount them by hand:"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:80
#, no-wrap
msgid ""
" ><rescue> lvs\n"
" LV VG Attr LSize Origin Snap% Move Log Copy% Convert\n"
-" lv_root vg_f11x64 -wi-a- 8.83G\n"
-" lv_swap vg_f11x64 -wi-a- 992.00M\n"
-" ><rescue> mount /dev/vg_f11x64/lv_root /sysroot\n"
+" lv_root vg_f15x32 -wi-a- 8.83G\n"
+" lv_swap vg_f15x32 -wi-a- 992.00M\n"
+" ><rescue> mount /dev/vg_f15x32/lv_root /sysroot\n"
+" ><rescue> mount /dev/vda1 /sysroot/boot\n"
" ><rescue> ls /sysroot\n"
"\n"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:64
+#: ../rescue/virt-rescue.pod:88
+msgid "Another command to list available filesystems is L<virt-filesystems(1)>."
+msgstr ""
+
+#. type: textblock
+#: ../rescue/virt-rescue.pod:91
msgid ""
-"If you don't know what filesystems are available on the virtual machine then "
-"you can use commands such as L<parted(8)> and L<lvs(8)> to find out."
+"To run commands in a Linux guest (for example, grub), you should chroot into "
+"the /sysroot directory first:"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:94
+#, no-wrap
+msgid ""
+" ><rescue> chroot /sysroot\n"
+"\n"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:70
+#: ../rescue/virt-rescue.pod:98
msgid ""
"Virt-rescue can be used on I<any> disk image file or device, not just a "
"virtual machine. For example you can use it on a blank file if you want to "
@@ -21952,14 +22023,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:76
+#: ../rescue/virt-rescue.pod:104
msgid ""
"Virt-rescue does not require root. You only need to run it as root if you "
"need root to open the disk image."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:79
+#: ../rescue/virt-rescue.pod:107
msgid ""
"This tool is just designed for quick interactive hacking on a virtual "
"machine. For more structured access to a virtual machine disk image, you "
@@ -21968,17 +22039,17 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:103
+#: ../rescue/virt-rescue.pod:131
msgid "B<--append kernelopts>"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:105
+#: ../rescue/virt-rescue.pod:133
msgid "Pass additional options to the rescue kernel."
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:135
+#: ../rescue/virt-rescue.pod:163
#, no-wrap
msgid ""
" virt-rescue --format=raw -a disk.img\n"
@@ -21986,7 +22057,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:139
+#: ../rescue/virt-rescue.pod:167
#, no-wrap
msgid ""
" virt-rescue --format=raw -a disk.img --format -a another.img\n"
@@ -21994,17 +22065,17 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:148
+#: ../rescue/virt-rescue.pod:176
msgid "B<-m MB>"
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:150
+#: ../rescue/virt-rescue.pod:178
msgid "B<--memsize MB>"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:152
+#: ../rescue/virt-rescue.pod:180
msgid ""
"Change the amount of memory allocated to the rescue system. The default is "
"set by libguestfs and is small but adequate for running system tools. The "
@@ -22013,51 +22084,71 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:157
+#: ../rescue/virt-rescue.pod:185
msgid "B<--network>"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:159
+#: ../rescue/virt-rescue.pod:187
msgid "Enable QEMU user networking in the guest. See L</NETWORK>."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:165
+#: ../rescue/virt-rescue.pod:193
msgid "Open the image read-only."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:175
+#: ../rescue/virt-rescue.pod:203
msgid ""
"Enable SELinux in the rescue appliance. You should read "
"L<guestfs(3)/SELINUX> before using this option."
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:178
+#: ../rescue/virt-rescue.pod:206
msgid "B<--smp> N"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:180
+#: ../rescue/virt-rescue.pod:208
msgid "Enable N E<ge> 2 virtual CPUs in the rescue appliance."
msgstr ""
+#. type: =item
+#: ../rescue/virt-rescue.pod:210
+msgid "B<--suggest>"
+msgstr ""
+
+#. type: textblock
+#: ../rescue/virt-rescue.pod:212
+msgid ""
+"Inspect the disk image and suggest what mount commands should be used to "
+"mount the disks. You should use the I<--suggest> option in a second "
+"terminal, then paste the commands into another virt-rescue."
+msgstr ""
+
#. type: textblock
-#: ../rescue/virt-rescue.pod:198
+#: ../rescue/virt-rescue.pod:216
+msgid ""
+"This option implies I<--ro> and is safe to use even if the guest is up or if "
+"another virt-rescue is running."
+msgstr ""
+
+#. type: textblock
+#: ../rescue/virt-rescue.pod:235
msgid ""
"This changes the I<-a> and I<-d> options so that disks are added and mounts "
"are done read-write."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:211
+#: ../rescue/virt-rescue.pod:248
msgid "Previous versions of virt-rescue allowed you to write either:"
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:213
+#: ../rescue/virt-rescue.pod:250
#, no-wrap
msgid ""
" virt-rescue disk.img [disk.img ...]\n"
@@ -22065,7 +22156,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:217
+#: ../rescue/virt-rescue.pod:254
#, no-wrap
msgid ""
" virt-rescue guestname\n"
@@ -22073,12 +22164,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../rescue/virt-rescue.pod:225
+#: ../rescue/virt-rescue.pod:262
msgid "NETWORK"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:227
+#: ../rescue/virt-rescue.pod:264
msgid ""
"Adding the I<--network> option enables QEMU user networking in the rescue "
"appliance. There are some differences between user networking and ordinary "
@@ -22086,12 +22177,12 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:233
+#: ../rescue/virt-rescue.pod:270
msgid "ping does not work"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:235
+#: ../rescue/virt-rescue.pod:272
msgid ""
"Because the ICMP ECHO_REQUEST protocol generally requires root in order to "
"send the ping packets, and because virt-rescue must be able to run as "
@@ -22102,22 +22193,22 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:242
+#: ../rescue/virt-rescue.pod:279
msgid "cannot receive connections"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:244
+#: ../rescue/virt-rescue.pod:281
msgid "QEMU user networking cannot receive incoming connections."
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:246
+#: ../rescue/virt-rescue.pod:283
msgid "making TCP connections"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:248
+#: ../rescue/virt-rescue.pod:285
msgid ""
"The virt-rescue appliance needs to be small and so does not include many "
"network tools. In particular there is no L<telnet(1)> command. You can "
@@ -22126,7 +22217,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:253
+#: ../rescue/virt-rescue.pod:290
#, no-wrap
msgid ""
" exec 3<>/dev/tcp/redhat.com/80\n"
@@ -22136,22 +22227,22 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:257
+#: ../rescue/virt-rescue.pod:294
msgid "See L<bash(1)> for more details."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:263
+#: ../rescue/virt-rescue.pod:300
msgid ""
"Several environment variables affect virt-rescue. See "
"L<guestfs(3)/ENVIRONMENT VARIABLES> for the complete list."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:290
+#: ../rescue/virt-rescue.pod:327
msgid ""
"L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-edit(1)>, "
-"L<http://libguestfs.org/>."
+"L<virt-filesystems(1)>, L<http://libguestfs.org/>."
msgstr ""
#. type: textblock
diff --git a/po-docs/uk.po b/po-docs/uk.po
index a7f532c..279bcc7 100644
--- a/po-docs/uk.po
+++ b/po-docs/uk.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: libguestfs at redhat.com\n"
-"POT-Creation-Date: 2011-10-27 16:05+0200\n"
+"POT-Creation-Date: 2011-11-01 14:20+0000\n"
"PO-Revision-Date: 2011-10-27 09:15+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Ukrainian <trans-uk at lists.fedoraproject.org>\n"
@@ -91,7 +91,7 @@ msgstr ""
#: ../fish/virt-tar-out.pod:15 ../fuse/guestmount.pod:20
#: ../inspector/virt-inspector.pod:19 ../java/examples/guestfs-java.pod:15
#: ../ocaml/examples/guestfs-ocaml.pod:25 ../perl/examples/guestfs-perl.pod:18
-#: ../python/examples/guestfs-python.pod:14 ../rescue/virt-rescue.pod:29
+#: ../python/examples/guestfs-python.pod:14 ../rescue/virt-rescue.pod:31
#: ../resize/virt-resize.pod:13 ../ruby/examples/guestfs-ruby.pod:15
#: ../sparsify/virt-sparsify.pod:11 ../src/guestfs.pod:23
#: ../test-tool/libguestfs-test-tool.pod:11
@@ -266,7 +266,7 @@ msgstr ""
#: ../fish/guestfish.pod:148 ../fish/virt-copy-in.pod:45
#: ../fish/virt-copy-out.pod:34 ../fish/virt-tar-in.pod:42
#: ../fish/virt-tar-out.pod:36 ../fuse/guestmount.pod:92
-#: ../inspector/virt-inspector.pod:55 ../rescue/virt-rescue.pod:84
+#: ../inspector/virt-inspector.pod:55 ../rescue/virt-rescue.pod:112
#: ../resize/virt-resize.pod:262 ../sparsify/virt-sparsify.pod:99
#: ../test-tool/libguestfs-test-tool.pod:36
#: ../tools/virt-list-filesystems.pl:53 ../tools/virt-list-partitions.pl:54
@@ -280,7 +280,7 @@ msgstr "ПАРАМЕТРИ"
#: ../cat/virt-filesystems.pod:95 ../cat/virt-ls.pod:265
#: ../clone/virt-sysprep.pod:46 ../df/virt-df.pod:63 ../edit/virt-edit.pod:66
#: ../fish/guestfish.pod:152 ../fuse/guestmount.pod:160
-#: ../inspector/virt-inspector.pod:59 ../rescue/virt-rescue.pod:88
+#: ../inspector/virt-inspector.pod:59 ../rescue/virt-rescue.pod:116
#: ../resize/virt-resize.pod:266 ../sparsify/virt-sparsify.pod:103
#: ../test-tool/libguestfs-test-tool.pod:40
#: ../tools/virt-list-filesystems.pl:61 ../tools/virt-list-partitions.pl:62
@@ -293,7 +293,7 @@ msgstr "B<--help>"
#: ../align/virt-alignment-scan.pod:95 ../cat/virt-cat.pod:68
#: ../cat/virt-filesystems.pod:97 ../cat/virt-ls.pod:267
#: ../clone/virt-sysprep.pod:48 ../df/virt-df.pod:65 ../edit/virt-edit.pod:68
-#: ../inspector/virt-inspector.pod:61 ../rescue/virt-rescue.pod:90
+#: ../inspector/virt-inspector.pod:61 ../rescue/virt-rescue.pod:118
#: ../tools/virt-list-filesystems.pl:63 ../tools/virt-list-partitions.pl:64
#: ../tools/virt-make-fs.pl:163 ../tools/virt-tar.pl:113
#: ../tools/virt-win-reg.pl:106
@@ -304,7 +304,7 @@ msgstr "Показати коротку довідку."
#: ../align/virt-alignment-scan.pod:97 ../cat/virt-cat.pod:70
#: ../cat/virt-filesystems.pod:99 ../cat/virt-ls.pod:269
#: ../clone/virt-sysprep.pod:50 ../df/virt-df.pod:67 ../edit/virt-edit.pod:70
-#: ../inspector/virt-inspector.pod:63 ../rescue/virt-rescue.pod:92
+#: ../inspector/virt-inspector.pod:63 ../rescue/virt-rescue.pod:120
msgid "B<-a> file"
msgstr "B<-a> файл"
@@ -312,7 +312,7 @@ msgstr "B<-a> файл"
#: ../align/virt-alignment-scan.pod:99 ../cat/virt-cat.pod:72
#: ../cat/virt-filesystems.pod:101 ../cat/virt-ls.pod:271
#: ../clone/virt-sysprep.pod:52 ../df/virt-df.pod:69 ../edit/virt-edit.pod:72
-#: ../inspector/virt-inspector.pod:65 ../rescue/virt-rescue.pod:94
+#: ../inspector/virt-inspector.pod:65 ../rescue/virt-rescue.pod:122
msgid "B<--add> file"
msgstr "B<--add> файл"
@@ -326,7 +326,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:107 ../cat/virt-ls.pod:277
#: ../clone/virt-sysprep.pod:56 ../df/virt-df.pod:75 ../edit/virt-edit.pod:78
#: ../fish/guestfish.pod:174 ../fuse/guestmount.pod:102
-#: ../inspector/virt-inspector.pod:71 ../rescue/virt-rescue.pod:100
+#: ../inspector/virt-inspector.pod:71 ../rescue/virt-rescue.pod:128
msgid ""
"The format of the disk image is auto-detected. To override this and force a "
"particular format use the I<--format=..> option."
@@ -336,7 +336,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:106 ../cat/virt-cat.pod:81
#: ../cat/virt-filesystems.pod:125 ../cat/virt-ls.pod:291
#: ../clone/virt-sysprep.pod:59 ../df/virt-df.pod:78
-#: ../rescue/virt-rescue.pod:107
+#: ../rescue/virt-rescue.pod:135
msgid "B<-c> URI"
msgstr "B<-c> адреса"
@@ -344,7 +344,7 @@ msgstr "B<-c> адреса"
#: ../align/virt-alignment-scan.pod:108 ../cat/virt-cat.pod:83
#: ../cat/virt-filesystems.pod:127 ../cat/virt-ls.pod:293
#: ../clone/virt-sysprep.pod:61 ../df/virt-df.pod:80
-#: ../rescue/virt-rescue.pod:109
+#: ../rescue/virt-rescue.pod:137
msgid "B<--connect> URI"
msgstr "B<--connect> адреса"
@@ -352,7 +352,7 @@ msgstr "B<--connect> адреса"
#: ../align/virt-alignment-scan.pod:110 ../cat/virt-cat.pod:85
#: ../cat/virt-filesystems.pod:129 ../cat/virt-ls.pod:295
#: ../clone/virt-sysprep.pod:63 ../df/virt-df.pod:82 ../edit/virt-edit.pod:99
-#: ../inspector/virt-inspector.pod:78 ../rescue/virt-rescue.pod:111
+#: ../inspector/virt-inspector.pod:78 ../rescue/virt-rescue.pod:139
#: ../tools/virt-list-filesystems.pl:81 ../tools/virt-list-partitions.pl:82
#: ../tools/virt-tar.pl:131 ../tools/virt-win-reg.pl:132
msgid ""
@@ -364,7 +364,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:113 ../cat/virt-cat.pod:88
#: ../cat/virt-filesystems.pod:132 ../cat/virt-ls.pod:298
#: ../clone/virt-sysprep.pod:66 ../df/virt-df.pod:85
-#: ../rescue/virt-rescue.pod:114
+#: ../rescue/virt-rescue.pod:142
msgid ""
"If you specify guest block devices directly (I<-a>), then libvirt is not "
"used at all."
@@ -374,7 +374,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:116 ../cat/virt-cat.pod:91
#: ../cat/virt-filesystems.pod:141 ../cat/virt-ls.pod:307
#: ../clone/virt-sysprep.pod:69 ../df/virt-df.pod:94 ../edit/virt-edit.pod:105
-#: ../inspector/virt-inspector.pod:85 ../rescue/virt-rescue.pod:117
+#: ../inspector/virt-inspector.pod:85 ../rescue/virt-rescue.pod:145
msgid "B<-d> guest"
msgstr "B<-d> гість"
@@ -382,7 +382,7 @@ msgstr "B<-d> гість"
#: ../align/virt-alignment-scan.pod:118 ../cat/virt-cat.pod:93
#: ../cat/virt-filesystems.pod:143 ../cat/virt-ls.pod:309
#: ../clone/virt-sysprep.pod:71 ../df/virt-df.pod:96 ../edit/virt-edit.pod:107
-#: ../inspector/virt-inspector.pod:87 ../rescue/virt-rescue.pod:119
+#: ../inspector/virt-inspector.pod:87 ../rescue/virt-rescue.pod:147
msgid "B<--domain> guest"
msgstr "B<--domain> гість"
@@ -390,7 +390,7 @@ msgstr "B<--domain> гість"
#: ../align/virt-alignment-scan.pod:120 ../cat/virt-cat.pod:95
#: ../cat/virt-filesystems.pod:145 ../cat/virt-ls.pod:311
#: ../clone/virt-sysprep.pod:73 ../df/virt-df.pod:98 ../edit/virt-edit.pod:109
-#: ../inspector/virt-inspector.pod:89 ../rescue/virt-rescue.pod:121
+#: ../inspector/virt-inspector.pod:89 ../rescue/virt-rescue.pod:149
msgid ""
"Add all the disks from the named libvirt guest. Domain UUIDs can be used "
"instead of names."
@@ -401,7 +401,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:170 ../cat/virt-ls.pod:328
#: ../clone/virt-sysprep.pod:95 ../df/virt-df.pod:101
#: ../fish/guestfish.pod:233 ../fuse/guestmount.pod:142
-#: ../inspector/virt-inspector.pod:99 ../rescue/virt-rescue.pod:124
+#: ../inspector/virt-inspector.pod:99 ../rescue/virt-rescue.pod:152
msgid "B<--format=raw|qcow2|..>"
msgstr "B<--format=raw|qcow2|..>"
@@ -411,7 +411,7 @@ msgstr "B<--format=raw|qcow2|..>"
#: ../clone/virt-sysprep.pod:97 ../df/virt-df.pod:103
#: ../edit/virt-edit.pod:134 ../fish/guestfish.pod:235
#: ../fuse/guestmount.pod:144 ../inspector/virt-inspector.pod:101
-#: ../rescue/virt-rescue.pod:126
+#: ../rescue/virt-rescue.pod:154
msgid "B<--format>"
msgstr "B<--format>"
@@ -420,7 +420,7 @@ msgstr "B<--format>"
#: ../cat/virt-filesystems.pod:174 ../cat/virt-ls.pod:332
#: ../clone/virt-sysprep.pod:99 ../df/virt-df.pod:105
#: ../edit/virt-edit.pod:136 ../fish/guestfish.pod:237
-#: ../fuse/guestmount.pod:146 ../rescue/virt-rescue.pod:128
+#: ../fuse/guestmount.pod:146 ../rescue/virt-rescue.pod:156
msgid ""
"The default for the I<-a> option is to auto-detect the format of the disk "
"image. Using this forces the disk format for I<-a> options which follow on "
@@ -434,7 +434,7 @@ msgstr ""
#: ../clone/virt-sysprep.pod:104 ../df/virt-df.pod:110
#: ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242
#: ../fish/guestfish.pod:673 ../inspector/virt-inspector.pod:336
-#: ../rescue/virt-rescue.pod:133 ../src/guestfs.pod:2877
+#: ../rescue/virt-rescue.pod:161 ../src/guestfs.pod:2877
msgid "For example:"
msgstr "Приклад:"
@@ -451,7 +451,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:183 ../cat/virt-ls.pod:341
#: ../clone/virt-sysprep.pod:108 ../df/virt-df.pod:114
#: ../edit/virt-edit.pod:145 ../fish/guestfish.pod:246
-#: ../rescue/virt-rescue.pod:137
+#: ../rescue/virt-rescue.pod:165
msgid "forces raw format (no auto-detection) for C<disk.img>."
msgstr ""
@@ -468,7 +468,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:187 ../cat/virt-ls.pod:345
#: ../clone/virt-sysprep.pod:112 ../df/virt-df.pod:118
#: ../edit/virt-edit.pod:149 ../fish/guestfish.pod:250
-#: ../rescue/virt-rescue.pod:141
+#: ../rescue/virt-rescue.pod:169
msgid ""
"forces raw format (no auto-detection) for C<disk.img> and reverts to auto-"
"detection for C<another.img>."
@@ -478,7 +478,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:143 ../cat/virt-cat.pod:125
#: ../cat/virt-filesystems.pod:190 ../cat/virt-ls.pod:348
#: ../clone/virt-sysprep.pod:115 ../df/virt-df.pod:121
-#: ../edit/virt-edit.pod:152 ../rescue/virt-rescue.pod:144
+#: ../edit/virt-edit.pod:152 ../rescue/virt-rescue.pod:172
msgid ""
"If you have untrusted raw-format guest disk images, you should use this "
"option to specify the disk format. This avoids a possible security problem "
@@ -510,7 +510,7 @@ msgstr ""
#: ../clone/virt-sysprep.pod:138 ../df/virt-df.pod:173
#: ../edit/virt-edit.pod:161 ../fish/guestfish.pod:390
#: ../fuse/guestmount.pod:266 ../inspector/virt-inspector.pod:119
-#: ../rescue/virt-rescue.pod:182 ../sparsify/virt-sparsify.pod:159
+#: ../rescue/virt-rescue.pod:219 ../sparsify/virt-sparsify.pod:159
msgid "B<-v>"
msgstr "B<-v>"
@@ -520,7 +520,7 @@ msgstr "B<-v>"
#: ../clone/virt-sysprep.pod:140 ../df/virt-df.pod:175
#: ../edit/virt-edit.pod:163 ../fish/guestfish.pod:392
#: ../fuse/guestmount.pod:268 ../inspector/virt-inspector.pod:121
-#: ../rescue/virt-rescue.pod:184 ../sparsify/virt-sparsify.pod:161
+#: ../rescue/virt-rescue.pod:221 ../sparsify/virt-sparsify.pod:161
msgid "B<--verbose>"
msgstr "B<--verbose>"
@@ -529,7 +529,7 @@ msgstr "B<--verbose>"
#: ../cat/virt-filesystems.pod:265 ../cat/virt-ls.pod:429
#: ../clone/virt-sysprep.pod:142 ../df/virt-df.pod:177
#: ../edit/virt-edit.pod:165 ../inspector/virt-inspector.pod:123
-#: ../rescue/virt-rescue.pod:186 ../sparsify/virt-sparsify.pod:163
+#: ../rescue/virt-rescue.pod:223 ../sparsify/virt-sparsify.pod:163
msgid "Enable verbose messages for debugging."
msgstr ""
@@ -539,7 +539,7 @@ msgstr ""
#: ../clone/virt-sysprep.pod:144 ../df/virt-df.pod:179
#: ../edit/virt-edit.pod:167 ../fish/guestfish.pod:397
#: ../fuse/guestmount.pod:272 ../inspector/virt-inspector.pod:125
-#: ../rescue/virt-rescue.pod:188 ../resize/virt-resize.pod:561
+#: ../rescue/virt-rescue.pod:225 ../resize/virt-resize.pod:561
#: ../sparsify/virt-sparsify.pod:165
msgid "B<-V>"
msgstr "B<-V>"
@@ -550,7 +550,7 @@ msgstr "B<-V>"
#: ../clone/virt-sysprep.pod:146 ../df/virt-df.pod:181
#: ../edit/virt-edit.pod:169 ../fish/guestfish.pod:399
#: ../fuse/guestmount.pod:274 ../inspector/virt-inspector.pod:127
-#: ../rescue/virt-rescue.pod:190 ../resize/virt-resize.pod:563
+#: ../rescue/virt-rescue.pod:227 ../resize/virt-resize.pod:563
#: ../sparsify/virt-sparsify.pod:167 ../tools/virt-list-filesystems.pl:69
#: ../tools/virt-list-partitions.pl:70 ../tools/virt-make-fs.pl:169
#: ../tools/virt-tar.pl:119 ../tools/virt-win-reg.pl:112
@@ -562,7 +562,7 @@ msgstr "B<--version>"
#: ../cat/virt-filesystems.pod:271 ../cat/virt-ls.pod:435
#: ../clone/virt-sysprep.pod:148 ../df/virt-df.pod:183
#: ../edit/virt-edit.pod:171 ../inspector/virt-inspector.pod:129
-#: ../rescue/virt-rescue.pod:192 ../resize/virt-resize.pod:565
+#: ../rescue/virt-rescue.pod:229 ../resize/virt-resize.pod:565
#: ../sparsify/virt-sparsify.pod:169 ../tools/virt-list-filesystems.pl:71
#: ../tools/virt-list-partitions.pl:72 ../tools/virt-make-fs.pl:171
#: ../tools/virt-tar.pl:121 ../tools/virt-win-reg.pl:114
@@ -575,7 +575,7 @@ msgstr "Показати дані щодо версії і завершити р
#: ../clone/virt-sysprep.pod:150 ../df/virt-df.pod:185
#: ../edit/virt-edit.pod:173 ../fish/guestfish.pod:412
#: ../fuse/guestmount.pod:287 ../inspector/virt-inspector.pod:131
-#: ../rescue/virt-rescue.pod:203 ../sparsify/virt-sparsify.pod:171
+#: ../rescue/virt-rescue.pod:240 ../sparsify/virt-sparsify.pod:171
#: ../tools/virt-tar.pl:158
msgid "B<-x>"
msgstr "B<-x>"
@@ -585,7 +585,7 @@ msgstr "B<-x>"
#: ../cat/virt-filesystems.pod:283 ../cat/virt-ls.pod:439
#: ../clone/virt-sysprep.pod:152 ../df/virt-df.pod:187
#: ../edit/virt-edit.pod:175 ../inspector/virt-inspector.pod:133
-#: ../rescue/virt-rescue.pod:205 ../sparsify/virt-sparsify.pod:173
+#: ../rescue/virt-rescue.pod:242 ../sparsify/virt-sparsify.pod:173
msgid "Enable tracing of libguestfs API calls."
msgstr ""
@@ -861,7 +861,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:373 ../cat/virt-ls.pod:483
#: ../clone/virt-sysprep.pod:475 ../df/virt-df.pod:215
#: ../edit/virt-edit.pod:342 ../inspector/virt-inspector.pod:352
-#: ../rescue/virt-rescue.pod:266 ../resize/virt-resize.pod:676
+#: ../rescue/virt-rescue.pod:303 ../resize/virt-resize.pod:676
#: ../tools/virt-list-filesystems.pl:188 ../tools/virt-list-partitions.pl:258
#: ../tools/virt-make-fs.pl:550 ../tools/virt-tar.pl:289
#: ../tools/virt-win-reg.pl:744
@@ -873,7 +873,7 @@ msgstr ""
#: ../cat/virt-filesystems.pod:375 ../cat/virt-ls.pod:485
#: ../clone/virt-sysprep.pod:477 ../df/virt-df.pod:217
#: ../edit/virt-edit.pod:344 ../inspector/virt-inspector.pod:354
-#: ../rescue/virt-rescue.pod:268 ../resize/virt-resize.pod:678
+#: ../rescue/virt-rescue.pod:305 ../resize/virt-resize.pod:678
#: ../tools/virt-list-filesystems.pl:190 ../tools/virt-list-partitions.pl:260
#: ../tools/virt-make-fs.pl:552 ../tools/virt-tar.pl:291
#: ../tools/virt-win-reg.pl:752
@@ -1037,7 +1037,7 @@ msgstr ""
#: ../fish/virt-tar-out.pod:41 ../fuse/guestmount.pod:317
#: ../inspector/virt-inspector.pod:380 ../java/examples/guestfs-java.pod:45
#: ../ocaml/examples/guestfs-ocaml.pod:78 ../perl/examples/guestfs-perl.pod:39
-#: ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:288
+#: ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:325
#: ../resize/virt-resize.pod:688 ../ruby/examples/guestfs-ruby.pod:36
#: ../sparsify/virt-sparsify.pod:251 ../src/guestfs.pod:3270
#: ../test-tool/libguestfs-test-tool.pod:100
@@ -1058,7 +1058,7 @@ msgstr ""
#: ../align/virt-alignment-scan.pod:361 ../cat/virt-cat.pod:252
#: ../cat/virt-filesystems.pod:396 ../cat/virt-ls.pod:507
#: ../clone/virt-sysprep.pod:501 ../df/virt-df.pod:235
-#: ../edit/virt-edit.pod:368 ../rescue/virt-rescue.pod:296
+#: ../edit/virt-edit.pod:368 ../rescue/virt-rescue.pod:334
#: ../resize/virt-resize.pod:711 ../sparsify/virt-sparsify.pod:264
#: ../tools/virt-list-filesystems.pl:208 ../tools/virt-list-partitions.pl:277
#: ../tools/virt-make-fs.pl:582 ../tools/virt-tar.pl:311
@@ -1071,7 +1071,7 @@ msgstr "АВТОР"
#: ../cat/virt-filesystems.pod:398 ../cat/virt-ls.pod:509
#: ../clone/virt-sysprep.pod:503 ../df/virt-df.pod:237
#: ../edit/virt-edit.pod:370 ../inspector/virt-inspector.pod:395
-#: ../rescue/virt-rescue.pod:298 ../resize/virt-resize.pod:713
+#: ../rescue/virt-rescue.pod:336 ../resize/virt-resize.pod:713
#: ../sparsify/virt-sparsify.pod:266 ../tools/virt-list-filesystems.pl:210
#: ../tools/virt-list-partitions.pl:279 ../tools/virt-make-fs.pl:584
#: ../tools/virt-tar.pl:313 ../tools/virt-win-reg.pl:785
@@ -1089,7 +1089,7 @@ msgstr "Richard W.M. Jones L<http://people.redhat.com/~rjones/>"
#: ../fish/virt-tar-out.pod:55 ../fuse/guestmount.pod:332
#: ../inspector/virt-inspector.pod:403 ../java/examples/guestfs-java.pod:62
#: ../ocaml/examples/guestfs-ocaml.pod:95 ../perl/examples/guestfs-perl.pod:56
-#: ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:300
+#: ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:338
#: ../resize/virt-resize.pod:715 ../ruby/examples/guestfs-ruby.pod:52
#: ../sparsify/virt-sparsify.pod:268 ../src/guestfs.pod:3352
#: ../test-tool/libguestfs-test-tool.pod:110
@@ -1113,7 +1113,7 @@ msgstr ""
#: ../fish/virt-copy-in.pod:69 ../fish/virt-copy-out.pod:58
#: ../fish/virt-tar-in.pod:67 ../fish/virt-tar-out.pod:60
#: ../fuse/guestmount.pod:337 ../inspector/virt-inspector.pod:407
-#: ../rescue/virt-rescue.pod:304 ../resize/virt-resize.pod:719
+#: ../rescue/virt-rescue.pod:342 ../resize/virt-resize.pod:719
#: ../sparsify/virt-sparsify.pod:272 ../test-tool/libguestfs-test-tool.pod:115
#: ../tools/virt-list-filesystems.pl:216 ../tools/virt-list-partitions.pl:285
#: ../tools/virt-make-fs.pl:590 ../tools/virt-tar.pl:319
@@ -1133,7 +1133,7 @@ msgstr ""
#: ../fish/virt-copy-in.pod:74 ../fish/virt-copy-out.pod:63
#: ../fish/virt-tar-in.pod:72 ../fish/virt-tar-out.pod:65
#: ../fuse/guestmount.pod:342 ../inspector/virt-inspector.pod:412
-#: ../rescue/virt-rescue.pod:309 ../resize/virt-resize.pod:724
+#: ../rescue/virt-rescue.pod:347 ../resize/virt-resize.pod:724
#: ../sparsify/virt-sparsify.pod:277 ../test-tool/libguestfs-test-tool.pod:120
#: ../tools/virt-list-filesystems.pl:221 ../tools/virt-list-partitions.pl:290
#: ../tools/virt-make-fs.pl:595 ../tools/virt-tar.pl:324
@@ -1157,7 +1157,7 @@ msgstr ""
#: ../fish/virt-copy-in.pod:79 ../fish/virt-copy-out.pod:68
#: ../fish/virt-tar-in.pod:77 ../fish/virt-tar-out.pod:70
#: ../fuse/guestmount.pod:347 ../inspector/virt-inspector.pod:417
-#: ../rescue/virt-rescue.pod:314 ../resize/virt-resize.pod:729
+#: ../rescue/virt-rescue.pod:352 ../resize/virt-resize.pod:729
#: ../sparsify/virt-sparsify.pod:282 ../test-tool/libguestfs-test-tool.pod:125
#: ../tools/virt-list-filesystems.pl:226 ../tools/virt-list-partitions.pl:295
#: ../tools/virt-make-fs.pl:600 ../tools/virt-tar.pl:329
@@ -1367,7 +1367,7 @@ msgstr ""
#. type: textblock
#: ../cat/virt-cat.pod:74 ../cat/virt-filesystems.pod:103
#: ../cat/virt-ls.pod:273 ../df/virt-df.pod:71 ../edit/virt-edit.pod:74
-#: ../inspector/virt-inspector.pod:67 ../rescue/virt-rescue.pod:96
+#: ../inspector/virt-inspector.pod:67 ../rescue/virt-rescue.pod:124
msgid ""
"Add I<file> which should be a disk image from a virtual machine. If the "
"virtual machine has multiple block devices, you must supply all of them with "
@@ -1428,7 +1428,7 @@ msgstr ""
#. type: =head1
#: ../cat/virt-cat.pod:152 ../cat/virt-ls.pod:443 ../edit/virt-edit.pod:179
-#: ../inspector/virt-inspector.pod:137 ../rescue/virt-rescue.pod:209
+#: ../inspector/virt-inspector.pod:137 ../rescue/virt-rescue.pod:246
msgid "OLD-STYLE COMMAND LINE ARGUMENTS"
msgstr ""
@@ -1447,7 +1447,7 @@ msgstr ""
#. type: textblock
#: ../cat/virt-cat.pod:158 ../cat/virt-ls.pod:449 ../edit/virt-edit.pod:185
-#: ../inspector/virt-inspector.pod:143 ../rescue/virt-rescue.pod:215
+#: ../inspector/virt-inspector.pod:143 ../rescue/virt-rescue.pod:252
msgid "or"
msgstr "або"
@@ -1461,7 +1461,7 @@ msgstr ""
#. type: textblock
#: ../cat/virt-cat.pod:162 ../cat/virt-ls.pod:453 ../edit/virt-edit.pod:189
-#: ../inspector/virt-inspector.pod:147 ../rescue/virt-rescue.pod:219
+#: ../inspector/virt-inspector.pod:147 ../rescue/virt-rescue.pod:256
msgid ""
"whereas in this version you should use I<-a> or I<-d> respectively to avoid "
"the confusing case where a disk image might have the same name as a guest."
@@ -1469,7 +1469,7 @@ msgstr ""
#. type: textblock
#: ../cat/virt-cat.pod:166 ../cat/virt-ls.pod:457 ../edit/virt-edit.pod:193
-#: ../inspector/virt-inspector.pod:151 ../rescue/virt-rescue.pod:223
+#: ../inspector/virt-inspector.pod:151 ../rescue/virt-rescue.pod:260
msgid "For compatibility the old style is still supported."
msgstr ""
@@ -2328,7 +2328,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-ls.pod:13 ../df/virt-df.pod:15 ../rescue/virt-rescue.pod:13
+#: ../cat/virt-ls.pod:13 ../df/virt-df.pod:15 ../rescue/virt-rescue.pod:15
msgid "Old style:"
msgstr "Старий стиль:"
@@ -3084,7 +3084,7 @@ msgstr ""
#. type: textblock
#: ../cat/virt-ls.pod:513 ../df/virt-df.pod:241 ../edit/virt-edit.pod:374
-#: ../rescue/virt-rescue.pod:302
+#: ../rescue/virt-rescue.pod:340
msgid "Copyright (C) 2009-2011 Red Hat Inc."
msgstr "©Red Hat Inc., 2009–2011"
@@ -4150,7 +4150,7 @@ msgstr ""
#. type: =head1
#: ../edit/virt-edit.pod:21 ../fish/guestfish.pod:23
#: ../fish/virt-copy-in.pod:13 ../fish/virt-tar-in.pod:15
-#: ../fuse/guestmount.pod:15 ../rescue/virt-rescue.pod:19
+#: ../fuse/guestmount.pod:15 ../rescue/virt-rescue.pod:21
#: ../tools/virt-tar.pl:64 ../tools/virt-win-reg.pl:51
msgid "WARNING"
msgstr "ПОПЕРЕДЖЕННЯ"
@@ -4626,7 +4626,7 @@ msgstr ""
#. type: =head1
#: ../edit/virt-edit.pod:329 ../fish/guestfish.pod:1119
-#: ../rescue/virt-rescue.pod:261 ../sparsify/virt-sparsify.pod:232
+#: ../rescue/virt-rescue.pod:298 ../sparsify/virt-sparsify.pod:232
#: ../src/guestfs.pod:3209 ../test-tool/libguestfs-test-tool.pod:95
msgid "ENVIRONMENT VARIABLES"
msgstr "ЗМІННІ СЕРЕДОВИЩА"
@@ -19440,13 +19440,13 @@ msgstr ""
#. type: =item
#: ../fish/guestfish.pod:369 ../fuse/guestmount.pod:248
-#: ../rescue/virt-rescue.pod:161
+#: ../rescue/virt-rescue.pod:189
msgid "B<-r>"
msgstr "B<-r>"
#. type: =item
#: ../fish/guestfish.pod:371 ../fuse/guestmount.pod:250
-#: ../rescue/virt-rescue.pod:163
+#: ../rescue/virt-rescue.pod:191
msgid "B<--ro>"
msgstr "B<--ro>"
@@ -19458,7 +19458,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:376 ../rescue/virt-rescue.pod:167
+#: ../fish/guestfish.pod:376 ../rescue/virt-rescue.pod:195
msgid ""
"The option must always be used if the disk image or virtual machine might be "
"running, and is generally recommended in cases where you don't need write "
@@ -19480,7 +19480,7 @@ msgstr ""
#. type: =item
#: ../fish/guestfish.pod:386 ../fuse/guestmount.pod:262
-#: ../rescue/virt-rescue.pod:173
+#: ../rescue/virt-rescue.pod:201
msgid "B<--selinux>"
msgstr "B<--selinux>"
@@ -19502,13 +19502,13 @@ msgstr ""
#. type: =item
#: ../fish/guestfish.pod:403 ../fuse/guestmount.pod:278
-#: ../rescue/virt-rescue.pod:194
+#: ../rescue/virt-rescue.pod:231
msgid "B<-w>"
msgstr "B<-w>"
#. type: =item
#: ../fish/guestfish.pod:405 ../fuse/guestmount.pod:280
-#: ../rescue/virt-rescue.pod:196
+#: ../rescue/virt-rescue.pod:233
msgid "B<--rw>"
msgstr "B<--rw>"
@@ -21304,25 +21304,25 @@ msgstr ""
#. type: =head1
#: ../fish/guestfish.pod:1209 ../fuse/guestmount.pod:297
-#: ../rescue/virt-rescue.pod:273
+#: ../rescue/virt-rescue.pod:310
msgid "FILES"
msgstr "ФАЙЛИ"
#. type: =item
#: ../fish/guestfish.pod:1213 ../fuse/guestmount.pod:301
-#: ../rescue/virt-rescue.pod:277
+#: ../rescue/virt-rescue.pod:314
msgid "$HOME/.libguestfs-tools.rc"
msgstr ""
#. type: =item
#: ../fish/guestfish.pod:1215 ../fuse/guestmount.pod:303
-#: ../rescue/virt-rescue.pod:279
+#: ../rescue/virt-rescue.pod:316
msgid "/etc/libguestfs-tools.conf"
msgstr ""
#. type: textblock
#: ../fish/guestfish.pod:1217 ../fuse/guestmount.pod:305
-#: ../rescue/virt-rescue.pod:281
+#: ../rescue/virt-rescue.pod:318
msgid ""
"This configuration file controls the default read-only or read-write mode "
"(I<--ro> or I<--rw>)."
@@ -21928,7 +21928,7 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../fuse/guestmount.pod:73 ../rescue/virt-rescue.pod:68
+#: ../fuse/guestmount.pod:73 ../rescue/virt-rescue.pod:96
#: ../resize/virt-resize.pod:621
msgid "NOTES"
msgstr "ПРИМІТКИ"
@@ -22146,7 +22146,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../fuse/guestmount.pod:260 ../rescue/virt-rescue.pod:171
+#: ../fuse/guestmount.pod:260 ../rescue/virt-rescue.pod:199
msgid "See also L<guestfish(1)/OPENING DISKS FOR READ AND WRITE>."
msgstr "Див. також L<guestfish(1)/OPENING DISKS FOR READ AND WRITE>."
@@ -22167,7 +22167,7 @@ msgstr ""
#. type: textblock
#: ../fuse/guestmount.pod:285 ../fuse/guestmount.pod:308
-#: ../rescue/virt-rescue.pod:201 ../rescue/virt-rescue.pod:284
+#: ../rescue/virt-rescue.pod:238 ../rescue/virt-rescue.pod:321
msgid "See L<guestfish(1)/OPENING DISKS FOR READ AND WRITE>."
msgstr "Див. L<guestfish(1)/OPENING DISKS FOR READ AND WRITE>."
@@ -23137,7 +23137,20 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:15
+#: ../rescue/virt-rescue.pod:13
+#, fuzzy, no-wrap
+#| msgid ""
+#| " virt-filesystems --format=raw -a disk.img\n"
+#| "\n"
+msgid ""
+" virt-rescue --suggest (-d domname | -a disk.img ...)\n"
+"\n"
+msgstr ""
+" virt-filesystems --format=raw -a диск.img\n"
+"\n"
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:17
#, no-wrap
msgid ""
" virt-rescue [--options] domname\n"
@@ -23145,7 +23158,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:17
+#: ../rescue/virt-rescue.pod:19
#, no-wrap
msgid ""
" virt-rescue [--options] disk.img [disk.img ...]\n"
@@ -23153,7 +23166,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:21
+#: ../rescue/virt-rescue.pod:23
msgid ""
"You must I<not> use C<virt-rescue> on live virtual machines. Doing so will "
"probably result in disk corruption in the VM. C<virt-rescue> tries to stop "
@@ -23161,7 +23174,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:25
+#: ../rescue/virt-rescue.pod:27
msgid ""
"However if you use the I<--ro> (read only) option, then you can attach a "
"shell to a live virtual machine. The results might be strange or "
@@ -23169,7 +23182,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:31
+#: ../rescue/virt-rescue.pod:33
msgid ""
"virt-rescue is like a Rescue CD, but for virtual machines, and without the "
"need for a CD. virt-rescue gives you a rescue shell and some simple "
@@ -23178,14 +23191,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:36
+#: ../rescue/virt-rescue.pod:38
msgid ""
"You can run virt-rescue on any virtual machine known to libvirt, or directly "
"on disk image(s):"
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:39
+#: ../rescue/virt-rescue.pod:41
#, no-wrap
msgid ""
" virt-rescue -d GuestName\n"
@@ -23193,7 +23206,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:41
+#: ../rescue/virt-rescue.pod:43
#, no-wrap
msgid ""
" virt-rescue --ro -a /path/to/disk.img\n"
@@ -23201,7 +23214,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:43
+#: ../rescue/virt-rescue.pod:45
#, no-wrap
msgid ""
" virt-rescue -a /dev/sdc\n"
@@ -23209,12 +23222,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:45
+#: ../rescue/virt-rescue.pod:47
msgid "For live VMs you I<must> use the --ro option."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:47
+#: ../rescue/virt-rescue.pod:49
msgid ""
"When you run virt-rescue on a virtual machine or disk image, you are placed "
"in an interactive bash shell where you can use many ordinary Linux "
@@ -23224,34 +23237,98 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:54
+#: ../rescue/virt-rescue.pod:56
msgid ""
-"In the example below, we list logical volumes, then choose one to mount "
-"under C</sysroot>:"
+"You can get virt-rescue to suggest mount commands for you by using the I<--"
+"suggest> option (in another terminal):"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:59
+#, no-wrap
+msgid ""
+" $ virt-rescue --suggest -d Fedora15\n"
+" Inspecting the virtual machine or disk image ...\n"
+" \n"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:62
+#, no-wrap
+msgid ""
+" This disk contains one or more operating systems. You can use these\n"
+" mount commands in virt-rescue (at the ><rescue> prompt) to mount the\n"
+" filesystems.\n"
+" \n"
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:57
+#: ../rescue/virt-rescue.pod:66
+#, no-wrap
+msgid ""
+" # /dev/vg_f15x32/lv_root is the root of a linux operating system\n"
+" # type: linux, distro: fedora, version: 15.0\n"
+" # Fedora release 15 (Lovelock)\n"
+" \n"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:70
+#, no-wrap
+msgid ""
+" mount /dev/vg_f15x32/lv_root /sysroot/\n"
+" mount /dev/vda1 /sysroot/boot\n"
+" mount --bind /dev /sysroot/dev\n"
+" mount --bind /dev/pts /sysroot/dev/pts\n"
+" mount --bind /proc /sysroot/proc\n"
+" mount --bind /sys /sysroot/sys\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: ../rescue/virt-rescue.pod:77
+msgid ""
+"Another way is to list the logical volumes (with L<lvs(8)>) and partitions "
+"(with L<parted(8)>) and mount them by hand:"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:80
#, no-wrap
msgid ""
" ><rescue> lvs\n"
" LV VG Attr LSize Origin Snap% Move Log Copy% Convert\n"
-" lv_root vg_f11x64 -wi-a- 8.83G\n"
-" lv_swap vg_f11x64 -wi-a- 992.00M\n"
-" ><rescue> mount /dev/vg_f11x64/lv_root /sysroot\n"
+" lv_root vg_f15x32 -wi-a- 8.83G\n"
+" lv_swap vg_f15x32 -wi-a- 992.00M\n"
+" ><rescue> mount /dev/vg_f15x32/lv_root /sysroot\n"
+" ><rescue> mount /dev/vda1 /sysroot/boot\n"
" ><rescue> ls /sysroot\n"
"\n"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:64
+#: ../rescue/virt-rescue.pod:88
msgid ""
-"If you don't know what filesystems are available on the virtual machine then "
-"you can use commands such as L<parted(8)> and L<lvs(8)> to find out."
+"Another command to list available filesystems is L<virt-filesystems(1)>."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:70
+#: ../rescue/virt-rescue.pod:91
+msgid ""
+"To run commands in a Linux guest (for example, grub), you should chroot into "
+"the /sysroot directory first:"
+msgstr ""
+
+#. type: verbatim
+#: ../rescue/virt-rescue.pod:94
+#, no-wrap
+msgid ""
+" ><rescue> chroot /sysroot\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: ../rescue/virt-rescue.pod:98
msgid ""
"Virt-rescue can be used on I<any> disk image file or device, not just a "
"virtual machine. For example you can use it on a blank file if you want to "
@@ -23261,14 +23338,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:76
+#: ../rescue/virt-rescue.pod:104
msgid ""
"Virt-rescue does not require root. You only need to run it as root if you "
"need root to open the disk image."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:79
+#: ../rescue/virt-rescue.pod:107
msgid ""
"This tool is just designed for quick interactive hacking on a virtual "
"machine. For more structured access to a virtual machine disk image, you "
@@ -23277,17 +23354,17 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:103
+#: ../rescue/virt-rescue.pod:131
msgid "B<--append kernelopts>"
msgstr "B<--append параметри_ядра>"
#. type: textblock
-#: ../rescue/virt-rescue.pod:105
+#: ../rescue/virt-rescue.pod:133
msgid "Pass additional options to the rescue kernel."
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:135
+#: ../rescue/virt-rescue.pod:163
#, no-wrap
msgid ""
" virt-rescue --format=raw -a disk.img\n"
@@ -23295,7 +23372,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:139
+#: ../rescue/virt-rescue.pod:167
#, no-wrap
msgid ""
" virt-rescue --format=raw -a disk.img --format -a another.img\n"
@@ -23303,17 +23380,17 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:148
+#: ../rescue/virt-rescue.pod:176
msgid "B<-m MB>"
msgstr "B<-m МБ>"
#. type: =item
-#: ../rescue/virt-rescue.pod:150
+#: ../rescue/virt-rescue.pod:178
msgid "B<--memsize MB>"
msgstr "B<--memsize МБ>"
#. type: textblock
-#: ../rescue/virt-rescue.pod:152
+#: ../rescue/virt-rescue.pod:180
msgid ""
"Change the amount of memory allocated to the rescue system. The default is "
"set by libguestfs and is small but adequate for running system tools. The "
@@ -23322,51 +23399,73 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:157
+#: ../rescue/virt-rescue.pod:185
msgid "B<--network>"
msgstr "B<--network>"
#. type: textblock
-#: ../rescue/virt-rescue.pod:159
+#: ../rescue/virt-rescue.pod:187
msgid "Enable QEMU user networking in the guest. See L</NETWORK>."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:165
+#: ../rescue/virt-rescue.pod:193
msgid "Open the image read-only."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:175
+#: ../rescue/virt-rescue.pod:203
msgid ""
"Enable SELinux in the rescue appliance. You should read L<guestfs(3)/"
"SELINUX> before using this option."
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:178
+#: ../rescue/virt-rescue.pod:206
msgid "B<--smp> N"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:180
+#: ../rescue/virt-rescue.pod:208
msgid "Enable N E<ge> 2 virtual CPUs in the rescue appliance."
msgstr ""
+#. type: =item
+#: ../rescue/virt-rescue.pod:210
+#, fuzzy
+#| msgid "B<--quiet>"
+msgid "B<--suggest>"
+msgstr "B<--quiet>"
+
+#. type: textblock
+#: ../rescue/virt-rescue.pod:212
+msgid ""
+"Inspect the disk image and suggest what mount commands should be used to "
+"mount the disks. You should use the I<--suggest> option in a second "
+"terminal, then paste the commands into another virt-rescue."
+msgstr ""
+
+#. type: textblock
+#: ../rescue/virt-rescue.pod:216
+msgid ""
+"This option implies I<--ro> and is safe to use even if the guest is up or if "
+"another virt-rescue is running."
+msgstr ""
+
#. type: textblock
-#: ../rescue/virt-rescue.pod:198
+#: ../rescue/virt-rescue.pod:235
msgid ""
"This changes the I<-a> and I<-d> options so that disks are added and mounts "
"are done read-write."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:211
+#: ../rescue/virt-rescue.pod:248
msgid "Previous versions of virt-rescue allowed you to write either:"
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:213
+#: ../rescue/virt-rescue.pod:250
#, no-wrap
msgid ""
" virt-rescue disk.img [disk.img ...]\n"
@@ -23374,7 +23473,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:217
+#: ../rescue/virt-rescue.pod:254
#, no-wrap
msgid ""
" virt-rescue guestname\n"
@@ -23382,12 +23481,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../rescue/virt-rescue.pod:225
+#: ../rescue/virt-rescue.pod:262
msgid "NETWORK"
msgstr "МЕРЕЖА"
#. type: textblock
-#: ../rescue/virt-rescue.pod:227
+#: ../rescue/virt-rescue.pod:264
msgid ""
"Adding the I<--network> option enables QEMU user networking in the rescue "
"appliance. There are some differences between user networking and ordinary "
@@ -23395,12 +23494,12 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:233
+#: ../rescue/virt-rescue.pod:270
msgid "ping does not work"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:235
+#: ../rescue/virt-rescue.pod:272
msgid ""
"Because the ICMP ECHO_REQUEST protocol generally requires root in order to "
"send the ping packets, and because virt-rescue must be able to run as non-"
@@ -23411,22 +23510,22 @@ msgid ""
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:242
+#: ../rescue/virt-rescue.pod:279
msgid "cannot receive connections"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:244
+#: ../rescue/virt-rescue.pod:281
msgid "QEMU user networking cannot receive incoming connections."
msgstr ""
#. type: =item
-#: ../rescue/virt-rescue.pod:246
+#: ../rescue/virt-rescue.pod:283
msgid "making TCP connections"
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:248
+#: ../rescue/virt-rescue.pod:285
msgid ""
"The virt-rescue appliance needs to be small and so does not include many "
"network tools. In particular there is no L<telnet(1)> command. You can "
@@ -23435,7 +23534,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../rescue/virt-rescue.pod:253
+#: ../rescue/virt-rescue.pod:290
#, no-wrap
msgid ""
" exec 3<>/dev/tcp/redhat.com/80\n"
@@ -23445,23 +23544,29 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:257
+#: ../rescue/virt-rescue.pod:294
msgid "See L<bash(1)> for more details."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:263
+#: ../rescue/virt-rescue.pod:300
msgid ""
"Several environment variables affect virt-rescue. See L<guestfs(3)/"
"ENVIRONMENT VARIABLES> for the complete list."
msgstr ""
#. type: textblock
-#: ../rescue/virt-rescue.pod:290
+#: ../rescue/virt-rescue.pod:327
+#, fuzzy
+#| msgid ""
+#| "L<guestfs(3)>, L<guestfish(1)>, L<virt-copy-out(1)>, L<virt-edit(1)>, "
+#| "L<virt-tar-out(1)>, L<http://libguestfs.org/>."
msgid ""
-"L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-edit(1)>, L<http://"
-"libguestfs.org/>."
+"L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-edit(1)>, L<virt-"
+"filesystems(1)>, L<http://libguestfs.org/>."
msgstr ""
+"L<guestfs(3)>, L<guestfish(1)>, L<virt-copy-out(1)>, L<virt-edit(1)>, L<virt-"
+"tar-out(1)>, L<http://libguestfs.org/>."
#. type: textblock
#: ../resize/virt-resize.pod:5
diff --git a/po-docs/uk/guestfish.1 b/po-docs/uk/guestfish.1
index c739f44..a15a1bb 100644
--- a/po-docs/uk/guestfish.1
+++ b/po-docs/uk/guestfish.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "guestfish 1"
-.TH guestfish 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH guestfish 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/guestfs.3 b/po-docs/uk/guestfs.3
index ab9a3a3..16d83d2 100644
--- a/po-docs/uk/guestfs.3
+++ b/po-docs/uk/guestfs.3
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "guestfs 3"
-.TH guestfs 3 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH guestfs 3 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/guestmount.1 b/po-docs/uk/guestmount.1
index aa38a3f..cd5c2ef 100644
--- a/po-docs/uk/guestmount.1
+++ b/po-docs/uk/guestmount.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "guestmount 1"
-.TH guestmount 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH guestmount 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/libguestfs-test-tool.1 b/po-docs/uk/libguestfs-test-tool.1
index fe7b53a..7a44587 100644
--- a/po-docs/uk/libguestfs-test-tool.1
+++ b/po-docs/uk/libguestfs-test-tool.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "libguestfs-test-tool 1"
-.TH libguestfs-test-tool 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH libguestfs-test-tool 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-alignment-scan.1 b/po-docs/uk/virt-alignment-scan.1
index fb3d1df..3d6f05c 100644
--- a/po-docs/uk/virt-alignment-scan.1
+++ b/po-docs/uk/virt-alignment-scan.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-alignment-scan 1"
-.TH virt-alignment-scan 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-alignment-scan 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-cat.1 b/po-docs/uk/virt-cat.1
index cac2586..76d1539 100644
--- a/po-docs/uk/virt-cat.1
+++ b/po-docs/uk/virt-cat.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-cat 1"
-.TH virt-cat 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-cat 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-copy-in.1 b/po-docs/uk/virt-copy-in.1
index b22be93..e01b605 100644
--- a/po-docs/uk/virt-copy-in.1
+++ b/po-docs/uk/virt-copy-in.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-copy-in 1"
-.TH virt-copy-in 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-copy-in 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-copy-out.1 b/po-docs/uk/virt-copy-out.1
index b6b0f39..d21163b 100644
--- a/po-docs/uk/virt-copy-out.1
+++ b/po-docs/uk/virt-copy-out.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-copy-out 1"
-.TH virt-copy-out 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-copy-out 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-df.1 b/po-docs/uk/virt-df.1
index 1c7245e..4c798d4 100644
--- a/po-docs/uk/virt-df.1
+++ b/po-docs/uk/virt-df.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-df 1"
-.TH virt-df 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-df 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-edit.1 b/po-docs/uk/virt-edit.1
index 5db87d0..6c623c8 100644
--- a/po-docs/uk/virt-edit.1
+++ b/po-docs/uk/virt-edit.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-edit 1"
-.TH virt-edit 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-edit 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-filesystems.1 b/po-docs/uk/virt-filesystems.1
index a6bcb4a..14922cd 100644
--- a/po-docs/uk/virt-filesystems.1
+++ b/po-docs/uk/virt-filesystems.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-filesystems 1"
-.TH virt-filesystems 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-filesystems 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-inspector.1 b/po-docs/uk/virt-inspector.1
index ad36ae3..81db61f 100644
--- a/po-docs/uk/virt-inspector.1
+++ b/po-docs/uk/virt-inspector.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-inspector 1"
-.TH virt-inspector 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-inspector 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-list-filesystems.1 b/po-docs/uk/virt-list-filesystems.1
index 657ab8d..6641d38 100644
--- a/po-docs/uk/virt-list-filesystems.1
+++ b/po-docs/uk/virt-list-filesystems.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-list-filesystems.pl 1"
-.TH virt-list-filesystems.pl 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-list-filesystems.pl 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-list-partitions.1 b/po-docs/uk/virt-list-partitions.1
index de4d2e4..0e1c568 100644
--- a/po-docs/uk/virt-list-partitions.1
+++ b/po-docs/uk/virt-list-partitions.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-list-partitions.pl 1"
-.TH virt-list-partitions.pl 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-list-partitions.pl 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-ls.1 b/po-docs/uk/virt-ls.1
index 1f05d9e..7ec3fc7 100644
--- a/po-docs/uk/virt-ls.1
+++ b/po-docs/uk/virt-ls.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-ls 1"
-.TH virt-ls 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-ls 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-make-fs.1 b/po-docs/uk/virt-make-fs.1
index ae64402..e4bfbb2 100644
--- a/po-docs/uk/virt-make-fs.1
+++ b/po-docs/uk/virt-make-fs.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-make-fs.pl 1"
-.TH virt-make-fs.pl 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-make-fs.pl 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-rescue.1 b/po-docs/uk/virt-rescue.1
index bc0cfb3..f592969 100644
--- a/po-docs/uk/virt-rescue.1
+++ b/po-docs/uk/virt-rescue.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-rescue 1"
-.TH virt-rescue 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-rescue 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -76,6 +76,8 @@ virt-rescue \- Run a rescue shell on a virtual machine
\& virt\-rescue [\-\-options] \-d domname
\&
\& virt\-rescue [\-\-options] \-a disk.img [\-a disk.img ...]
+\&
+\& virt\-rescue \-\-suggest (\-d domname | \-a disk.img ...)
.Ve
.PP
Старий стиль:
@@ -120,20 +122,50 @@ commands. What you see in \f(CW\*(C`/\*(C'\fR (\f(CW\*(C`/bin\*(C'\fR, \f(CW\*(
appliance. You must mount the virtual machine's filesystems by hand. There
is an empty directory called \f(CW\*(C`/sysroot\*(C'\fR where you can mount filesystems.
.PP
-In the example below, we list logical volumes, then choose one to mount
-under \f(CW\*(C`/sysroot\*(C'\fR:
+You can get virt-rescue to suggest mount commands for you by using the
+\&\fI\-\-suggest\fR option (in another terminal):
+.PP
+.Vb 2
+\& $ virt\-rescue \-\-suggest \-d Fedora15
+\& Inspecting the virtual machine or disk image ...
+\&
+\& This disk contains one or more operating systems. You can use these
+\& mount commands in virt\-rescue (at the ><rescue> prompt) to mount the
+\& filesystems.
+\&
+\& # /dev/vg_f15x32/lv_root is the root of a linux operating system
+\& # type: linux, distro: fedora, version: 15.0
+\& # Fedora release 15 (Lovelock)
+\&
+\& mount /dev/vg_f15x32/lv_root /sysroot/
+\& mount /dev/vda1 /sysroot/boot
+\& mount \-\-bind /dev /sysroot/dev
+\& mount \-\-bind /dev/pts /sysroot/dev/pts
+\& mount \-\-bind /proc /sysroot/proc
+\& mount \-\-bind /sys /sysroot/sys
+.Ve
.PP
-.Vb 6
+Another way is to list the logical volumes (with \fIlvs\fR\|(8)) and partitions
+(with \fIparted\fR\|(8)) and mount them by hand:
+.PP
+.Vb 7
\& ><rescue> lvs
\& LV VG Attr LSize Origin Snap% Move Log Copy% Convert
-\& lv_root vg_f11x64 \-wi\-a\- 8.83G
-\& lv_swap vg_f11x64 \-wi\-a\- 992.00M
-\& ><rescue> mount /dev/vg_f11x64/lv_root /sysroot
+\& lv_root vg_f15x32 \-wi\-a\- 8.83G
+\& lv_swap vg_f15x32 \-wi\-a\- 992.00M
+\& ><rescue> mount /dev/vg_f15x32/lv_root /sysroot
+\& ><rescue> mount /dev/vda1 /sysroot/boot
\& ><rescue> ls /sysroot
.Ve
.PP
-If you don't know what filesystems are available on the virtual machine then
-you can use commands such as \fIparted\fR\|(8) and \fIlvs\fR\|(8) to find out.
+Another command to list available filesystems is \fIvirt\-filesystems\fR\|(1).
+.PP
+To run commands in a Linux guest (for example, grub), you should chroot into
+the /sysroot directory first:
+.PP
+.Vb 1
+\& ><rescue> chroot /sysroot
+.Ve
.SS "ПРИМІТКИ"
.IX Subsection "ПРИМІТКИ"
Virt-rescue can be used on \fIany\fR disk image file or device, not just a
@@ -250,6 +282,14 @@ Enable SELinux in the rescue appliance. You should read
.IP "\fB\-\-smp\fR N" 4
.IX Item "--smp N"
Enable N ≥ 2 virtual CPUs in the rescue appliance.
+.IP "\fB\-\-suggest\fR" 4
+.IX Item "--suggest"
+Inspect the disk image and suggest what mount commands should be used to
+mount the disks. You should use the \fI\-\-suggest\fR option in a second
+terminal, then paste the commands into another virt-rescue.
+.Sp
+This option implies \fI\-\-ro\fR and is safe to use even if the guest is up or if
+another virt-rescue is running.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
@@ -351,7 +391,7 @@ This configuration file controls the default read-only or read-write mode
.SH "ТАКОЖ ПЕРЕГЛЯНЬТЕ"
.IX Header "ТАКОЖ ПЕРЕГЛЯНЬТЕ"
\&\fIguestfs\fR\|(3), \fIguestfish\fR\|(1), \fIvirt\-cat\fR\|(1), \fIvirt\-edit\fR\|(1),
-<http://libguestfs.org/>.
+\&\fIvirt\-filesystems\fR\|(1), <http://libguestfs.org/>.
.SH "АВТОР"
.IX Header "АВТОР"
Richard W.M. Jones <http://people.redhat.com/~rjones/>
diff --git a/po-docs/uk/virt-rescue.pod b/po-docs/uk/virt-rescue.pod
index 592092c..b82a2e1 100644
--- a/po-docs/uk/virt-rescue.pod
+++ b/po-docs/uk/virt-rescue.pod
@@ -10,6 +10,8 @@ virt-rescue - Run a rescue shell on a virtual machine
virt-rescue [--options] -a disk.img [-a disk.img ...]
+ virt-rescue --suggest (-d domname | -a disk.img ...)
+
Старий стиль:
virt-rescue [--options] domname
@@ -50,18 +52,44 @@ commands. What you see in C</> (C</bin>, C</lib> etc) is the rescue
appliance. You must mount the virtual machine's filesystems by hand. There
is an empty directory called C</sysroot> where you can mount filesystems.
-In the example below, we list logical volumes, then choose one to mount
-under C</sysroot>:
+You can get virt-rescue to suggest mount commands for you by using the
+I<--suggest> option (in another terminal):
+
+ $ virt-rescue --suggest -d Fedora15
+ Inspecting the virtual machine or disk image ...
+
+ This disk contains one or more operating systems. You can use these
+ mount commands in virt-rescue (at the ><rescue> prompt) to mount the
+ filesystems.
+
+ # /dev/vg_f15x32/lv_root is the root of a linux operating system
+ # type: linux, distro: fedora, version: 15.0
+ # Fedora release 15 (Lovelock)
+
+ mount /dev/vg_f15x32/lv_root /sysroot/
+ mount /dev/vda1 /sysroot/boot
+ mount --bind /dev /sysroot/dev
+ mount --bind /dev/pts /sysroot/dev/pts
+ mount --bind /proc /sysroot/proc
+ mount --bind /sys /sysroot/sys
+
+Another way is to list the logical volumes (with L<lvs(8)>) and partitions
+(with L<parted(8)>) and mount them by hand:
><rescue> lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
- lv_root vg_f11x64 -wi-a- 8.83G
- lv_swap vg_f11x64 -wi-a- 992.00M
- ><rescue> mount /dev/vg_f11x64/lv_root /sysroot
+ lv_root vg_f15x32 -wi-a- 8.83G
+ lv_swap vg_f15x32 -wi-a- 992.00M
+ ><rescue> mount /dev/vg_f15x32/lv_root /sysroot
+ ><rescue> mount /dev/vda1 /sysroot/boot
><rescue> ls /sysroot
-If you don't know what filesystems are available on the virtual machine then
-you can use commands such as L<parted(8)> and L<lvs(8)> to find out.
+Another command to list available filesystems is L<virt-filesystems(1)>.
+
+To run commands in a Linux guest (for example, grub), you should chroot into
+the /sysroot directory first:
+
+ ><rescue> chroot /sysroot
=head2 ПРИМІТКИ
@@ -177,6 +205,15 @@ L<guestfs(3)/SELINUX> before using this option.
Enable N E<ge> 2 virtual CPUs in the rescue appliance.
+=item B<--suggest>
+
+Inspect the disk image and suggest what mount commands should be used to
+mount the disks. You should use the I<--suggest> option in a second
+terminal, then paste the commands into another virt-rescue.
+
+This option implies I<--ro> and is safe to use even if the guest is up or if
+another virt-rescue is running.
+
=item B<-v>
=item B<--verbose>
@@ -285,7 +322,7 @@ This configuration file controls the default read-only or read-write mode
=head1 ТАКОЖ ПЕРЕГЛЯНЬТЕ
L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-edit(1)>,
-L<http://libguestfs.org/>.
+L<virt-filesystems(1)>, L<http://libguestfs.org/>.
=head1 АВТОР
diff --git a/po-docs/uk/virt-resize.1 b/po-docs/uk/virt-resize.1
index 21e58e5..b4e1db2 100644
--- a/po-docs/uk/virt-resize.1
+++ b/po-docs/uk/virt-resize.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-resize 1"
-.TH virt-resize 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-resize 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-sparsify.1 b/po-docs/uk/virt-sparsify.1
index 20b1ac2..2e975f1 100644
--- a/po-docs/uk/virt-sparsify.1
+++ b/po-docs/uk/virt-sparsify.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-sparsify 1"
-.TH virt-sparsify 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-sparsify 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-sysprep.1 b/po-docs/uk/virt-sysprep.1
index 1a39ce8..056ba67 100644
--- a/po-docs/uk/virt-sysprep.1
+++ b/po-docs/uk/virt-sysprep.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-sysprep 1"
-.TH virt-sysprep 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-sysprep 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-tar-in.1 b/po-docs/uk/virt-tar-in.1
index 17e3a75..3a07049 100644
--- a/po-docs/uk/virt-tar-in.1
+++ b/po-docs/uk/virt-tar-in.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-tar-in 1"
-.TH virt-tar-in 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-tar-in 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-tar-out.1 b/po-docs/uk/virt-tar-out.1
index 4cb4690..2a1a7db 100644
--- a/po-docs/uk/virt-tar-out.1
+++ b/po-docs/uk/virt-tar-out.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-tar-out 1"
-.TH virt-tar-out 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-tar-out 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-tar.1 b/po-docs/uk/virt-tar.1
index dc1f862..b3e8cec 100644
--- a/po-docs/uk/virt-tar.1
+++ b/po-docs/uk/virt-tar.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-tar.pl 1"
-.TH virt-tar.pl 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-tar.pl 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po-docs/uk/virt-win-reg.1 b/po-docs/uk/virt-win-reg.1
index d8828fc..5bc7963 100644
--- a/po-docs/uk/virt-win-reg.1
+++ b/po-docs/uk/virt-win-reg.1
@@ -62,7 +62,7 @@
.\" ========================================================================
.\"
.IX Title "virt-win-reg.pl 1"
-.TH virt-win-reg.pl 1 "2011-10-27" "libguestfs-1.15.0" "Virtualization Support"
+.TH virt-win-reg.pl 1 "2011-11-01" "libguestfs-1.15.1" "Virtualization Support"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 5a4af7c..fbdd780 100644
Binary files a/po/en_GB.gmo and b/po/en_GB.gmo differ
diff --git a/po/en_GB.po b/po/en_GB.po
index 12bf361..6aa4ce3 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: English (United Kingdom) (http://www.transifex.net/projects/p/"
@@ -22,7 +22,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Try `%s --help' for more information.\n"
@@ -51,7 +51,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: failed to create handle\n"
@@ -59,7 +59,7 @@ msgstr "guestfs_create: failed to create handle\n"
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: unknown long option: %s (%d)\n"
@@ -2886,8 +2886,8 @@ msgstr ""
msgid "{filename}: could not read initrd format"
msgstr ""
-#: rescue/virt-rescue.c:64
-#, c-format
+#: rescue/virt-rescue.c:66
+#, fuzzy, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
"Copyright (C) 2009-2010 Red Hat Inc.\n"
@@ -2906,29 +2906,98 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
" -x Trace libguestfs API calls\n"
"For more information, see the manpage %s(1).\n"
msgstr ""
+"%s: display free space on virtual filesystems\n"
+"Copyright (C) 2010 Red Hat Inc.\n"
+"Usage:\n"
+" %s [--options] -d domname\n"
+" %s [--options] -a disc.img [-a disc.img ...]\n"
+"Options:\n"
+" -a|--add image Add image\n"
+" -c|--connect uri Specify libvirt URI for -d option\n"
+" --csv Output as Comma-Separated Values\n"
+" -d|--domain guest Add discs from libvirt guest\n"
+" --format[=raw|..] Force disc format for -a option\n"
+" -h|--human-readable Human-readable sizes in --long output\n"
+" --help Display brief help\n"
+" -i|--inodes Display inodes\n"
+" --one-per-guest Separate appliance per guest\n"
+" --uuid Add UUIDs to --long output\n"
+" -v|--verbose Verbose messages\n"
+" -V|--version Display version and exit\n"
+" -x Trace libguestfs API calls\n"
+"For more information, see the manpage %s(1).\n"
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr ""
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr ""
diff --git a/po/es.gmo b/po/es.gmo
index 029ee60..1e77757 100644
Binary files a/po/es.gmo and b/po/es.gmo differ
diff --git a/po/es.po b/po/es.po
index 932df57..4f6ec79 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Spanish (Castilian) <trans-es at lists.fedoraproject.org>\n"
@@ -22,7 +22,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Intente con `%s --help' para más información.\n"
@@ -51,7 +51,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: falló al crear manipulador\n"
@@ -59,7 +59,7 @@ msgstr "guestfs_create: falló al crear manipulador\n"
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: opción extensa desconocida: %s (%d)\n"
@@ -3192,8 +3192,8 @@ msgstr "{path} no coincide con el patrón augeas"
msgid "{filename}: could not read initrd format"
msgstr "{filename}: no es posible leer formato initrd"
-#: rescue/virt-rescue.c:64
-#, c-format
+#: rescue/virt-rescue.c:66
+#, fuzzy, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
"Copyright (C) 2009-2010 Red Hat Inc.\n"
@@ -3212,29 +3212,99 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
" -x Trace libguestfs API calls\n"
"For more information, see the manpage %s(1).\n"
msgstr ""
+"%s: muestra el espacio disponible en el sistema de archivos virtual\n"
+"Copyright (C) 2010 Red Hat Inc.\n"
+"Usage:\n"
+" %s [--opciones] -d domname\n"
+" %s [--opciones] -a disk.img [-a disk.img ...]\n"
+"Opciones:\n"
+" -a|--add image Agrega una imagen\n"
+" -c|--connect uri Especifica URI de libvirt para la opción -d\n"
+" --csv Ofrece el resultado en valores separados por comas\n"
+" -d|--domain guest Agrega discos de huéspedes libvirt\n"
+" --format[=raw|..] Obliga al formateo de disco para la opción -a\n"
+" -h|--human-readable Ofrece el resultado de --long en un tamaño posible de "
+"ser leído por humanos\n"
+" --help Muestra una pequeña asistencia\n"
+" -i|--inodes Muestra los inodos\n"
+" --one-per-guest Distingue los dispositivos de cada huésped\n"
+" --uuid Agrega UUIDs a los resultados --long\n"
+" -v|--verbose Mensajes detallados\n"
+" -V|--version Muestra la versión y finaliza\n"
+" -x Rastrea llamadas API de libguestfs\n"
+"Para obtener mayor información, consulte la página man %s(1).\n"
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr ""
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr "%s: no se pudo analizar el tamaño '%s' de la memoria\n"
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, fuzzy, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr "no se ha ofrecido un nombre de dominio, o una imagen de disco\n"
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr "%s: estado de salida de proceso hijo desconocido (%d)\n"
diff --git a/po/gu.gmo b/po/gu.gmo
index 1af3115..3f70664 100644
Binary files a/po/gu.gmo and b/po/gu.gmo differ
diff --git a/po/gu.po b/po/gu.po
index a495fd6..3feeb96 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Gujarati <trans-gu at lists.fedoraproject.org>\n"
@@ -22,7 +22,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "વધારે જાણકારી માટે `%s --help' નો પ્રયત્ન કરો.\n"
@@ -51,7 +51,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: હેન્ડલ ને બનાવવાનું નિષ્ફળ\n"
@@ -59,7 +59,7 @@ msgstr "guestfs_create: હેન્ડલ ને બનાવવાનું
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: અજ્ઞાત લાંબો વિકલ્પ: %s (%d)\n"
@@ -2825,7 +2825,7 @@ msgstr ""
msgid "{filename}: could not read initrd format"
msgstr ""
-#: rescue/virt-rescue.c:64
+#: rescue/virt-rescue.c:66
#, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
@@ -2845,6 +2845,7 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
@@ -2852,22 +2853,70 @@ msgid ""
"For more information, see the manpage %s(1).\n"
msgstr ""
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr ""
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr ""
diff --git a/po/hi.gmo b/po/hi.gmo
index 76c4080..0fa3303 100644
Binary files a/po/hi.gmo and b/po/hi.gmo differ
diff --git a/po/hi.po b/po/hi.po
index 08a39ab..0f7bb1a 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Hindi <indlinux-hindi at lists.sourceforge.net>\n"
@@ -22,7 +22,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "अधिक सूचना के लिए `%s --help' आजमाएँ.\n"
@@ -51,7 +51,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: नियंत्रण बनाने में विफल\n"
@@ -59,7 +59,7 @@ msgstr "guestfs_create: नियंत्रण बनाने में व
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: unknown long option: %s (%d)\n"
@@ -2823,7 +2823,7 @@ msgstr ""
msgid "{filename}: could not read initrd format"
msgstr ""
-#: rescue/virt-rescue.c:64
+#: rescue/virt-rescue.c:66
#, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
@@ -2843,6 +2843,7 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
@@ -2850,22 +2851,70 @@ msgid ""
"For more information, see the manpage %s(1).\n"
msgstr ""
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr ""
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr ""
diff --git a/po/kn.gmo b/po/kn.gmo
index c8cdf3e..534e673 100644
Binary files a/po/kn.gmo and b/po/kn.gmo differ
diff --git a/po/kn.po b/po/kn.po
index 957034e..2397219 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Kannada (http://www.transifex.net/projects/p/fedora/team/"
@@ -22,7 +22,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ `%s -help' ಅನ್ನು ಪ್ರಯತ್ನಿಸಿ .\n"
@@ -51,7 +51,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: ಹ್ಯಾಂಡಲ್ ಅನ್ನು ನಿರ್ಮಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ\n"
@@ -59,7 +59,7 @@ msgstr "guestfs_create: ಹ್ಯಾಂಡಲ್ ಅನ್ನು ನಿರ್ಮ
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: ಗೊತ್ತಿರದ ಉದ್ದನೆಯ ಆಯ್ಕೆ: %s (%d)\n"
@@ -2830,7 +2830,7 @@ msgstr ""
msgid "{filename}: could not read initrd format"
msgstr ""
-#: rescue/virt-rescue.c:64
+#: rescue/virt-rescue.c:66
#, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
@@ -2850,6 +2850,7 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
@@ -2857,22 +2858,70 @@ msgid ""
"For more information, see the manpage %s(1).\n"
msgstr ""
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr ""
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr ""
diff --git a/po/libguestfs.pot b/po/libguestfs.pot
index 0fe7325..401a109 100644
--- a/po/libguestfs.pot
+++ b/po/libguestfs.pot
@@ -6,10 +6,10 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: libguestfs 1.15.0\n"
+"Project-Id-Version: libguestfs 1.15.1\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
@@ -20,7 +20,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
@@ -49,7 +49,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr ""
@@ -57,7 +57,7 @@ msgstr ""
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr ""
@@ -2813,7 +2813,7 @@ msgstr ""
msgid "{filename}: could not read initrd format"
msgstr ""
-#: rescue/virt-rescue.c:64
+#: rescue/virt-rescue.c:66
#, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
@@ -2833,6 +2833,7 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
@@ -2840,22 +2841,70 @@ msgid ""
"For more information, see the manpage %s(1).\n"
msgstr ""
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr ""
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr ""
diff --git a/po/ml.gmo b/po/ml.gmo
index 04385ec..323edba 100644
Binary files a/po/ml.gmo and b/po/ml.gmo differ
diff --git a/po/ml.po b/po/ml.po
index 3f39294..236721f 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Malayalam <discuss at lists.smc.org.in>\n"
@@ -21,7 +21,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "കൂടുതല് വിവരങ്ങള്ക്കായി `%s --help' ശ്രമിക്കുക.\n"
@@ -50,7 +50,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: ഹാന്ഡില് ഉണ്ടാക്കുന്നതില് പരാജയപ്പെട്ടു\n"
@@ -58,7 +58,7 @@ msgstr "guestfs_create: ഹാന്ഡില് ഉണ്ടാക്ക
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: അപരിചിതമായ ലോങ് ഉപാധി: %s (%d)\n"
@@ -2825,7 +2825,7 @@ msgstr ""
msgid "{filename}: could not read initrd format"
msgstr ""
-#: rescue/virt-rescue.c:64
+#: rescue/virt-rescue.c:66
#, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
@@ -2845,6 +2845,7 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
@@ -2852,22 +2853,70 @@ msgid ""
"For more information, see the manpage %s(1).\n"
msgstr ""
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr ""
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr ""
diff --git a/po/mr.gmo b/po/mr.gmo
index 1c7c3b1..079962c 100644
Binary files a/po/mr.gmo and b/po/mr.gmo differ
diff --git a/po/mr.po b/po/mr.po
index de4afa4..4a03cf9 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Marathi (http://www.transifex.net/projects/p/fedora/team/"
@@ -23,7 +23,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "अधिक माहितीसाठी `%s --help' वापरून पहा.\n"
@@ -52,7 +52,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: हँडल निर्माण करण्यास अशक्य\n"
@@ -60,7 +60,7 @@ msgstr "guestfs_create: हँडल निर्माण करण्यास
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: अपरिचीत लाँग पर्याय: %s (%d)\n"
@@ -2971,8 +2971,8 @@ msgstr "{path} augeas नमुनाशी जुळत नाही"
msgid "{filename}: could not read initrd format"
msgstr "{filename}: initrd स्वरूप वाचणे अशक्य"
-#: rescue/virt-rescue.c:64
-#, c-format
+#: rescue/virt-rescue.c:66
+#, fuzzy, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
"Copyright (C) 2009-2010 Red Hat Inc.\n"
@@ -2991,29 +2991,98 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
" -x Trace libguestfs API calls\n"
"For more information, see the manpage %s(1).\n"
msgstr ""
+"%s: वर्च्युअल फाइलप्रणालीवरील मोकळी जागा दाखवा\n"
+"सर्वहक्कस्वाधीन (C) 2010 Red Hat Inc.\n"
+"वापर:\n"
+" %s [--options] -d domname\n"
+" %s [--options] -a disk.img [-a disk.img ...]\n"
+"पर्याय:\n"
+" -a|--add image प्रतिमा समाविष्ट करा\n"
+" -c|--connect uri -d पर्यायकरीता libvirt URI निर्देशीत करा\n"
+" --csv कॉमा-सेपरेटेड् वॅल्यूज प्रमाणे आऊटपुटमध्ये जमा करा\n"
+" -d|--domain guest libvirt अतिथीपासून डिस्क्स् समाविष्ट करा\n"
+" --format[=raw|..] -a पर्यायकरीता डिस्क रूपण जबरनरित्या लागू करा\n"
+" -h|--human-readable --long आऊटपुट स्वरूपातील वाचनजोगी आकार\n"
+" --help संक्षिप्त मदत दाखवा\n"
+" -i|--inodes inodes दाखवा\n"
+" --one-per-guest प्रत्येक अतिथीकरीता वेगळे अप्लायंस्\n"
+" --uuid --long आऊटपुटमध्ये UUIDs समाविष्ट करा\n"
+" -v|--verbose वर्बोस संदेश\n"
+" -V|--version आवृत्ती दाखवा व बाहेर पडा\n"
+" -x libguestfs API कॉल्स् ट्रेस् करा\n"
+"अधिक माहितीकरीता, manpage %s(1) पहा.\n"
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr ""
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr "%s: मेमरी आकार '%s' वाचणे अशक्य\n"
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, fuzzy, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr "libvirt डोमेन नाव किंवा डिस्क प्रतिमा दिले नाही\n"
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr "%s: अपरिचीत चाइल्ड एक्जिट स्टेटस् (%d)\n"
diff --git a/po/nl.gmo b/po/nl.gmo
index 27126c1..77b3c2e 100644
Binary files a/po/nl.gmo and b/po/nl.gmo differ
diff --git a/po/nl.po b/po/nl.po
index cab1173..0465082 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -11,7 +11,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Dutch (http://www.transifex.net/projects/p/fedora/team/nl/)\n"
@@ -23,7 +23,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Probeer `%s --help' voor meer informatie\n"
@@ -68,7 +68,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: hendel aanmaken mislukte\n"
@@ -76,7 +76,7 @@ msgstr "guestfs_create: hendel aanmaken mislukte\n"
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: onbekende lange optie: %s (%d)\n"
@@ -3151,8 +3151,8 @@ msgstr "{path} komt niet overeen met augeas patroon"
msgid "{filename}: could not read initrd format"
msgstr "{filename}: kon initrd formaat niet lezen"
-#: rescue/virt-rescue.c:64
-#, c-format
+#: rescue/virt-rescue.c:66
+#, fuzzy, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
"Copyright (C) 2009-2010 Red Hat Inc.\n"
@@ -3171,6 +3171,7 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
@@ -3200,22 +3201,70 @@ msgstr ""
" -x Traceer libguestfs API aanroepen\n"
"Voor meer informatie, zie de manpagina %s(1).\n"
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr "%s: kon --smp parameter '%s' niet ontleden\n"
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr "%s: --smp parameter '%s' moet >= 1 zijn\n"
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr "%s:kon geheugen grootte niet ontleden '%s'\n"
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, fuzzy, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr "geen libvirt domein naam of schijf image gegeven\n"
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr "%s: onbekende kind exit status (%d)\n"
diff --git a/po/or.gmo b/po/or.gmo
index 58548ba..c0e5f8a 100644
Binary files a/po/or.gmo and b/po/or.gmo differ
diff --git a/po/or.po b/po/or.po
index 76a99d1..9223dfe 100644
--- a/po/or.po
+++ b/po/or.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Oriya (http://www.transifex.net/projects/p/fedora/team/or/)\n"
@@ -21,7 +21,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "ଅଧିକ ସୂଚନା ପାଇଁ `%s --help' କୁ ଚେଷ୍ଟା କରନ୍ତୁ।\n"
@@ -50,7 +50,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: ନିୟନ୍ତ୍ରଣ ପ୍ରସ୍ତୁତ କରିବାରେ ବିଫଳ ହୋଇଛି\n"
@@ -58,7 +58,7 @@ msgstr "guestfs_create: ନିୟନ୍ତ୍ରଣ ପ୍ରସ୍ତୁତ କ
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: ଅଜଣା ଲମ୍ବା ବିକଳ୍ପ: %s (%d)\n"
@@ -2823,7 +2823,7 @@ msgstr ""
msgid "{filename}: could not read initrd format"
msgstr ""
-#: rescue/virt-rescue.c:64
+#: rescue/virt-rescue.c:66
#, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
@@ -2843,6 +2843,7 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
@@ -2850,22 +2851,70 @@ msgid ""
"For more information, see the manpage %s(1).\n"
msgstr ""
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr ""
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr ""
diff --git a/po/pa.gmo b/po/pa.gmo
index 4455220..e758aac 100644
Binary files a/po/pa.gmo and b/po/pa.gmo differ
diff --git a/po/pa.po b/po/pa.po
index d85c1c9..54773f9 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Panjabi (Punjabi) <punjabi-users at lists.sf.net>\n"
@@ -22,7 +22,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ `%s --help' ਵਰਤੋ।\n"
@@ -51,7 +51,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: ਹੈਂਡਲ ਬਣਾਉਣ ਵਿੱਚ ਫੇਲ\n"
@@ -59,7 +59,7 @@ msgstr "guestfs_create: ਹੈਂਡਲ ਬਣਾਉਣ ਵਿੱਚ ਫੇਲ\n
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: unknown long option: %s (%d)\n"
@@ -2968,8 +2968,8 @@ msgstr "{path} ਦਾ ਮੇਲ augeas ਪੈਟਰਨ ਨਾਲ ਨਹੀਂ
msgid "{filename}: could not read initrd format"
msgstr "{filename}: initrd ਫਾਰਮੈਟ ਪੜ ਨਹੀਂ ਸਕਿਆ"
-#: rescue/virt-rescue.c:64
-#, c-format
+#: rescue/virt-rescue.c:66
+#, fuzzy, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
"Copyright (C) 2009-2010 Red Hat Inc.\n"
@@ -2988,29 +2988,98 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
" -x Trace libguestfs API calls\n"
"For more information, see the manpage %s(1).\n"
msgstr ""
+"%s: display free space on virtual filesystems\n"
+"Copyright (C) 2010 Red Hat Inc।\n"
+"Usage:\n"
+" %s [--options] -d domname\n"
+" %s [--options] -a disk.img [-a disk.img ...]\n"
+"Options:\n"
+" -a|--add image Add image\n"
+" -c|--connect uri Specify libvirt URI for -d option\n"
+" --csv Output as Comma-Separated Values\n"
+" -d|--domain guest Add disks from libvirt guest\n"
+" --format[=raw|..] Force disk format for -a option\n"
+" -h|--human-readable Human-readable sizes in --long output\n"
+" --help Display brief help\n"
+" -i|--inodes Display inodes\n"
+" --one-per-guest Separate appliance per guest\n"
+" --uuid Add UUIDs to --long output\n"
+" -v|--verbose Verbose messages\n"
+" -V|--version Display version and exit\n"
+" -x Trace libguestfs API calls\n"
+"For more information, see the manpage %s(1)।\n"
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr ""
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr "%s: ਮੈਮੋਰੀ ਅਕਾਰ ਪਾਰਸ ਨਹੀਂ ਕਰ ਸਕਿਆ '%s'\n"
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, fuzzy, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr "ਕੋਈ libvirt ਡੋਮੇਨ ਨਾਂ ਜਾਂ ਡਿਸਕ ਈਮੇਜ਼ ਨਹੀਂ ਦਿੱਤਾ\n"
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr "%s: ਅਣਜਾਣ ਲੰਬਾ ਚੋਣ: (%d)\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index 77a3a4e..29acb06 100644
Binary files a/po/pl.gmo and b/po/pl.gmo differ
diff --git a/po/pl.po b/po/pl.po
index 46a2694..4a75c54 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Polish (http://www.transifex.net/projects/p/fedora/team/pl/)\n"
@@ -23,7 +23,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Należy spróbować \"%s --help\", aby uzyskać więcej informacji.\n"
@@ -68,7 +68,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: utworzenie programu obsługi nie powiodło się\n"
@@ -76,7 +76,7 @@ msgstr "guestfs_create: utworzenie programu obsługi nie powiodło się\n"
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: nieznana długa opcja: %s (%d)\n"
@@ -3170,8 +3170,8 @@ msgstr "{path} nie zgadza się ze wzorem Augeas"
msgid "{filename}: could not read initrd format"
msgstr "{filename}: nie można odczytać formatu initrd"
-#: rescue/virt-rescue.c:64
-#, c-format
+#: rescue/virt-rescue.c:66
+#, fuzzy, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
"Copyright (C) 2009-2010 Red Hat Inc.\n"
@@ -3190,6 +3190,7 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
@@ -3219,22 +3220,70 @@ msgstr ""
" -x Śledzi wywołania API biblioteki libguestfs\n"
"Aby dowiedzieć się więcej, należy zobaczyć stronę podręcznika %s(1).\n"
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr "%s: nie można przetworzyć parametru \"%s\" opcji --smp\n"
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr "%s: parametr \"%s\" opcji --smp powinien wynosić >= 1\n"
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr "%s: nie można przetworzyć rozmiaru pamięci \"%s\"\n"
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, fuzzy, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr "nie podano nazwy domeny libvirt lub obrazu dysku\n"
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr "%s: nieznany stan wyjścia potomka (%d)\n"
diff --git a/po/ta.gmo b/po/ta.gmo
index ddc2bc0..680ad1e 100644
Binary files a/po/ta.gmo and b/po/ta.gmo differ
diff --git a/po/ta.po b/po/ta.po
index b17d714..d4693dd 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Tamil <tamil-users at lists.fedoraproject.org>\n"
@@ -21,7 +21,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "`%s --help' க்கான கூடுதல் தகவலுக்கு முயற்சிக்கவும்.\n"
@@ -50,7 +50,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: ஹாண்டிலை உருவாக்க முடியவில்லை\n"
@@ -58,7 +58,7 @@ msgstr "guestfs_create: ஹாண்டிலை உருவாக்க மு
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: தெரியாத நீண்ட விருப்பம்: %s (%d)\n"
@@ -2824,7 +2824,7 @@ msgstr ""
msgid "{filename}: could not read initrd format"
msgstr ""
-#: rescue/virt-rescue.c:64
+#: rescue/virt-rescue.c:66
#, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
@@ -2844,6 +2844,7 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
@@ -2851,22 +2852,70 @@ msgid ""
"For more information, see the manpage %s(1).\n"
msgstr ""
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr ""
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr ""
diff --git a/po/te.gmo b/po/te.gmo
index 5f866a5..dbd4a89 100644
Binary files a/po/te.gmo and b/po/te.gmo differ
diff --git a/po/te.po b/po/te.po
index 9e5ba51..20e23a1 100644
--- a/po/te.po
+++ b/po/te.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Telugu (http://www.transifex.net/projects/p/fedora/team/te/)\n"
@@ -21,7 +21,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "అధిక సమాచారము కొరకు `%s --help' ప్రయత్నించండి\n"
@@ -50,7 +50,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: సంభాలికను సృష్టించుటకు విఫలమైంది\n"
@@ -58,7 +58,7 @@ msgstr "guestfs_create: సంభాలికను సృష్టించు
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: తెలియని long ఐచ్చికము: %s (%d)\n"
@@ -2821,7 +2821,7 @@ msgstr ""
msgid "{filename}: could not read initrd format"
msgstr ""
-#: rescue/virt-rescue.c:64
+#: rescue/virt-rescue.c:66
#, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
@@ -2841,6 +2841,7 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
@@ -2848,22 +2849,70 @@ msgid ""
"For more information, see the manpage %s(1).\n"
msgstr ""
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr ""
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr ""
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr ""
diff --git a/po/uk.gmo b/po/uk.gmo
index 2f1dba8..5081bc4 100644
Binary files a/po/uk.gmo and b/po/uk.gmo differ
diff --git a/po/uk.po b/po/uk.po
index 845b70e..514f0aa 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2011-10-27 16:05+0100\n"
+"POT-Creation-Date: 2011-11-01 14:19+0000\n"
"PO-Revision-Date: 2011-10-27 09:11+0000\n"
"Last-Translator: rjones <rjones at redhat.com>\n"
"Language-Team: Ukrainian <trans-uk at lists.fedoraproject.org>\n"
@@ -22,7 +22,7 @@ msgstr ""
#: align/scan.c:68 cat/virt-cat.c:61 cat/virt-filesystems.c:100
#: cat/virt-ls.c:99 df/main.c:70 edit/virt-edit.c:73 fish/fish.c:101
-#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:60
+#: fuse/guestmount.c:908 inspector/virt-inspector.c:72 rescue/virt-rescue.c:62
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Щоб дізнатися більше, віддайте команду «%s --help».\n"
@@ -67,7 +67,7 @@ msgstr ""
#: align/scan.c:127 cat/virt-cat.c:121 cat/virt-filesystems.c:203
#: cat/virt-ls.c:192 df/domains.c:429 df/main.c:136 edit/virt-edit.c:141
#: fish/fish.c:222 fuse/guestmount.c:1024 inspector/virt-inspector.c:132
-#: rescue/virt-rescue.c:137
+#: rescue/virt-rescue.c:142
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: не вдалося створити елемент керування\n"
@@ -75,7 +75,7 @@ msgstr "guestfs_create: не вдалося створити елемент ке
#: align/scan.c:145 cat/virt-cat.c:143 cat/virt-filesystems.c:257
#: cat/virt-ls.c:242 df/main.c:160 edit/virt-edit.c:163 fish/fish.c:279
#: fuse/guestmount.c:1061 inspector/virt-inspector.c:154
-#: rescue/virt-rescue.c:172
+#: rescue/virt-rescue.c:179
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: невідомий довгий запис параметра: %s (%d)\n"
@@ -3214,8 +3214,8 @@ msgstr "{path} не відповідає шаблону augeas"
msgid "{filename}: could not read initrd format"
msgstr "{filename}: не вдалося прочитати формат initrd"
-#: rescue/virt-rescue.c:64
-#, c-format
+#: rescue/virt-rescue.c:66
+#, fuzzy, c-format
msgid ""
"%s: Run a rescue shell on a virtual machine\n"
"Copyright (C) 2009-2010 Red Hat Inc.\n"
@@ -3234,6 +3234,7 @@ msgid ""
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+" --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
@@ -3263,22 +3264,70 @@ msgstr ""
" -x Трасувати виклики програмного інтерфейсу libguestfs\n"
"Щоб дізнатися більше, ознайомтеся зі сторінкою довідника (man) %s(1).\n"
-#: rescue/virt-rescue.c:162
+#: rescue/virt-rescue.c:167
#, c-format
msgid "%s: could not parse --smp parameter '%s'\n"
msgstr "%s: не вдалося обробити параметр --smp «%s»\n"
-#: rescue/virt-rescue.c:167
+#: rescue/virt-rescue.c:172
#, c-format
msgid "%s: --smp parameter '%s' should be >= 1\n"
msgstr "%s: значенням параметра --smp «%s» має бути число >= 1\n"
-#: rescue/virt-rescue.c:195
+#: rescue/virt-rescue.c:202
#, c-format
msgid "%s: could not parse memory size '%s'\n"
msgstr "%s: не вдалося обробити запис об’єму пам’яті «%s»\n"
-#: rescue/virt-rescue.c:428
+#: rescue/virt-rescue.c:372
+#, fuzzy, c-format
+msgid ""
+"Inspecting the virtual machine or disk image ...\n"
+"\n"
+msgstr "не вказано назви домену або образу диска libvirt\n"
+
+#: rescue/virt-rescue.c:391
+#, c-format
+msgid ""
+"This disk contains one or more operating systems. You can use these mount\n"
+"commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:401
+#, c-format
+msgid ""
+"# %s is the root of a %s operating system\n"
+"# type: %s, distro: %s, version: %d.%d\n"
+"# %s\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:458
+#, c-format
+msgid ""
+"This disk contains no filesystems that we recognize.\n"
+"\n"
+"However you can still use virt-rescue on the disk image, to try to mount\n"
+"filesystems that are not recognized by libguestfs, or to create partitions,\n"
+"logical volumes and filesystems on a blank disk.\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:465
+#, c-format
+msgid ""
+"This disk contains one or more filesystems, but we don't recognize any\n"
+"operating system. You can use these mount commands in virt-rescue (at the\n"
+"><rescue> prompt) to mount these filesystems.\n"
+"\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:470
+#, c-format
+msgid "# %s has type '%s'\n"
+msgstr ""
+
+#: rescue/virt-rescue.c:594
#, c-format
msgid "%s: unknown child exit status (%d)\n"
msgstr ""
diff --git a/rescue/virt-rescue.c b/rescue/virt-rescue.c
index 7ad39b5..0c00364 100644
--- a/rescue/virt-rescue.c
+++ b/rescue/virt-rescue.c
@@ -36,6 +36,8 @@
#include "guestfs.h"
#include "options.h"
+static void do_suggestion (struct drv *drvs);
+
/* Currently open libguestfs handle. */
guestfs_h *g;
@@ -78,6 +80,7 @@ usage (int status)
" -r|--ro Access read-only\n"
" --selinux Enable SELinux\n"
" --smp N Enable SMP with N >= 2 virtual CPUs\n"
+ " --suggest Suggest mount commands for this guest\n"
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
" -w|--rw Mount read-write\n"
@@ -117,6 +120,7 @@ main (int argc, char *argv[])
{ "rw", 0, 0, 'w' },
{ "selinux", 0, 0, 0 },
{ "smp", 1, 0, 0 },
+ { "suggest", 0, 0, 0 },
{ "verbose", 0, 0, 'v' },
{ "version", 0, 0, 'V' },
{ 0, 0, 0, 0 }
@@ -131,6 +135,7 @@ main (int argc, char *argv[])
char *append_full;
int memsize = 0;
int smp = 0;
+ int suggest = 0;
g = guestfs_create ();
if (g == NULL) {
@@ -168,6 +173,8 @@ main (int argc, char *argv[])
program_name, optarg);
exit (EXIT_FAILURE);
}
+ } else if (STREQ (long_options[option_index].name, "suggest")) {
+ suggest = 1;
} else {
fprintf (stderr, _("%s: unknown long option: %s (%d)\n"),
program_name, long_options[option_index].name, option_index);
@@ -259,6 +266,12 @@ main (int argc, char *argv[])
}
}
+ /* --suggest flag */
+ if (suggest) {
+ do_suggestion (drvs);
+ exit (EXIT_SUCCESS);
+ }
+
/* These are really constants, but they have to be variables for the
* options parsing code. Assert here that they have known-good
* values.
@@ -315,6 +328,159 @@ main (int argc, char *argv[])
exit (EXIT_SUCCESS);
}
+static void suggest_filesystems (void);
+
+static int
+compare_keys_len (const void *p1, const void *p2)
+{
+ const char *key1 = * (char * const *) p1;
+ const char *key2 = * (char * const *) p2;
+ return strlen (key1) - strlen (key2);
+}
+
+static size_t
+count_strings (char *const *argv)
+{
+ size_t i;
+
+ for (i = 0; argv[i]; ++i)
+ ;
+ return i;
+}
+
+/* virt-rescue --suggest flag does a kind of inspection on the
+ * drives and suggests mount commands that you should use.
+ */
+static void
+do_suggestion (struct drv *drvs)
+{
+ char **roots;
+ size_t i, j;
+ char *type, *distro, *product_name;
+ int major, minor;
+ char **mps;
+
+ /* For inspection, force add_drives to add the drives read-only. */
+ read_only = 1;
+
+ /* Add drives. */
+ add_drives (drvs, 'a');
+
+ /* Free up data structures, no longer needed after this point. */
+ free_drives (drvs);
+
+ printf (_("Inspecting the virtual machine or disk image ...\n\n"));
+ fflush (stdout);
+
+ if (guestfs_launch (g) == -1)
+ exit (EXIT_FAILURE);
+
+ /* Don't use inspect_mount, since for virt-rescue we should allow
+ * arbitrary disks and disks with more than one OS on them. Let's
+ * do this using the basic API instead.
+ */
+ roots = guestfs_inspect_os (g);
+ if (roots == NULL)
+ exit (EXIT_FAILURE);
+
+ if (roots[0] == NULL) {
+ suggest_filesystems ();
+ return;
+ }
+
+ printf (_("This disk contains one or more operating systems. You can use these mount\n"
+ "commands in virt-rescue (at the ><rescue> prompt) to mount the filesystems.\n\n"));
+
+ for (i = 0; roots[i] != NULL; ++i) {
+ type = guestfs_inspect_get_type (g, roots[i]);
+ distro = guestfs_inspect_get_distro (g, roots[i]);
+ product_name = guestfs_inspect_get_product_name (g, roots[i]);
+ major = guestfs_inspect_get_major_version (g, roots[i]);
+ minor = guestfs_inspect_get_minor_version (g, roots[i]);
+
+ printf (_("# %s is the root of a %s operating system\n"
+ "# type: %s, distro: %s, version: %d.%d\n"
+ "# %s\n\n"),
+ roots[i], type ? : "unknown",
+ type ? : "unknown", distro ? : "unknown", major, minor,
+ product_name ? : "");
+
+ mps = guestfs_inspect_get_mountpoints (g, roots[i]);
+ if (mps == NULL)
+ exit (EXIT_FAILURE);
+
+ /* Sort by key length, shortest key first, so that we end up
+ * mounting the filesystems in the correct order.
+ */
+ qsort (mps, count_strings (mps) / 2, 2 * sizeof (char *),
+ compare_keys_len);
+
+ for (j = 0; mps[j] != NULL; j += 2) {
+ printf ("mount %s /sysroot%s\n", mps[j+1], mps[j]);
+ free (mps[j]);
+ free (mps[j+1]);
+ }
+
+ /* If it's Linux, print the bind-mounts. */
+ if (type && STREQ (type, "linux")) {
+ printf ("mount --bind /dev /sysroot/dev\n");
+ printf ("mount --bind /dev/pts /sysroot/dev/pts\n");
+ printf ("mount --bind /proc /sysroot/proc\n");
+ printf ("mount --bind /sys /sysroot/sys\n");
+ }
+
+ printf ("\n");
+
+ free (type);
+ free (distro);
+ free (product_name);
+ free (roots[i]);
+ }
+
+ free (roots);
+}
+
+/* Inspection failed, so it doesn't contain any OS that we recognise.
+ * However there might still be filesystems so print some suggestions
+ * for those.
+ */
+static void
+suggest_filesystems (void)
+{
+ char **fses;
+ size_t i;
+
+ fses = guestfs_list_filesystems (g);
+ if (fses == NULL)
+ exit (EXIT_FAILURE);
+
+ if (fses[0] == NULL) {
+ printf (_("This disk contains no filesystems that we recognize.\n\n"
+ "However you can still use virt-rescue on the disk image, to try to mount\n"
+ "filesystems that are not recognized by libguestfs, or to create partitions,\n"
+ "logical volumes and filesystems on a blank disk.\n"));
+ return;
+ }
+
+ printf (_("This disk contains one or more filesystems, but we don't recognize any\n"
+ "operating system. You can use these mount commands in virt-rescue (at the\n"
+ "><rescue> prompt) to mount these filesystems.\n\n"));
+
+ for (i = 0; fses[i] != NULL; i += 2) {
+ printf (_("# %s has type '%s'\n"), fses[i], fses[i+1]);
+
+ if (STRNEQ (fses[i+1], "swap") && STRNEQ (fses[i+1], "unknown"))
+ printf ("mount %s /sysroot\n", fses[i]);
+
+ printf ("\n");
+
+ free (fses[i]);
+ free (fses[i+1]);
+ }
+ free (fses);
+}
+
+
/* The following was a nice idea, but in fact it doesn't work. This is
* because qemu has some (broken) pty emulation itself.
*/
diff --git a/rescue/virt-rescue.pod b/rescue/virt-rescue.pod
index e25b6ed..dc139dc 100755
--- a/rescue/virt-rescue.pod
+++ b/rescue/virt-rescue.pod
@@ -10,6 +10,8 @@ virt-rescue - Run a rescue shell on a virtual machine
virt-rescue [--options] -a disk.img [-a disk.img ...]
+ virt-rescue --suggest (-d domname | -a disk.img ...)
+
Old style:
virt-rescue [--options] domname
@@ -51,19 +53,45 @@ rescue appliance. You must mount the virtual machine's filesystems by
hand. There is an empty directory called C</sysroot> where you can
mount filesystems.
-In the example below, we list logical volumes, then choose one to
-mount under C</sysroot>:
+You can get virt-rescue to suggest mount commands for you by using the
+I<--suggest> option (in another terminal):
+
+ $ virt-rescue --suggest -d Fedora15
+ Inspecting the virtual machine or disk image ...
+
+ This disk contains one or more operating systems. You can use these
+ mount commands in virt-rescue (at the ><rescue> prompt) to mount the
+ filesystems.
+
+ # /dev/vg_f15x32/lv_root is the root of a linux operating system
+ # type: linux, distro: fedora, version: 15.0
+ # Fedora release 15 (Lovelock)
+
+ mount /dev/vg_f15x32/lv_root /sysroot/
+ mount /dev/vda1 /sysroot/boot
+ mount --bind /dev /sysroot/dev
+ mount --bind /dev/pts /sysroot/dev/pts
+ mount --bind /proc /sysroot/proc
+ mount --bind /sys /sysroot/sys
+
+Another way is to list the logical volumes (with L<lvs(8)>) and
+partitions (with L<parted(8)>) and mount them by hand:
><rescue> lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
- lv_root vg_f11x64 -wi-a- 8.83G
- lv_swap vg_f11x64 -wi-a- 992.00M
- ><rescue> mount /dev/vg_f11x64/lv_root /sysroot
+ lv_root vg_f15x32 -wi-a- 8.83G
+ lv_swap vg_f15x32 -wi-a- 992.00M
+ ><rescue> mount /dev/vg_f15x32/lv_root /sysroot
+ ><rescue> mount /dev/vda1 /sysroot/boot
><rescue> ls /sysroot
-If you don't know what filesystems are available on the virtual
-machine then you can use commands such as L<parted(8)> and L<lvs(8)>
-to find out.
+Another command to list available filesystems is
+L<virt-filesystems(1)>.
+
+To run commands in a Linux guest (for example, grub), you should
+chroot into the /sysroot directory first:
+
+ ><rescue> chroot /sysroot
=head2 NOTES
@@ -179,6 +207,15 @@ L<guestfs(3)/SELINUX> before using this option.
Enable N E<ge> 2 virtual CPUs in the rescue appliance.
+=item B<--suggest>
+
+Inspect the disk image and suggest what mount commands should be used
+to mount the disks. You should use the I<--suggest> option in a
+second terminal, then paste the commands into another virt-rescue.
+
+This option implies I<--ro> and is safe to use even if the guest is up
+or if another virt-rescue is running.
+
=item B<-v>
=item B<--verbose>
@@ -291,6 +328,7 @@ L<guestfs(3)>,
L<guestfish(1)>,
L<virt-cat(1)>,
L<virt-edit(1)>,
+L<virt-filesystems(1)>,
L<http://libguestfs.org/>.
=head1 AUTHOR
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-libvirt/libguestfs.git
More information about the Pkg-libvirt-commits
mailing list