Close the current Augeas handle and free up any resources
used by it. After calling this, you have to call
-C<aug_init> again before you can use any other
+C<aug-init> again before you can use any other
Augeas functions.
=head2 aug-defnode
evaluating C<expr>.
If C<expr> evaluates to an empty nodeset, a node is created,
-equivalent to calling C<aug_set> C<expr>, C<value>.
+equivalent to calling C<aug-set> C<expr>, C<value>.
C<name> will be the nodeset containing that single node.
On success this returns a pair containing the
If there was any previous Augeas handle associated with this
guestfs session, then it is closed.
-You must call this before using any other C<aug_*>
+You must call this before using any other C<aug-*>
commands.
C<root> is the filesystem root. C<root> must not be NULL,
=item C<AUG_NO_LOAD> = 32
-Do not load the tree in C<aug_init>.
+Do not load the tree in C<aug-init>.
=back
-To close the handle, you can call C<aug_close>.
+To close the handle, you can call C<aug-close>.
To find out more about Augeas, see L<http://augeas.net/>.
aug-ls path
-This is just a shortcut for listing C<aug_match>
+This is just a shortcut for listing C<aug-match>
C<path/*> and sorting the resulting nodes into alphabetical order.
=head2 aug-match
This writes all pending changes to disk.
-The flags which were passed to C<aug_init> affect exactly
+The flags which were passed to C<aug-init> affect exactly
how files are saved.
=head2 aug-set
Set the value associated with C<path> to C<value>.
+=head2 blockdev-flushbufs
+
+ blockdev-flushbufs device
+
+This tells the kernel to flush internal buffers associated
+with C<device>.
+
+This uses the L<blockdev(8)> command.
+
+=head2 blockdev-getbsz
+
+ blockdev-getbsz device
+
+This returns the block size of a device.
+
+(Note this is different from both I<size in blocks> and
+I<filesystem block size>).
+
+This uses the L<blockdev(8)> command.
+
+=head2 blockdev-getro
+
+ blockdev-getro device
+
+Returns a boolean indicating if the block device is read-only
+(true if read-only, false if not).
+
+This uses the L<blockdev(8)> command.
+
+=head2 blockdev-getsize64
+
+ blockdev-getsize64 device
+
+This returns the size of the device in bytes.
+
+See also C<blockdev-getsz>.
+
+This uses the L<blockdev(8)> command.
+
+=head2 blockdev-getss
+
+ blockdev-getss device
+
+This returns the size of sectors on a block device.
+Usually 512, but can be larger for modern devices.
+
+(Note, this is not the size in sectors, use C<blockdev-getsz>
+for that).
+
+This uses the L<blockdev(8)> command.
+
+=head2 blockdev-getsz
+
+ blockdev-getsz device
+
+This returns the size of the device in units of 512-byte sectors
+(even if the sectorsize isn't 512 bytes ... weird).
+
+See also C<blockdev-getss> for the real sector size of
+the device, and C<blockdev-getsize64> for the more
+useful I<size in bytes>.
+
+This uses the L<blockdev(8)> command.
+
+=head2 blockdev-rereadpt
+
+ blockdev-rereadpt device
+
+Reread the partition table on C<device>.
+
+This uses the L<blockdev(8)> command.
+
+=head2 blockdev-setbsz
+
+ blockdev-setbsz device blocksize
+
+This sets the block size of a device.
+
+(Note this is different from both I<size in blocks> and
+I<filesystem block size>).
+
+This uses the L<blockdev(8)> command.
+
+=head2 blockdev-setro
+
+ blockdev-setro device
+
+Sets the block device named C<device> to read-only.
+
+This uses the L<blockdev(8)> command.
+
+=head2 blockdev-setrw
+
+ blockdev-setrw device
+
+Sets the block device named C<device> to read-write.
+
+This uses the L<blockdev(8)> command.
+
=head2 cat
cat path
Note that this function cannot correctly handle binary files
(specifically, files containing C<\0> character which is treated
-as end of string). For those you need to use the C<read_file>
+as end of string). For those you need to use the C<download>
function which has a more complex interface.
Because of the message protocol, there is a transfer limit
of somewhere between 2MB and 4MB. To transfer large files you should use
FTP.
+=head2 checksum
+
+ checksum csumtype path
+
+This call computes the MD5, SHAx or CRC checksum of the
+file named C<path>.
+
+The type of checksum to compute is given by the C<csumtype>
+parameter which must have one of the following values:
+
+=over 4
+
+=item C<crc>
+
+Compute the cyclic redundancy check (CRC) specified by POSIX
+for the C<cksum> command.
+
+=item C<md5>
+
+Compute the MD5 hash (using the C<md5sum> program).
+
+=item C<sha1>
+
+Compute the SHA1 hash (using the C<sha1sum> program).
+
+=item C<sha224>
+
+Compute the SHA224 hash (using the C<sha224sum> program).
+
+=item C<sha256>
+
+Compute the SHA256 hash (using the C<sha256sum> program).
+
+=item C<sha384>
+
+Compute the SHA384 hash (using the C<sha384sum> program).
+
+=item C<sha512>
+
+Compute the SHA512 hash (using the C<sha512sum> program).
+
+=back
+
+The checksum is returned as a printable string.
+
=head2 chmod
chmod mode path
names, you will need to locate and parse the password file
yourself (Augeas support makes this relatively easy).
+=head2 command
+
+ command 'arguments ...'
+
+This call runs a command from the guest filesystem. The
+filesystem must be mounted, and must contain a compatible
+operating system (ie. something Linux, with the same
+or compatible processor architecture).
+
+The single parameter is an argv-style list of arguments.
+The first element is the name of the program to run.
+Subsequent elements are parameters. The list must be
+non-empty (ie. must contain a program name).
+
+The C<$PATH> environment variable will contain at least
+C</usr/bin> and C</bin>. If you require a program from
+another location, you should provide the full path in the
+first parameter.
+
+Shared libraries and data files required by the program
+must be available on filesystems which are mounted in the
+correct places. It is the caller's responsibility to ensure
+all filesystems that are needed are mounted at the right
+locations.
+
+=head2 command-lines
+
+ command-lines 'arguments ...'
+
+This is the same as C<command>, but splits the
+result into a list of lines.
+
=head2 config
config qemuparam qemuvalue
C<value> can be NULL.
+=head2 debug
+
+ debug subcmd 'extraargs ...'
+
+The C<debug> command exposes some internals of
+C<guestfsd> (the guestfs daemon) that runs inside the
+qemu subprocess.
+
+There is no comprehensive help for this command. You have
+to look at the file C<daemon/debug.c> in the libguestfs source
+to find out what you can do.
+
+=head2 download
+
+ download remotefilename (filename|-)
+
+Download file C<remotefilename> and save it as C<filename>
+on the local machine.
+
+C<filename> can also be a named pipe.
+
+See also C<upload>, C<cat>.
+
+Use C<-> instead of a filename to read/write from stdin/stdout.
+
=head2 exists
exists path
This returns C<true> if and only if there is a file, directory
(or anything) with the given C<path> name.
-See also C<is_file>, C<is_dir>, C<stat>.
+See also C<is-file>, C<is-dir>, C<stat>.
=head2 file
This is always non-NULL. If it wasn't set already, then this will
return the default path.
+=head2 get-qemu
+
+ get-qemu
+
+Return the current qemu binary.
+
+This is always non-NULL. If it wasn't set already, then this will
+return the default qemu binary name.
+
+=head2 get-state
+
+ get-state
+
+This returns the current state as an opaque integer. This is
+only useful for printing debug and internal error messages.
+
+For more information on states, see L<guestfs(3)>.
+
=head2 get-verbose
get-verbose
This returns the verbose messages flag.
+=head2 is-busy
+
+ is-busy
+
+This returns true iff this handle is busy processing a command
+(in the C<BUSY> state).
+
+For more information on states, see L<guestfs(3)>.
+
+=head2 is-config
+
+ is-config
+
+This returns true iff this handle is being configured
+(in the C<CONFIG> state).
+
+For more information on states, see L<guestfs(3)>.
+
=head2 is-dir
is-dir path
See also C<stat>.
+=head2 is-launching
+
+ is-launching
+
+This returns true iff this handle is launching the subprocess
+(in the C<LAUNCHING> state).
+
+For more information on states, see L<guestfs(3)>.
+
+=head2 is-ready
+
+ is-ready
+
+This returns true iff this handle is ready to accept commands
+(in the C<READY> state).
+
+For more information on states, see L<guestfs(3)>.
+
=head2 kill-subprocess
kill-subprocess
This command is mostly useful for interactive sessions. Programs
should probably use C<readdir> instead.
+=head2 lstat
+
+ lstat path
+
+Returns file information for the given C<path>.
+
+This is the same as C<stat> except that if C<path>
+is a symbolic link, then the link is stat-ed, not the file it
+refers to.
+
+This is the same as the C<lstat(2)> system call.
+
=head2 lvcreate
lvcreate logvol volgroup mbytes
This returns a list of the logical volume device names
(eg. C</dev/VolGroup00/LogVol00>).
-See also C<lvs_full>.
+See also C<lvs-full>.
=head2 lvs-full
The filesystem options C<sync> and C<noatime> are set with this
call, in order to improve reliability.
+=head2 mount-options
+
+ mount-options options device mountpoint
+
+This is the same as the C<mount> command, but it
+allows you to set the mount options as for the
+L<mount(8)> I<-o> flag.
+
+=head2 mount-ro
+
+ mount-ro device mountpoint
+
+This is the same as the C<mount> command, but it
+mounts the filesystem with the read-only (I<-o ro>) flag.
+
+=head2 mount-vfs
+
+ mount-vfs options vfstype device mountpoint
+
+This is the same as the C<mount> command, but it
+allows you to set both the mount options and the vfstype
+as for the L<mount(8)> I<-o> and I<-t> flags.
+
=head2 mounts
mounts
This returns a list of just the device names that contain
PVs (eg. C</dev/sda2>).
-See also C<pvs_full>.
+See also C<pvs-full>.
=head2 pvs-full
Note that this function cannot correctly handle binary files
(specifically, files containing C<\0> character which is treated
-as end of line). For those you need to use the C<read_file>
+as end of line). For those you need to use the C<read-file>
function which has a more complex interface.
=head2 rm
Setting C<path> to C<NULL> restores the default path.
+=head2 set-qemu | qemu
+
+ set-qemu qemu
+
+Set the qemu binary that we will use.
+
+The default is chosen when the library was compiled by the
+configure script.
+
+You can also override this by setting the C<LIBGUESTFS_QEMU>
+environment variable.
+
+The string C<qemu> is stashed in the libguestfs handle, so the caller
+must make sure it remains valid for the lifetime of the handle.
+
+Setting C<qemu> to C<NULL> restores the default qemu binary.
+
=head2 set-verbose | verbose
set-verbose true|false
=head2 sfdisk
- sfdisk device cyls heads sectors lines,...
+ sfdisk device cyls heads sectors 'lines ...'
This is a direct interface to the L<sfdisk(8)> program for creating
partitions on block devices.
B<This command is dangerous. Without careful use you
can easily destroy all your data>.
+=head2 stat
+
+ stat path
+
+Returns file information for the given C<path>.
+
+This is the same as the C<stat(2)> system call.
+
+=head2 statvfs
+
+ statvfs path
+
+Returns file system statistics for any mounted file system.
+C<path> should be a file or directory in the mounted file system
+(typically it is the mount point itself, but it doesn't need to be).
+
+This is the same as the C<statvfs(2)> system call.
+
=head2 sync
sync
You should always call this if you have modified a disk image, before
closing the handle.
+=head2 tar-in
+
+ tar-in (tarfile|-) directory
+
+This command uploads and unpacks local file C<tarfile> (an
+I<uncompressed> tar file) into C<directory>.
+
+To upload a compressed tarball, use C<tgz-in>.
+
+Use C<-> instead of a filename to read/write from stdin/stdout.
+
+=head2 tar-out
+
+ tar-out directory (tarfile|-)
+
+This command packs the contents of C<directory> and downloads
+it to local file C<tarfile>.
+
+To download a compressed tarball, use C<tgz-out>.
+
+Use C<-> instead of a filename to read/write from stdin/stdout.
+
+=head2 tgz-in
+
+ tgz-in (tarball|-) directory
+
+This command uploads and unpacks local file C<tarball> (a
+I<gzip compressed> tar file) into C<directory>.
+
+To upload an uncompressed tarball, use C<tar-in>.
+
+Use C<-> instead of a filename to read/write from stdin/stdout.
+
+=head2 tgz-out
+
+ tgz-out directory (tarball|-)
+
+This command packs the contents of C<directory> and downloads
+it to local file C<tarball>.
+
+To download an uncompressed tarball, use C<tar-out>.
+
+Use C<-> instead of a filename to read/write from stdin/stdout.
+
=head2 touch
touch path
update the timestamps on a file, or, if the file does not exist,
to create a new zero-length file.
+=head2 tune2fs-l
+
+ tune2fs-l device
+
+This returns the contents of the ext2 or ext3 filesystem superblock
+on C<device>.
+
+It is the same as running C<tune2fs -l device>. See L<tune2fs(8)>
+manpage for more details. The list of fields returned isn't
+clearly defined, and depends on both the version of C<tune2fs>
+that libguestfs was built against, and the filesystem itself.
+
=head2 umount | unmount
umount pathordevice
Some internal mounts are not unmounted by this call.
+=head2 upload
+
+ upload (filename|-) remotefilename
+
+Upload local file C<filename> to C<remotefilename> on the
+filesystem.
+
+C<filename> can also be a named pipe.
+
+See also C<download>.
+
+Use C<-> instead of a filename to read/write from stdin/stdout.
+
=head2 vgcreate
- vgcreate volgroup physvols,...
+ vgcreate volgroup 'physvols ...'
This creates an LVM volume group called C<volgroup>
from the non-empty list of physical volumes C<physvols>.
This returns a list of just the volume group names that were
detected (eg. C<VolGroup00>).
-See also C<vgs_full>.
+See also C<vgs-full>.
=head2 vgs-full