OnWorks favicon

guestfs-testing - Online in the Cloud

Run guestfs-testing in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command guestfs-testing that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



guestfs-testing - manual testing of libguestfs, you can help!


This page has manual tests you can try on libguestfs. Everyone has a slightly different
combination of platform, hardware and guests, so this testing is very valuable. Thanks
for helping out!

Tests marked with a * (asterisk) can destroy data if you're not careful. The others are
safe and won't modify anything.

Most of these tests will work with any libguestfs ≥ 1.14. Some of these tests (marked)
require libguestfs ≥ 1.22.

You can report bugs you find through this link:


or post on the mailing list (registration is not required, but if you're not registered
then you'll have to wait for a moderator to manually approve your message):



Run libguestfs-test-tool


This command does a very simple, non-destructive test that basic libguestfs is
functioning. You don't need to run it as root.

If it doesn't print "===== TEST FINISHED OK =====", report it as a bug. It is very
important that you include the complete, unedited output of "libguestfs-test-tool" in your
bug report. See the "BUGS" section at the end of this page.

Check KVM acceleration is being used.
If your host has hardware virt acceleration, then with a hot cache libguestfs should be
able to start up in a few seconds. Run the following command a few times:

time guestfish -a /dev/null run

After a few runs, the time should settle down to a few seconds (under 5 seconds on fast 64
bit hardware).

How to check for hardware virt:


If the command above does not work at all, use libguestfs-test-tool(1).

Check which version of libguestfs, qemu, libvirt, etc is being used.
Look at the output of "libguestfs-test-tool" and check:

· Which version of libguestfs is being used? Near the beginning of the output you'll
see a line like:

library version: 1.22.0fedora=19,release=1.fc19,libvirt

· Is libvirt being used? You can tell the difference by looking for the backend:

guestfs_get_backend: direct


guestfs_get_backend: libvirt

· Which version of qemu is being used? It may be printed out:

libguestfs: qemu version 1.5

but note that if you're using libvirt then libguestfs doesn't have this information.

· Which kernel is being used? supermin(1) will try to pick the latest kernel installed
on your machine. You can see the version in the appliance output, eg:

[ 0.000000] Linux version 3.9.2-200.fc18.x86_64 [...]

Try to open a local guest image with guestfish.
You can use any guest disk image for this test. Make sure you use the "--ro" flag so that
guestfish(1) will open the disk image read-only.

guestfish --ro -a /path/to/disk.img -i

If the command is successful, it should print out the guest operating system name and put
you at the guestfish "><fs>" prompt. You can use guestfish commands like "ll /" to look
inside the disk image. To exit, type "exit".

If you get an error, try enabling debugging (add "-v" to the command line). Also make
sure that libguestfs-test-tool(1) succeeds.

Try to open a remote guest image with guestfish.
Note this test requires libguestfs ≥ 1.22 and qemu ≥ 1.5. You may also have to disable
libvirt by setting this:


If you have a disk image available over HTTP/FTP, try to open it.

guestfish --ro -i --format=raw -a http://www.example.com/disk.img

For SSH you will need to make sure that ssh-agent is set up so you don't need a password
to log in to the remote machine. Then a command similar to this should work:

guestfish --ro -i --format=raw \
-a ssh://remote.example.com/path/to/disk.img

If you get an error, try enabling debugging (add "-v" to the command line). Also make
sure that libguestfs-test-tool(1) succeeds.

Run virt-alignment-scan on all your guests.
Run virt-alignment-scan(1) on guests or disk images:

virt-alignment-scan -a /path/to/disk.img


virt-alignment-scan -d Guest

Does the alignment report match how the guest partitions are aligned?

Run virt-cat on some files in guests.
virt-cat(1) can display files from guests. For a Linux guest, try:

virt-cat LinuxGuest /etc/passwd

A recent feature is support for Windows paths, for example:

virt-cat WindowsGuest 'c:\windows\win.ini'

An even better test is if you have a Windows guest with multiple drives. Do "D:", "E:"
etc paths work correctly?

* Copy some files into a shut off guest.
virt-copy-in(1) can recursively copy files and directories into a guest or disk image.

virt-copy-in -d Guest /etc /tmp

This should copy local directory /etc to /tmp/etc in the guest (recursively). If you boot
the guest, can you see all of the copied files and directories?

Shut the guest down and try copying multiple files and directories:

virt-copy-in -d Guest /home /etc/issue /tmp

Copy some files out of a guest.
virt-copy-out(1) can recursively copy files and directories out of a guest or disk image.

virt-copy-out -d Guest /home .

Note the final space and period in the command is not a typo.

This should copy /home from the guest into the current directory.

Run virt-df.
virt-df(1) lists disk space. Run:


You can try comparing this to the results from df(1) inside the guest, but there are some

· The guest must be idle.

· The guest disks must be synched using sync(1).

· Any action such as booting the guest will write log files causing the numbers to

We don't guarantee that the numbers will be identical even under these circumstances.
They should be similar. It would indicate a bug if you saw greatly differing numbers.

Try importing virt-df CSV output into a spreadsheet or database.

virt-df --csv > /tmp/report.csv

Now try to load this into your favorite spreadsheet or database. Are the results
reproduced faithfully in the spreadsheet/database?


* Edit a file in a shut off guest.
virt-edit(1) can edit files in guests. Try this command on a RHEL or Fedora guest:

virt-edit LinuxGuest /etc/sysconfig/network

On other Linux guests try editing other files such as:

virt-edit LinuxGuest /etc/motd

Are the changes seen inside the guest when it is booted?

Display the filesystems / partitions / LVs in a guest.
virt-filesystems(1) can be used to display filesystems in a guest. Try this command on
any disk image or guest:

virt-filesystems -a /path/to/disk.img --all --long -h


virt-filesystems -d Guest --all --long -h

Do the results match what is seen in the guest?

Run virt-inspector on all your guests.
Use virt-inspector(1) to get a report on all of your guests or disk images:

virt-inspector -a /path/to/disk.img | less


virt-inspector -d Guest | less

Do the results match what is actually in the guest?

Try the auditing features of virt-ls on all your guests.
List all setuid or setgid programs in a Linux virtual machine:

virt-ls -lR -d Guest / | grep '^- [42]'

List all public-writable directories in a Linux virtual machine:

virt-ls -lR -d Guest / | grep '^d ...7'

List all Unix domain sockets in a Linux virtual machine:

virt-ls -lR -d Guest / | grep '^s'

List all regular files with filenames ending in '.png':

virt-ls -lR -d Guest / | grep -i '^-.*\.png$'

Display files larger than 10MB in home directories:

virt-ls -lR -d Guest /home | awk '$3 > 10*1024*1024'

Find everything modified in the last 7 days:

virt-ls -lR -d Guest --time-days / | awk '$6 <= 7'

Find regular files modified in the last 24 hours:

virt-ls -lR -d Guest --time-days / | grep '^-' | awk '$6 < 1'

Do the results match what is in the guest?

Create a disk image from a tarball.
Use virt-make-fs(1) to create a disk image from any tarball that you happen to have:

virt-make-fs --partition=mbr --type=vfat /any/tarball.tar.gz output.img

Add 'output.img' as a raw disk to an existing guest. Check the guest can see the files.
This test is particularly useful if you try it with a Windows guest.

Try other partitioning schemes, eg. --partition=gpt.

Try other filesystem formats, eg. --type=ntfs, --type=ext2.

* Run virt-rescue on a shut off disk image or guest.
Use virt-rescue(1) to examine, rescue or repair a shut off guest or disk image:

virt-rescue -a /path/to/disk.img


virt-rescue -d Guest

Can you use ordinary shell commands to examine the guest?

* Resize your guests.
Use virt-resize(1) to give a guest some more disk space. For example, if you have a disk
image that is smaller than 30G, increase it to 30G by doing:

truncate -s 30G newdisk.img
virt-filesystems -a /path/to/olddisk.img --all --long -h
virt-resize /path/to/olddisk.img newdisk.img --expand /dev/sda1
qemu-kvm -m 1024 -hda newdisk.img

Does the guest still boot? Try expanding other partitions.

* Sparsify a guest disk.
Using virt-sparsify(1), make a disk image more sparse:

virt-sparsify /path/to/olddisk.img newdisk.img

Is newdisk.img still bootable after sparsifying? Is the resulting disk image smaller (use
"du" to check)?

* "sysprep" a shut off Linux guest.
Note that this really will mess up an existing guest, so it's better to clone the guest
before trying this.

virt-sysprep --hostname newhost.example.com -a /path/to/disk.img

Was the sysprep successful? After booting, what changes were made and were they

Dump the Windows Registry from your Windows guests.
Use virt-win-reg(1) to dump out the Windows Registry from any Windows guests that you

virt-win-reg --unsafe-printable-strings WindowsGuest 'HKLM\Software' |

virt-win-reg --unsafe-printable-strings WindowsGuest 'HKLM\System' |

Does the output match running "regedit" inside the guest?

A recent feature is the ability to dump user registries, so try this, replacing username
with the name of a local user in the guest:

virt-win-reg --unsafe-printable-strings WindowsGuest 'HKEY_USERS\username' |

Use guestfs-testing online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    Canon EOS DIGITAL Info
    Canon EOS DIGITAL Info
    Canon doesn�t have shutter count
    included on the EXIF information of an
    image file, as opposed to Nikon and
    Pentax. There�s no official Canon based
    application ...
    Download Canon EOS DIGITAL Info
  • 2
    rEFInd is a fork of the rEFIt boot
    manager. Like rEFIt, rEFInd can
    auto-detect your installed EFI boot
    loaders and it presents a pretty GUI
    menu of boot option...
    Download rEFInd
  • 3
    ExpressLuke GSI
    ExpressLuke GSI
    This SourceForge download page was to
    grant users to download my source built
    GSIs, based upon phhusson's great
    work. I build both Android Pie and
    Android 1...
    Download ExpressLuke GSI
  • 4
    Music Caster
    Music Caster
    Music Caster is a tray music player
    that lets you cast your local music to a
    Google Cast device. On the first run,
    you will need to click the arrow in your
    Download Music Caster
  • 5
    PyQt is the Python bindings for
    Digia's Qt cross-platform
    application development framework. It
    supports Python v2 and v3 and Qt v4 and
    Qt v5. PyQt is avail...
    Download PyQt
  • 6
    Sardi is a complete restyling and
    optimisation of svg code. 6 choices for
    your applications and 10 kind of folders
    to use in your file manager. The sardi
    Download Sardi
  • More »

Linux commands

  • 1
    abi-tracker - visualize ABI changes
    timeline of a C/C++ software library.
    (abi-tracker) Visualize ABI changes
    timeline of a C/C+...
    Run abi-tracker
  • 2
    abicheck - check application binaries
    for calls to private or evolving symbols
    in libraries and for static linking of
    some system libraries. ...
    Run abicheck
  • 3
    cpanm - get, unpack build and install
    modules from CPAN ...
    Run cpanmp
  • 4
    cpanp - The CPANPLUS launcher ...
    Run cpanpp
  • 5
    gajim-remote � a remote control utility
    for gajim(1) ...
    Run gajim-remote
  • 6
    gajim � a Jabber/XMPP client ...
    Run gajim
  • More »