<div dir="ltr">Hi All,<div><br></div><div>I installed CentOS 7 as Xen Guest OS(DomU OS), I wonder if it is possible to use libguestfs in this CentOS 7 VM? libguestfs-test-tools reports error:</div><div><br></div><div><div><b>-bash-4.2# libguestfs-test-tool </b></div><div>     ************************************************************</div><div>     *                    IMPORTANT NOTICE</div><div>     *</div><div>     * When reporting bugs, include the COMPLETE, UNEDITED</div><div>     * output below in your bug report.</div><div>     *</div><div>     ************************************************************</div><div>LIBGUESTFS_BACKEND=libvirt</div><div>PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/opt/vpxxcm/conversion</div><div>SELinux: sh: getenforce: command not found</div><div>guestfs_get_append: (null)</div><div>guestfs_get_autosync: 1</div><div>guestfs_get_backend: libvirt</div><div>guestfs_get_backend_settings: []</div><div>guestfs_get_cachedir: /var/tmp</div><div>guestfs_get_direct: 0</div><div>guestfs_get_hv: /usr/libexec/qemu-kvm</div><div>guestfs_get_memsize: 500</div><div>guestfs_get_network: 0</div><div>guestfs_get_path: /usr/lib64/guestfs</div><div>guestfs_get_pgroup: 0</div><div>guestfs_get_program: libguestfs-test-tool</div><div>guestfs_get_recovery_proc: 1</div><div>guestfs_get_selinux: 0</div><div>guestfs_get_smp: 1</div><div>guestfs_get_tmpdir: /tmp</div><div>guestfs_get_trace: 0</div><div>guestfs_get_verbose: 1</div><div>host_cpu: x86_64</div><div>Launching appliance, timeout set to 600 seconds.</div><div>libguestfs: launch: program=libguestfs-test-tool</div><div>libguestfs: launch: version=1.28.1rhel=7,release=1.55.el7.centos.2,libvirt</div><div>libguestfs: launch: backend registered: unix</div><div>libguestfs: launch: backend registered: uml</div><div>libguestfs: launch: backend registered: libvirt</div><div>libguestfs: launch: backend registered: direct</div><div>libguestfs: launch: backend=libvirt</div><div>libguestfs: launch: tmpdir=/tmp/libguestfsqw6Xky</div><div>libguestfs: launch: umask=0022</div><div>libguestfs: launch: euid=0</div><div>libguestfs: libvirt version = 1002017 (1.2.17)</div><div>libguestfs: guest random name = guestfs-eln5avlfeu8xgpd8</div><div>libguestfs: [00000ms] connect to libvirt</div><div>libguestfs: opening libvirt handle: URI = qemu:///system, auth = default+wrapper, flags = 0</div><div>libguestfs: successfully opened libvirt handle: conn = 0x7f08e0053d80</div><div>libguestfs: qemu version (reported by libvirt) = 1005003 (1.5.3)</div><div>libguestfs: [00001ms] get libvirt capabilities</div><div>libguestfs: [00002ms] parsing capabilities XML</div><div>libguestfs: [00003ms] build appliance</div><div>libguestfs: [00003ms] begin building supermin appliance</div><div>libguestfs: [00003ms] run supermin</div><div>libguestfs: command: run: /usr/bin/supermin5</div><div>libguestfs: command: run: \ --build</div><div>libguestfs: command: run: \ --verbose</div><div>libguestfs: command: run: \ --if-newer</div><div>libguestfs: command: run: \ --lock /var/tmp/.guestfs-0/lock</div><div>libguestfs: command: run: \ --copy-kernel</div><div>libguestfs: command: run: \ -f ext2</div><div>libguestfs: command: run: \ --host-cpu x86_64</div><div>libguestfs: command: run: \ /usr/lib64/guestfs/supermin.d</div><div>libguestfs: command: run: \ -o /var/tmp/.guestfs-0/appliance.d</div><div>supermin: version: 5.1.10</div><div>supermin: rpm: detected RPM version 4.11</div><div>supermin: package handler: fedora/rpm</div><div>supermin: acquiring lock on /var/tmp/.guestfs-0/lock</div><div>supermin: if-newer: output does not need rebuilding</div><div>libguestfs: [00011ms] finished building supermin appliance</div><div>libguestfs: command: run: qemu-img</div><div>libguestfs: command: run: \ create</div><div>libguestfs: command: run: \ -f qcow2</div><div>libguestfs: command: run: \ -o backing_file=/var/tmp/.guestfs-0/appliance.d/root,backing_fmt=raw</div><div>libguestfs: command: run: \ /tmp/libguestfsqw6Xky/overlay2</div><div>Formatting '/tmp/libguestfsqw6Xky/overlay2', fmt=qcow2 size=4294967296 backing_file='/var/tmp/.guestfs-0/appliance.d/root' backing_fmt='raw' encryption=off cluster_size=65536 lazy_refcounts=off </div><div>libguestfs: set_socket_create_context: context_new failed: kernel: Invalid argument [you can ignore this UNLESS using SELinux + sVirt]</div><div>libguestfs: [00031ms] create libvirt XML</div><div>libguestfs: command: run: dmesg | grep -Eoh 'lpj=[[:digit:]]+'</div><div>libguestfs: read_lpj_from_dmesg: calculated lpj=2200086</div><div>libguestfs: libvirt XML:\n<?xml version="1.0"?>\n<domain type="qemu" xmlns:qemu="<a href="http://libvirt.org/schemas/domain/qemu/1.0">http://libvirt.org/schemas/domain/qemu/1.0</a>">\n  <name>guestfs-eln5avlfeu8xgpd8</name>\n  <memory unit="MiB">500</memory>\n  <currentMemory unit="MiB">500</currentMemory>\n  <vcpu>1</vcpu>\n  <clock offset="utc">\n    <timer name="rtc" tickpolicy="catchup"/>\n    <timer name="pit" tickpolicy="delay"/>\n    <timer name="hpet" present="no"/>\n  </clock>\n  <os>\n    <type>hvm</type>\n    <kernel>/var/tmp/.guestfs-0/appliance.d/kernel</kernel>\n    <initrd>/var/tmp/.guestfs-0/appliance.d/initrd</initrd>\n    <cmdline>panic=1 console=ttyS0 udevtimeout=6000 udev.event-timeout=6000 no_timer_check lpj=2200086 acpi=off printk.time=1 cgroup_disable=memory root=/dev/sdb selinux=0 guestfs_verbose=1 TERM=xterm</cmdline>\n    <bios useserial="yes"/>\n  </os>\n  <on_reboot>destroy</on_reboot>\n  <devices>\n    <controller type="scsi" index="0" model="virtio-scsi"/>\n    <disk device="disk" type="file">\n      <source file="/tmp/libguestfsqw6Xky/scratch.1"/>\n      <target dev="sda" bus="scsi"/>\n      <driver name="qemu" type="raw" cache="unsafe"/>\n      <address type="drive" controller="0" bus="0" target="0" unit="0"/>\n    </disk>\n    <disk type="file" device="disk">\n      <source file="/tmp/libguestfsqw6Xky/overlay2"/>\n      <target dev="sdb" bus="scsi"/>\n      <driver name="qemu" type="qcow2" cache="unsafe"/>\n      <address type="drive" controller="0" bus="0" target="1" unit="0"/>\n      <shareable/>\n    </disk>\n    <serial type="unix">\n      <source mode="connect" path="/tmp/libguestfsqw6Xky/console.sock"/>\n      <target port="0"/>\n    </serial>\n    <channel type="unix">\n      <source mode="connect" path="/tmp/libguestfsqw6Xky/guestfsd.sock"/>\n      <target type="virtio" name="org.libguestfs.channel.0"/>\n    </channel>\n  </devices>\n  <qemu:commandline>\n    <qemu:env name="TMPDIR" value="/var/tmp"/>\n  </qemu:commandline>\n</domain>\n</div><div>libguestfs: command: run: ls</div><div>libguestfs: command: run: \ -a</div><div>libguestfs: command: run: \ -l</div><div>libguestfs: command: run: \ -Z /var/tmp/.guestfs-0</div><div>libguestfs: drwxr-xr-x root root ?                                .</div><div>libguestfs: drwxrwxrwt root root ?                                ..</div><div>libguestfs: drwxr-xr-x root root ?                                appliance.d</div><div>libguestfs: -rw-r--r-- root root ?                                lock</div><div>libguestfs: command: run: ls</div><div>libguestfs: command: run: \ -a</div><div>libguestfs: command: run: \ -l</div><div>libguestfs: command: run: \ -Z /tmp/libguestfsqw6Xky</div><div>libguestfs: drwxr-xr-x root root ?                                .</div><div>libguestfs: drwxrwxrwt root root ?                                ..</div><div>libguestfs: srw-rw---- root qemu ?                                console.sock</div><div>libguestfs: srw-rw---- root qemu ?                                guestfsd.sock</div><div>libguestfs: -rw-r--r-- root root ?                                overlay2</div><div>libguestfs: -rw-r--r-- root root ?                                scratch.1</div><div>libguestfs: -rwxr-xr-x root root ?                                umask-check</div><div>libguestfs: [00041ms] launch libvirt guest</div><div>libguestfs: error: could not create appliance through libvirt.</div><div><br></div><div>Try running qemu directly without libvirt using this environment variable:</div><div>export LIBGUESTFS_BACKEND=direct</div><div><br></div><div>Original error from libvirt: internal error: process exited while connecting to monitor: Cannot set up guest memory 'pc.ram': Cannot allocate memory</div><div> [code=1 domain=10]</div><div>libguestfs-test-tool: failed to launch appliance</div><div>libguestfs: closing guestfs handle 0x7f08e0053620 (state 0)</div><div>libguestfs: command: run: rm</div><div>libguestfs: command: run: \ -rf /tmp/libguestfsqw6Xky</div></div><div><div><b>-bash-4.2# export LIBGUESTFS_BACKEND=direct</b></div><div><b>-bash-4.2# libguestfs-test-tool </b></div><div>     ************************************************************</div><div>     *                    IMPORTANT NOTICE</div><div>     *</div><div>     * When reporting bugs, include the COMPLETE, UNEDITED</div><div>     * output below in your bug report.</div><div>     *</div><div>     ************************************************************</div><div>LIBGUESTFS_BACKEND=direct</div><div>PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/opt/vpxxcm/conversion</div><div>SELinux: sh: getenforce: command not found</div><div>guestfs_get_append: (null)</div><div>guestfs_get_autosync: 1</div><div>guestfs_get_backend: direct</div><div>guestfs_get_backend_settings: []</div><div>guestfs_get_cachedir: /var/tmp</div><div>guestfs_get_direct: 0</div><div>guestfs_get_hv: /usr/libexec/qemu-kvm</div><div>guestfs_get_memsize: 500</div><div>guestfs_get_network: 0</div><div>guestfs_get_path: /usr/lib64/guestfs</div><div>guestfs_get_pgroup: 0</div><div>guestfs_get_program: libguestfs-test-tool</div><div>guestfs_get_recovery_proc: 1</div><div>guestfs_get_selinux: 0</div><div>guestfs_get_smp: 1</div><div>guestfs_get_tmpdir: /tmp</div><div>guestfs_get_trace: 0</div><div>guestfs_get_verbose: 1</div><div>host_cpu: x86_64</div><div>Launching appliance, timeout set to 600 seconds.</div><div>libguestfs: launch: program=libguestfs-test-tool</div><div>libguestfs: launch: version=1.28.1rhel=7,release=1.55.el7.centos.2,libvirt</div><div>libguestfs: launch: backend registered: unix</div><div>libguestfs: launch: backend registered: uml</div><div>libguestfs: launch: backend registered: libvirt</div><div>libguestfs: launch: backend registered: direct</div><div>libguestfs: launch: backend=direct</div><div>libguestfs: launch: tmpdir=/tmp/libguestfsvt8tnf</div><div>libguestfs: launch: umask=0022</div><div>libguestfs: launch: euid=0</div><div>libguestfs: is_openable: /dev/kvm: No such file or directory</div><div>libguestfs: [00000ms] begin building supermin appliance</div><div>libguestfs: [00000ms] run supermin</div><div>libguestfs: command: run: /usr/bin/supermin5</div><div>libguestfs: command: run: \ --build</div><div>libguestfs: command: run: \ --verbose</div><div>libguestfs: command: run: \ --if-newer</div><div>libguestfs: command: run: \ --lock /var/tmp/.guestfs-0/lock</div><div>libguestfs: command: run: \ --copy-kernel</div><div>libguestfs: command: run: \ -f ext2</div><div>libguestfs: command: run: \ --host-cpu x86_64</div><div>libguestfs: command: run: \ /usr/lib64/guestfs/supermin.d</div><div>libguestfs: command: run: \ -o /var/tmp/.guestfs-0/appliance.d</div><div>supermin: version: 5.1.10</div><div>supermin: rpm: detected RPM version 4.11</div><div>supermin: package handler: fedora/rpm</div><div>supermin: acquiring lock on /var/tmp/.guestfs-0/lock</div><div>supermin: if-newer: output does not need rebuilding</div><div>libguestfs: [00013ms] finished building supermin appliance</div><div>libguestfs: [00013ms] begin testing qemu features</div><div>libguestfs: command: run: /usr/libexec/qemu-kvm</div><div>libguestfs: command: run: \ -display none</div><div>libguestfs: command: run: \ -help</div><div>libguestfs: command: run: /usr/libexec/qemu-kvm</div><div>libguestfs: command: run: \ -display none</div><div>libguestfs: command: run: \ -version</div><div>libguestfs: qemu version 1.5</div><div>libguestfs: command: run: /usr/libexec/qemu-kvm</div><div>libguestfs: command: run: \ -display none</div><div>libguestfs: command: run: \ -machine accel=kvm:tcg</div><div>libguestfs: command: run: \ -device ?</div><div>libguestfs: [00099ms] finished testing qemu features</div><div>libguestfs: command: run: dmesg | grep -Eoh 'lpj=[[:digit:]]+'</div><div>libguestfs: read_lpj_from_dmesg: calculated lpj=2200086</div><div>[00107ms] /usr/libexec/qemu-kvm \</div><div>    -global virtio-blk-pci.scsi=off \</div><div>    -nodefconfig \</div><div>    -enable-fips \</div><div>    -nodefaults \</div><div>    -display none \</div><div>    -machine accel=kvm:tcg \</div><div>    -m 500 \</div><div>    -no-reboot \</div><div>    -rtc driftfix=slew \</div><div>    -no-hpet \</div><div>    -global kvm-pit.lost_tick_policy=discard \</div><div>    -kernel /var/tmp/.guestfs-0/appliance.d/kernel \</div><div>    -initrd /var/tmp/.guestfs-0/appliance.d/initrd \</div><div>    -device virtio-scsi-pci,id=scsi \</div><div>    -drive file=/tmp/libguestfsvt8tnf/scratch.1,cache=unsafe,format=raw,id=hd0,if=none \</div><div>    -device scsi-hd,drive=hd0 \</div><div>    -drive file=/var/tmp/.guestfs-0/appliance.d/root,snapshot=on,id=appliance,cache=unsafe,if=none \</div><div>    -device scsi-hd,drive=appliance \</div><div>    -device virtio-serial-pci \</div><div>    -serial stdio \</div><div>    -device sga \</div><div>    -chardev socket,path=/tmp/libguestfsvt8tnf/guestfsd.sock,id=channel0 \</div><div>    -device virtserialport,chardev=channel0,name=org.libguestfs.channel.0 \</div><div>    -append 'panic=1 console=ttyS0 udevtimeout=6000 udev.event-timeout=6000 no_timer_check lpj=2200086 acpi=off printk.time=1 cgroup_disable=memory root=/dev/sdb selinux=0 guestfs_verbose=1 TERM=xterm'</div><div>Could not access KVM kernel module: No such file or directory</div><div>failed to initialize KVM: No such file or directory</div><div>Back to tcg accelerator.</div><div>Cannot set up guest memory 'pc.ram': Cannot allocate memory</div><div>libguestfs: error: appliance closed the connection unexpectedly, see earlier error messages</div><div>libguestfs: child_cleanup: 0x7fd127b2d620: child process died</div><div>libguestfs: sending SIGTERM to process 17471</div><div>libguestfs: error: /usr/libexec/qemu-kvm exited with error status 1, see debug messages above</div><div>libguestfs: error: guestfs_launch failed, see earlier error messages</div><div>libguestfs-test-tool: failed to launch appliance</div><div>libguestfs: closing guestfs handle 0x7fd127b2d620 (state 0)</div><div>libguestfs: command: run: rm</div><div>libguestfs: command: run: \ -rf /tmp/libguestfsvt8tnf</div><div>-bash-4.2# </div></div><div><br></div><div>After running "<b>export LIBGUESTFS_BACKEND=direct</b>", it seems libguestfs will launch another VM inside my VM. Is this necessary?</div><div><br></div><div>Any response is highly appreciated.<br></div><div><br></div><div>Thanks,</div><div>Allen</div></div>