Scroll to navigation

libguestfs-make-fixed-appliance(1) Virtualization Support libguestfs-make-fixed-appliance(1)

NAME

libguestfs-make-fixed-appliance - Make a "fixed appliance" for libguestfs

SYNOPSIS

 libguestfs-make-fixed-appliance [--options] OUTPUTDIR
 libguestfs-make-fixed-appliance [--options] --xz

DESCRIPTION

libguestfs-make-fixed-appliance lets you make a pre-built binary appliance for libguestfs.

Note that ordinary users should not need to run this tool.

Some reasons why you might want to use this include:

  • You want to make a self-contained libguestfs appliance that can be copied to another machine or platform that doesn't support supermin(8).
  • You have multiple users on the same machine and want to avoid the storage duplication and start-up overhead of having multiple cached copies of the appliance.
  • You want to have very predictable performance from libguestfs (see guestfs-performance(1)).

For deeper understanding of why you might need this tool, read the section "FIXED APPLIANCE" below.

Instead of running this tool, you can download fixed appliances from http://libguestfs.org/download/binaries/appliance/. These appliances were made using this tool.

There are two ways to use this tool.

  • Specify an output directory, for example:

     libguestfs-make-fixed-appliance /usr/local/lib/guestfs/appliance
        

    The output directory is created if it does not exist. Four files are created in this directory:

     <OUTPUTDIR>/kernel
     <OUTPUTDIR>/initrd
     <OUTPUTDIR>/root
     <OUTPUTDIR>/README.fixed
        

    Note that "OUTPUTDIR/root" is a sparse file, so take care when copying it.

    You can then run libguestfs (possibly after copying this directory to another machine) by setting the environment variable LIBGUESTFS_PATH to "OUTPUTDIR".

  • The alternative method is to use the --xz option to create a compressed tarball:

     libguestfs-make-fixed-appliance --xz
        

    This creates a tarball in the current directory called:

     appliance-<VERSION>.tar.xz
        

    (where "VERSION" is the version of libguestfs). The tarball contains the four files:

     appliance/kernel
     appliance/initrd
     appliance/root
     appliance/README.fixed
        

    Note that "appliance/root" is a sparse file, so take care when copying it.

OPTIONS

Display short usage information and exit.
Display the version number and exit.
Instead of creating the appliance in an output directory, create a compressed tarball of the appliance in the current directory called "appliance-VERSION.tar.xz" where "VERSION" is the version of libguestfs.

Using --xz can take some time. If working normally, the tool is completely silent when it is running.

FIXED APPLIANCE

When libguestfs (or libguestfs tools) are run, they search a path looking for an appliance. The path is built into libguestfs, or can be set using the "LIBGUESTFS_PATH" environment variable.

Normally a supermin appliance is located on this path (see "SUPERMIN APPLIANCE" in supermin(8)). libguestfs reconstructs this into a full appliance by running supermin-helper(8).

However, a simpler "fixed appliance" can also be used. libguestfs detects this by looking for a directory on the path containing four files called "kernel", "initrd", "root" and "README.fixed" (note the "README.fixed" file must be present as well).

If the fixed appliance is found, libguestfs skips supermin entirely and just runs qemu with the kernel, initrd and root disk from the fixed appliance.

Thus the fixed appliance can be used when a platform or Linux distro does not support supermin. You build the fixed appliance on a platform that does support supermin, and copy it over, and use that to run libguestfs.

LICENSING

The fixed appliance is a complete Linux binary distro. If you distribute it, you may need to distribute corresponding source files to remain in legal compliance with the licenses of the software in the appliance (such as the GNU General Public License).

EXIT STATUS

libguestfs-make-fixed-appliance returns 0 if the appliance was built without errors.

ENVIRONMENT VARIABLES

For the full list of environment variables which may affect libguestfs, please see the guestfs(3) manual page.

SEE ALSO

guestfs(3), supermin(8), supermin-helper(8), xz(1), http://libguestfs.org/, http://qemu.org/.

AUTHORS

Richard W.M. Jones ("rjones at redhat dot com")

COPYRIGHT

Copyright (C) 2009-2013 Red Hat Inc.

LICENSE

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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

BUGS

To get a list of bugs against libguestfs, use this link: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools

To report a new bug against libguestfs, use this link: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools

When reporting a bug, please supply:

  • The version of libguestfs.
  • Where you got libguestfs (eg. which Linux distro, compiled from source, etc)
  • Describe the bug accurately and give a way to reproduce it.
  • Run libguestfs-test-tool(1) and paste the complete, unedited output into the bug report.
2013-08-27 libguestfs-1.20.11