libguestfs-make-fixed-appliance - Make a "fixed appliance" for libguestfs
libguestfs-make-fixed-appliance [--options] OUTPUTDIR libguestfs-make-fixed-appliance [--options] --xz
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(1).
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:
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
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
The alternative method is to use the --xz option to create a compressed tarball:
This creates a tarball in the current directory called:
VERSION is the version of libguestfs). The tarball contains the four files:
appliance/kernel appliance/initrd appliance/root appliance/README.fixed
appliance/root is a sparse file, so take care when copying it.
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
VERSION is the version of libguestfs.
Using --xz can take some time. If working normally, the tool is completely silent when it is running.
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(1)). libguestfs reconstructs this into a full appliance by running
However, a simpler "fixed appliance" can also be used. libguestfs detects this by looking for a directory on the path containing four files called
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.
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).
libguestfs-make-fixed-appliance returns 0 if the appliance was built without errors.
For the full list of environment variables which may affect libguestfs, please see the guestfs(3) manual page.
guestfs(3), supermin(1), xz(1), http://libguestfs.org/, http://qemu.org/.
Richard W.M. Jones (
rjones at redhat dot com)
Copyright (C) 2009-2015 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
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.