[libnbd RFC PATCH] First stab at CI infrastructure
by Martin Kletzander
This is a first try for adding a CI to libnbd. It uses the libvirt-ci to
get as much coverage as possible with the ease of use provided by that
repository. Not all the data are available there at the time of posting
this patch, so if anyone wants to recreate the Containerfiles and
variable files (for cirrus CI) my temporary branch of libvirt-ci called
nbd_prep:
https://gitlab.com/nertpinx/libvirt-ci/-/tree/nbd_prep
The result of this branch CI run is available here:
https://gitlab.com/nertpinx/libnbd/-/pipelines
As you can see there are errors. I went down a rabbit hole of trying to
figure out one of them, but ended up not being sure what the preferred
way of fixing that particular issue would be. So instead of trying
myself and raising various questions every single day I am posting this
here as handling it myself would take too much time and I would be
bothering other people throughout days and days going forward.
If there are any questions related to how the CI is running, how it
works, how to replicate CI builds locally or how to change anything,
then I am more than happy to help.
Actually recreating the builds locally (at least for Linux distributions
and setups) is pretty straightforward. Choose a file from ci/containers
which represents the desired setup, for our example let's pick fedora
rawhide, and build your container and tag it, e.g. using podman (or feel
free to substitute "podman" with "docker"):
podman build ci/containers/fedora-33.Dockerfile -t libnbd-fedora-rawhide
That will get you a container tagged `libnbd-fedora-rawhide` that you
can execute the tests on. You can then run whatever you want inside
that container with the current repository passed through like this:
podman run -it --rm -v .:/repo -w /repo libnbd-fedora-rawhide bash
which will bind-mount the current directory onto /repo inside the
container and also use that path as the working directory (just so you
do not have to `cd /repo` before any commands. I prefer running bash,
but of course you can just run the build script used in the CI. I have
put all the commands into one file for simplicity, so that you can
simply specifically `ci/build_script.sh`. So simply executing that
script will give you the results and you can experiment right inside
that environment to figure out what is needed. At the same time you can
easily modify any files inside that repository on your host, just like
you are used to, so that you can use your editor and other setups that
work for you.
Last few things to note:
- You should make sure that build files do not interfere between the
host and the container, if you want to replicate a clean build you
need to either use VPATH or just clean everything.
- No tests include running make distcheck as that seems a bit more
broken and could be fixed after more pressing issues are dealt with,
just so the output does not interfere in the meantime.
Let me know what you think, and have a nice day.
---
.gitlab-ci.yml | 490 ++++++++++++++++++
ci/build_script.sh | 24 +
ci/cirrus/build.yml | 22 +
ci/cirrus/freebsd-12.vars | 14 +
ci/cirrus/freebsd-current.vars | 14 +
ci/cirrus/macos-11.vars | 14 +
ci/cirrus/refresh | 22 +
ci/containers/README.rst | 14 +
ci/containers/centos-7.Dockerfile | 47 ++
ci/containers/centos-8.Dockerfile | 49 ++
ci/containers/centos-stream.Dockerfile | 51 ++
.../debian-10-cross-aarch64.Dockerfile | 75 +++
.../debian-10-cross-armv6l.Dockerfile | 75 +++
.../debian-10-cross-armv7l.Dockerfile | 75 +++
ci/containers/debian-10-cross-i686.Dockerfile | 75 +++
ci/containers/debian-10-cross-mips.Dockerfile | 75 +++
.../debian-10-cross-mips64el.Dockerfile | 75 +++
.../debian-10-cross-mipsel.Dockerfile | 75 +++
.../debian-10-cross-ppc64le.Dockerfile | 75 +++
.../debian-10-cross-s390x.Dockerfile | 75 +++
ci/containers/debian-10.Dockerfile | 50 ++
.../debian-sid-cross-aarch64.Dockerfile | 75 +++
.../debian-sid-cross-armv6l.Dockerfile | 75 +++
.../debian-sid-cross-armv7l.Dockerfile | 75 +++
.../debian-sid-cross-i686.Dockerfile | 75 +++
.../debian-sid-cross-mips64el.Dockerfile | 75 +++
.../debian-sid-cross-mipsel.Dockerfile | 75 +++
.../debian-sid-cross-ppc64le.Dockerfile | 75 +++
.../debian-sid-cross-s390x.Dockerfile | 75 +++
ci/containers/debian-sid.Dockerfile | 50 ++
ci/containers/fedora-32.Dockerfile | 55 ++
ci/containers/fedora-33.Dockerfile | 55 ++
.../fedora-rawhide-cross-mingw32.Dockerfile | 60 +++
.../fedora-rawhide-cross-mingw64.Dockerfile | 60 +++
ci/containers/fedora-rawhide.Dockerfile | 56 ++
ci/containers/opensuse-152.Dockerfile | 44 ++
ci/containers/refresh | 42 ++
ci/containers/ubuntu-1804.Dockerfile | 50 ++
ci/containers/ubuntu-2004.Dockerfile | 50 ++
39 files changed, 2608 insertions(+)
create mode 100644 .gitlab-ci.yml
create mode 100755 ci/build_script.sh
create mode 100644 ci/cirrus/build.yml
create mode 100644 ci/cirrus/freebsd-12.vars
create mode 100644 ci/cirrus/freebsd-current.vars
create mode 100644 ci/cirrus/macos-11.vars
create mode 100755 ci/cirrus/refresh
create mode 100644 ci/containers/README.rst
create mode 100644 ci/containers/centos-7.Dockerfile
create mode 100644 ci/containers/centos-8.Dockerfile
create mode 100644 ci/containers/centos-stream.Dockerfile
create mode 100644 ci/containers/debian-10-cross-aarch64.Dockerfile
create mode 100644 ci/containers/debian-10-cross-armv6l.Dockerfile
create mode 100644 ci/containers/debian-10-cross-armv7l.Dockerfile
create mode 100644 ci/containers/debian-10-cross-i686.Dockerfile
create mode 100644 ci/containers/debian-10-cross-mips.Dockerfile
create mode 100644 ci/containers/debian-10-cross-mips64el.Dockerfile
create mode 100644 ci/containers/debian-10-cross-mipsel.Dockerfile
create mode 100644 ci/containers/debian-10-cross-ppc64le.Dockerfile
create mode 100644 ci/containers/debian-10-cross-s390x.Dockerfile
create mode 100644 ci/containers/debian-10.Dockerfile
create mode 100644 ci/containers/debian-sid-cross-aarch64.Dockerfile
create mode 100644 ci/containers/debian-sid-cross-armv6l.Dockerfile
create mode 100644 ci/containers/debian-sid-cross-armv7l.Dockerfile
create mode 100644 ci/containers/debian-sid-cross-i686.Dockerfile
create mode 100644 ci/containers/debian-sid-cross-mips64el.Dockerfile
create mode 100644 ci/containers/debian-sid-cross-mipsel.Dockerfile
create mode 100644 ci/containers/debian-sid-cross-ppc64le.Dockerfile
create mode 100644 ci/containers/debian-sid-cross-s390x.Dockerfile
create mode 100644 ci/containers/debian-sid.Dockerfile
create mode 100644 ci/containers/fedora-32.Dockerfile
create mode 100644 ci/containers/fedora-33.Dockerfile
create mode 100644 ci/containers/fedora-rawhide-cross-mingw32.Dockerfile
create mode 100644 ci/containers/fedora-rawhide-cross-mingw64.Dockerfile
create mode 100644 ci/containers/fedora-rawhide.Dockerfile
create mode 100644 ci/containers/opensuse-152.Dockerfile
create mode 100755 ci/containers/refresh
create mode 100644 ci/containers/ubuntu-1804.Dockerfile
create mode 100644 ci/containers/ubuntu-2004.Dockerfile
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 000000000000..7e4a7911afac
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,490 @@
+variables:
+ GIT_DEPTH: 100
+
+stages:
+ - containers
+ - builds
+
+.script_variables: &script_variables |
+ export MAKEFLAGS="-j $(getconf _NPROCESSORS_ONLN)"
+ export CCACHE_BASEDIR="$(pwd)"
+ export CCACHE_DIR="$CCACHE_BASEDIR/ccache"
+ export CCACHE_MAXSIZE="500M"
+ export PATH="$CCACHE_WRAPPERSDIR:$PATH"
+
+# Common templates
+
+.container_job:
+ image: docker:stable
+ stage: containers
+ needs: []
+ services:
+ - docker:dind
+ rules:
+ - if: "$TEMPORARILY_DISABLED"
+ allow_failure: true
+ - when: on_success
+ before_script:
+ - export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest"
+ - export COMMON_TAG="$CI_REGISTRY/nbdkit/libnbd/ci-$NAME:latest"
+ - docker info
+ - docker login registry.gitlab.com -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
+ script:
+ - docker pull "$TAG" || docker pull "$COMMON_TAG" || true
+ - docker build --cache-from "$TAG" --cache-from "$COMMON_TAG" --tag "$TAG" -f "ci/containers/$NAME.Dockerfile" ci/containers
+ - docker push "$TAG"
+ after_script:
+ - docker logout
+
+# We build many containers which can be useful to debug problems but are not
+# needed for the pipeline itself to complete: those sometimes fail, and when
+# that happens it's mostly because of temporary issues with Debian sid. We
+# don't want those failures to affect the overall pipeline status
+.container_optional_job:
+ extends: .container_job
+ allow_failure: true
+
+.native_build_job:
+ stage: builds
+ image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
+ rules:
+ - if: "$TEMPORARILY_DISABLED"
+ allow_failure: true
+ - when: on_success
+ cache:
+ paths:
+ - ccache/
+ key: "$CI_JOB_NAME"
+ before_script:
+ - *script_variables
+ script:
+ - ci/build_script.sh
+
+# Jobs that we delegate to Cirrus CI because they require an operating
+# system other than Linux. These jobs will only run if the required
+# setup has been performed on the GitLab account (see ci/README.rst).
+#
+# The Cirrus CI configuration is generated by replacing target-specific
+# variables in a generic template: some of these variables are provided
+# when the GitLab CI job is defined, others are taken from a shell
+# snippet generated using lcitool.
+#
+# Note that the $PATH environment variable has to be treated with
+# special care, because we can't just override it at the GitLab CI job
+# definition level or we risk breaking it completely.
+.cirrus_build_job:
+ stage: builds
+ image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
+ needs: []
+ script:
+ - source ci/cirrus/$NAME.vars
+ - sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
+ -e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
+ -e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
+ -e "s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g"
+ -e "s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g"
+ -e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g"
+ -e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g"
+ -e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g"
+ -e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g"
+ -e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g"
+ -e "s|[@]PKGS@|$PKGS|g"
+ -e "s|[@]MAKE@|$MAKE|g"
+ -e "s|[@]PYTHON@|$PYTHON|g"
+ -e "s|[@]PIP3@|$PIP3|g"
+ -e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g"
+ <ci/cirrus/build.yml >ci/cirrus/$NAME.yml
+ - cat ci/cirrus/$NAME.yml
+ - cirrus-run -v --show-build-log always ci/cirrus/$NAME.yml
+ rules:
+ - if: "$TEMPORARILY_DISABLED"
+ allow_failure: true
+ - if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN"
+
+.cross_build_job:
+ stage: builds
+ image: $CI_REGISTRY_IMAGE/ci-$NAME-cross-$CROSS:latest
+ cache:
+ paths:
+ - ccache/
+ key: "$CI_JOB_NAME"
+ rules:
+ - if: "$TEMPORARILY_DISABLED"
+ allow_failure: true
+ - when: on_success
+ before_script:
+ - *script_variables
+ script:
+ - ci/build_script.sh
+
+# Native container build jobs
+
+x64-centos-7-container:
+ extends: .container_job
+ variables:
+ NAME: centos-7
+
+x64-centos-8-container:
+ extends: .container_job
+ variables:
+ NAME: centos-8
+
+x64-centos-stream-container:
+ extends: .container_job
+ variables:
+ NAME: centos-stream
+
+x64-debian-10-container:
+ extends: .container_job
+ variables:
+ NAME: debian-10
+
+x64-debian-sid-container:
+ extends: .container_job
+ variables:
+ NAME: debian-sid
+
+x64-fedora-32-container:
+ extends: .container_job
+ variables:
+ NAME: fedora-32
+
+x64-fedora-33-container:
+ extends: .container_job
+ variables:
+ NAME: fedora-33
+
+x64-fedora-rawhide-container:
+ extends: .container_job
+ variables:
+ NAME: fedora-rawhide
+
+x64-opensuse-152-container:
+ extends: .container_job
+ variables:
+ NAME: opensuse-152
+
+x64-ubuntu-1804-container:
+ extends: .container_job
+ variables:
+ NAME: ubuntu-1804
+
+x64-ubuntu-2004-container:
+ extends: .container_job
+ variables:
+ NAME: ubuntu-2004
+
+
+# Cross-build containers build jobs
+
+aarch64-debian-10-container:
+ extends: .container_optional_job
+ variables:
+ NAME: debian-10-cross-aarch64
+
+armv6l-debian-10-container:
+ extends: .container_job
+ variables:
+ NAME: debian-10-cross-armv6l
+
+armv7l-debian-10-container:
+ extends: .container_job
+ variables:
+ NAME: debian-10-cross-armv7l
+
+i686-debian-10-container:
+ extends: .container_optional_job
+ variables:
+ NAME: debian-10-cross-i686
+
+mips-debian-10-container:
+ extends: .container_job
+ variables:
+ NAME: debian-10-cross-mips
+
+mips64el-debian-10-container:
+ extends: .container_optional_job
+ variables:
+ NAME: debian-10-cross-mips64el
+
+mipsel-debian-10-container:
+ extends: .container_job
+ variables:
+ NAME: debian-10-cross-mipsel
+
+ppc64le-debian-10-container:
+ extends: .container_job
+ variables:
+ NAME: debian-10-cross-ppc64le
+
+s390x-debian-10-container:
+ extends: .container_optional_job
+ variables:
+ NAME: debian-10-cross-s390x
+
+aarch64-debian-sid-container:
+ extends: .container_job
+ variables:
+ NAME: debian-sid-cross-aarch64
+
+armv6l-debian-sid-container:
+ extends: .container_optional_job
+ variables:
+ NAME: debian-sid-cross-armv6l
+
+armv7l-debian-sid-container:
+ extends: .container_optional_job
+ variables:
+ NAME: debian-sid-cross-armv7l
+
+i686-debian-sid-container:
+ extends: .container_job
+ variables:
+ NAME: debian-sid-cross-i686
+
+mips64el-debian-sid-container:
+ extends: .container_job
+ variables:
+ NAME: debian-sid-cross-mips64el
+
+mipsel-debian-sid-container:
+ extends: .container_optional_job
+ variables:
+ NAME: debian-sid-cross-mipsel
+
+ppc64le-debian-sid-container:
+ extends: .container_optional_job
+ variables:
+ NAME: debian-sid-cross-ppc64le
+
+s390x-debian-sid-container:
+ extends: .container_job
+ variables:
+ NAME: debian-sid-cross-s390x
+
+mingw32-fedora-rawhide-container:
+ extends: .container_job
+ variables:
+ NAME: fedora-rawhide-cross-mingw32
+
+mingw64-fedora-rawhide-container:
+ extends: .container_job
+ variables:
+ NAME: fedora-rawhide-cross-mingw64
+
+
+# Native architecture build + test jobs
+
+x64-debian-10:
+ extends: .native_build_job
+ needs:
+ - x64-debian-10-container
+ variables:
+ NAME: debian-10
+
+x64-debian-10-clang:
+ extends: .native_build_job
+ needs:
+ - x64-debian-10-container
+ variables:
+ NAME: debian-10
+ CC: clang
+
+x64-debian-sid:
+ extends: .native_build_job
+ needs:
+ - x64-debian-sid-container
+ variables:
+ NAME: debian-sid
+
+x64-centos-7:
+ extends: .native_build_job
+ needs:
+ - x64-centos-7-container
+ variables:
+ NAME: centos-7
+
+x64-centos-8:
+ extends: .native_build_job
+ needs:
+ - x64-centos-8-container
+ variables:
+ NAME: centos-8
+
+x64-centos-8-clang:
+ extends: .native_build_job
+ needs:
+ - x64-centos-8-container
+ variables:
+ NAME: centos-8
+ CC: clang
+
+x64-centos-stream:
+ extends: .native_build_job
+ needs:
+ - x64-centos-stream-container
+ variables:
+ NAME: centos-stream
+
+x64-fedora-32:
+ extends: .native_build_job
+ needs:
+ - x64-fedora-32-container
+ variables:
+ NAME: fedora-32
+
+x64-fedora-33:
+ extends: .native_build_job
+ needs:
+ - x64-fedora-33-container
+ variables:
+ NAME: fedora-33
+
+x64-fedora-rawhide:
+ extends: .native_build_job
+ needs:
+ - x64-fedora-rawhide-container
+ variables:
+ NAME: fedora-rawhide
+
+x64-fedora-rawhide-clang:
+ extends: .native_build_job
+ needs:
+ - x64-fedora-rawhide-container
+ variables:
+ NAME: fedora-rawhide
+ CC: clang
+
+x64-opensuse-152:
+ extends: .native_build_job
+ needs:
+ - x64-opensuse-152-container
+ variables:
+ NAME: opensuse-152
+
+x64-ubuntu-1804:
+ extends: .native_build_job
+ needs:
+ - x64-ubuntu-1804-container
+ variables:
+ NAME: ubuntu-1804
+
+x64-ubuntu-2004:
+ extends: .native_build_job
+ needs:
+ - x64-ubuntu-2004-container
+ variables:
+ NAME: ubuntu-2004
+
+x64-freebsd-12-build:
+ extends: .cirrus_build_job
+ variables:
+ NAME: freebsd-12
+ CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
+ CIRRUS_VM_IMAGE_SELECTOR: image_family
+ CIRRUS_VM_IMAGE_NAME: freebsd-12-2
+ UPDATE_COMMAND: pkg update
+ INSTALL_COMMAND: pkg install -y
+
+x64-macos-11-build:
+ extends: .cirrus_build_job
+ variables:
+ NAME: macos-11
+ CIRRUS_VM_INSTANCE_TYPE: osx_instance
+ CIRRUS_VM_IMAGE_SELECTOR: image
+ CIRRUS_VM_IMAGE_NAME: big-sur-base
+ UPDATE_COMMAND: brew update
+ INSTALL_COMMAND: brew install
+ PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
+ PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
+
+
+# Cross compiled build jobs
+
+aarch64-debian-sid:
+ extends: .cross_build_job
+ needs:
+ - aarch64-debian-sid-container
+ variables:
+ NAME: debian-sid
+ CROSS: aarch64
+
+armv6l-debian-10:
+ extends: .cross_build_job
+ needs:
+ - armv6l-debian-10-container
+ variables:
+ NAME: debian-10
+ CROSS: armv6l
+
+armv7l-debian-10:
+ extends: .cross_build_job
+ needs:
+ - armv7l-debian-10-container
+ variables:
+ NAME: debian-10
+ CROSS: armv7l
+
+i686-debian-sid:
+ extends: .cross_build_job
+ needs:
+ - i686-debian-sid-container
+ variables:
+ NAME: debian-sid
+ CROSS: i686
+
+mips-debian-10:
+ extends: .cross_build_job
+ needs:
+ - mips-debian-10-container
+ variables:
+ NAME: debian-10
+ CROSS: mips
+
+mips64el-debian-sid:
+ extends: .cross_build_job
+ needs:
+ - mips64el-debian-sid-container
+ variables:
+ NAME: debian-sid
+ CROSS: mips64el
+
+mipsel-debian-10:
+ extends: .cross_build_job
+ needs:
+ - mipsel-debian-10-container
+ variables:
+ NAME: debian-10
+ CROSS: mipsel
+
+ppc64le-debian-10:
+ extends: .cross_build_job
+ needs:
+ - ppc64le-debian-10-container
+ variables:
+ NAME: debian-10
+ CROSS: ppc64le
+
+s390x-debian-sid:
+ extends: .cross_build_job
+ needs:
+ - s390x-debian-sid-container
+ variables:
+ NAME: debian-sid
+ CROSS: s390x
+
+mingw32-fedora-rawhide:
+ extends: .cross_build_job
+ needs:
+ - mingw32-fedora-rawhide-container
+ variables:
+ NAME: fedora-rawhide
+ CROSS: mingw32
+
+mingw64-fedora-rawhide:
+ extends: .cross_build_job
+ needs:
+ - mingw64-fedora-rawhide-container
+ variables:
+ NAME: fedora-rawhide
+ CROSS: mingw64
diff --git a/ci/build_script.sh b/ci/build_script.sh
new file mode 100755
index 000000000000..7c176de9d3da
--- /dev/null
+++ b/ci/build_script.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+set -e
+
+main() {
+ autoreconf -if
+ ./configure --enable-gcc-warnings --enable-fuse --enable-ocaml --enable-python --enable-golang --with-gnutls --with-libxml2
+
+ $MAKE
+
+ if test -n "$CROSS"
+ then
+ return 0
+ fi
+
+ $MAKE check || find . -name test-suite.log -exec grep -l '^X\?FAIL:' '{}' \+ | xargs cat
+
+ if test "$DIST" == "force"
+ then
+ $MAKE distcheck
+ fi
+}
+
+main "$@"
diff --git a/ci/cirrus/build.yml b/ci/cirrus/build.yml
new file mode 100644
index 000000000000..5a5c65e3b640
--- /dev/null
+++ b/ci/cirrus/build.yml
@@ -0,0 +1,22 @@
+@CIRRUS_VM_INSTANCE_TYPE@:
+ @CIRRUS_VM_IMAGE_SELECTOR@: @CIRRUS_VM_IMAGE_NAME@
+
+env:
+ CI_REPOSITORY_URL: "@CI_REPOSITORY_URL@"
+ CI_COMMIT_REF_NAME: "@CI_COMMIT_REF_NAME@"
+ CI_COMMIT_SHA: "@CI_COMMIT_SHA@"
+ PATH: "@PATH@"
+ PKG_CONFIG_PATH: "@PKG_CONFIG_PATH@"
+ PYTHON: "@PYTHON@"
+ MAKE: "@MAKE@"
+
+build_task:
+ install_script:
+ - @INSTALL_COMMAND@ @PKGS@
+ - if test -n "@PYPI_PKGS@" ; then @PIP3@ install @PYPI_PKGS@ ; fi
+ clone_script:
+ - git clone --depth 100 "$CI_REPOSITORY_URL" .
+ - git fetch origin "$CI_COMMIT_REF_NAME"
+ - git reset --hard "$CI_COMMIT_SHA"
+ build_script:
+ - ci/build_script.sh
diff --git a/ci/cirrus/freebsd-12.vars b/ci/cirrus/freebsd-12.vars
new file mode 100644
index 000000000000..2044439ca3e8
--- /dev/null
+++ b/ci/cirrus/freebsd-12.vars
@@ -0,0 +1,14 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool variables freebsd-12 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+PACKAGING_COMMAND='pkg'
+CC='/usr/bin/clang'
+CCACHE='/usr/local/bin/ccache'
+MAKE='/usr/local/bin/gmake'
+NINJA='/usr/local/bin/ninja'
+PYTHON='/usr/local/bin/python3'
+PIP3='/usr/local/bin/pip-3.7'
+PKGS='autoconf automake bash-completion ca_root_nss ccache coreutils diffutils fusefs-libs git gmake gnutls go gsed libtool libxml2 ocaml ocaml-findlib perl5 pkgconf python3 qemu'
diff --git a/ci/cirrus/freebsd-current.vars b/ci/cirrus/freebsd-current.vars
new file mode 100644
index 000000000000..02be9eb0e92c
--- /dev/null
+++ b/ci/cirrus/freebsd-current.vars
@@ -0,0 +1,14 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool variables freebsd-current libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+PACKAGING_COMMAND='pkg'
+CC='/usr/bin/clang'
+CCACHE='/usr/local/bin/ccache'
+MAKE='/usr/local/bin/gmake'
+NINJA='/usr/local/bin/ninja'
+PYTHON='/usr/local/bin/python3'
+PIP3='/usr/local/bin/pip-3.7'
+PKGS='autoconf automake bash-completion ca_root_nss ccache coreutils diffutils fusefs-libs git gmake gnutls go gsed libtool libxml2 ocaml ocaml-findlib perl5 pkgconf python3 qemu'
diff --git a/ci/cirrus/macos-11.vars b/ci/cirrus/macos-11.vars
new file mode 100644
index 000000000000..8618d2ba97b8
--- /dev/null
+++ b/ci/cirrus/macos-11.vars
@@ -0,0 +1,14 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool variables macos-11 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+PACKAGING_COMMAND='brew'
+CC='/usr/bin/clang'
+CCACHE='/usr/local/bin/ccache'
+MAKE='/usr/local/bin/gmake'
+NINJA='/usr/local/bin/ninja'
+PYTHON='/usr/local/bin/python3'
+PIP3='/usr/local/bin/pip3'
+PKGS='autoconf automake bash-completion ccache coreutils diffutils git gnu-sed gnutls golang libtool libxml2 make ocaml ocaml-findlib perl pkg-config python3 qemu'
diff --git a/ci/cirrus/refresh b/ci/cirrus/refresh
new file mode 100755
index 000000000000..459cd80d0934
--- /dev/null
+++ b/ci/cirrus/refresh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+if test -z "$1"
+then
+ echo "syntax: $0 PATH-TO-LCITOOL"
+ exit 1
+fi
+
+LCITOOL=$1
+
+if ! test -x "$LCITOOL"
+then
+ echo "$LCITOOL is not executable"
+ exit 1
+fi
+
+HOSTS=$($LCITOOL hosts | grep -E 'freebsd|macos')
+
+for host in $HOSTS
+do
+ $LCITOOL variables "$host" libnbd >"$host.vars"
+done
diff --git a/ci/containers/README.rst b/ci/containers/README.rst
new file mode 100644
index 000000000000..530897e311f5
--- /dev/null
+++ b/ci/containers/README.rst
@@ -0,0 +1,14 @@
+CI job assets
+=============
+
+This directory contains assets used in the automated CI jobs, most
+notably the Dockerfiles used to build container images in which the
+CI jobs then run.
+
+The ``refresh`` script is used to re-create the Dockerfiles using the
+``lcitool`` command that is provided by repo
+https://gitlab.com/libvirt/libvirt-ci
+
+The containers are built during the CI process and cached in the GitLab
+container registry of the project doing the build. The cached containers
+can be deleted at any time and will be correctly rebuilt.
diff --git a/ci/containers/centos-7.Dockerfile b/ci/containers/centos-7.Dockerfile
new file mode 100644
index 000000000000..7690e509761f
--- /dev/null
+++ b/ci/containers/centos-7.Dockerfile
@@ -0,0 +1,47 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile centos-7 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/centos:7
+
+RUN yum update -y && \
+ echo 'skip_missing_names_on_install=0' >> /etc/yum.conf && \
+ yum install -y epel-release && \
+ yum install -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ fuse-devel \
+ gcc \
+ git \
+ glibc-common \
+ glibc-devel \
+ gnutls-devel \
+ golang \
+ libtool \
+ libxml2-devel \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconfig \
+ python36-devel \
+ qemu-img \
+ sed && \
+ yum autoremove -y && \
+ yum clean all -y && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc)
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/centos-8.Dockerfile b/ci/containers/centos-8.Dockerfile
new file mode 100644
index 000000000000..689b010d47fd
--- /dev/null
+++ b/ci/containers/centos-8.Dockerfile
@@ -0,0 +1,49 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile centos-8 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/centos:8
+
+RUN dnf update -y && \
+ dnf install 'dnf-command(config-manager)' -y && \
+ dnf config-manager --set-enabled -y powertools && \
+ dnf install -y centos-release-advanced-virtualization && \
+ dnf install -y epel-release && \
+ dnf install -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils-single \
+ diffutils \
+ fuse-devel \
+ gcc \
+ git \
+ glibc-devel \
+ glibc-langpack-en \
+ gnutls-devel \
+ golang \
+ libtool \
+ libxml2-devel \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconfig \
+ python3-devel \
+ qemu-img \
+ sed && \
+ dnf autoremove -y && \
+ dnf clean all -y && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc)
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/centos-stream.Dockerfile b/ci/containers/centos-stream.Dockerfile
new file mode 100644
index 000000000000..08e5372f8ee3
--- /dev/null
+++ b/ci/containers/centos-stream.Dockerfile
@@ -0,0 +1,51 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile centos-stream libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/centos:8
+
+RUN dnf install -y centos-release-stream && \
+ dnf install -y centos-stream-release && \
+ dnf update -y && \
+ dnf install 'dnf-command(config-manager)' -y && \
+ dnf config-manager --set-enabled -y powertools && \
+ dnf install -y centos-release-advanced-virtualization && \
+ dnf install -y epel-release && \
+ dnf install -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils-single \
+ diffutils \
+ fuse-devel \
+ gcc \
+ git \
+ glibc-devel \
+ glibc-langpack-en \
+ gnutls-devel \
+ golang \
+ libtool \
+ libxml2-devel \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconfig \
+ python3-devel \
+ qemu-img \
+ sed && \
+ dnf autoremove -y && \
+ dnf clean all -y && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc)
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/debian-10-cross-aarch64.Dockerfile b/ci/containers/debian-10-cross-aarch64.Dockerfile
new file mode 100644
index 000000000000..7f5458fc5f83
--- /dev/null
+++ b/ci/containers/debian-10-cross-aarch64.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross aarch64 debian-10 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:10-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture arm64 && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-aarch64-linux-gnu \
+ libc6-dev:arm64 \
+ libfuse-dev:arm64 \
+ libgnutls28-dev:arm64 \
+ libxml2-dev:arm64 && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/aarch64-linux-gnu-gcc'\n\
+ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/aarch64-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'aarch64'\n\
+cpu = 'aarch64'\n\
+endian = 'little'" > /usr/local/share/meson/cross/aarch64-linux-gnu
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "aarch64-linux-gnu"
+ENV CONFIGURE_OPTS "--host=aarch64-linux-gnu"
diff --git a/ci/containers/debian-10-cross-armv6l.Dockerfile b/ci/containers/debian-10-cross-armv6l.Dockerfile
new file mode 100644
index 000000000000..5d200639353c
--- /dev/null
+++ b/ci/containers/debian-10-cross-armv6l.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross armv6l debian-10 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:10-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture armel && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-arm-linux-gnueabi \
+ libc6-dev:armel \
+ libfuse-dev:armel \
+ libgnutls28-dev:armel \
+ libxml2-dev:armel && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/arm-linux-gnueabi-gcc'\n\
+ar = '/usr/bin/arm-linux-gnueabi-gcc-ar'\n\
+strip = '/usr/bin/arm-linux-gnueabi-strip'\n\
+pkgconfig = '/usr/bin/arm-linux-gnueabi-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'arm'\n\
+cpu = 'arm'\n\
+endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabi
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "arm-linux-gnueabi"
+ENV CONFIGURE_OPTS "--host=arm-linux-gnueabi"
diff --git a/ci/containers/debian-10-cross-armv7l.Dockerfile b/ci/containers/debian-10-cross-armv7l.Dockerfile
new file mode 100644
index 000000000000..d2e41c5fa121
--- /dev/null
+++ b/ci/containers/debian-10-cross-armv7l.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross armv7l debian-10 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:10-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture armhf && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-arm-linux-gnueabihf \
+ libc6-dev:armhf \
+ libfuse-dev:armhf \
+ libgnutls28-dev:armhf \
+ libxml2-dev:armhf && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/arm-linux-gnueabihf-gcc'\n\
+ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
+strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
+pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'arm'\n\
+cpu = 'armhf'\n\
+endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabihf
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "arm-linux-gnueabihf"
+ENV CONFIGURE_OPTS "--host=arm-linux-gnueabihf"
diff --git a/ci/containers/debian-10-cross-i686.Dockerfile b/ci/containers/debian-10-cross-i686.Dockerfile
new file mode 100644
index 000000000000..f6bf49f66105
--- /dev/null
+++ b/ci/containers/debian-10-cross-i686.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross i686 debian-10 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:10-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture i386 && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-i686-linux-gnu \
+ libc6-dev:i386 \
+ libfuse-dev:i386 \
+ libgnutls28-dev:i386 \
+ libxml2-dev:i386 && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/i686-linux-gnu-gcc'\n\
+ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/i686-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'x86'\n\
+cpu = 'i686'\n\
+endian = 'little'" > /usr/local/share/meson/cross/i686-linux-gnu
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "i686-linux-gnu"
+ENV CONFIGURE_OPTS "--host=i686-linux-gnu"
diff --git a/ci/containers/debian-10-cross-mips.Dockerfile b/ci/containers/debian-10-cross-mips.Dockerfile
new file mode 100644
index 000000000000..2a575965fa5d
--- /dev/null
+++ b/ci/containers/debian-10-cross-mips.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross mips debian-10 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:10-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips-linux-gnu-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips-linux-gnu-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture mips && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-mips-linux-gnu \
+ libc6-dev:mips \
+ libfuse-dev:mips \
+ libgnutls28-dev:mips \
+ libxml2-dev:mips && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/mips-linux-gnu-gcc'\n\
+ar = '/usr/bin/mips-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/mips-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/mips-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'mips'\n\
+cpu = 'mips'\n\
+endian = 'big'" > /usr/local/share/meson/cross/mips-linux-gnu
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "mips-linux-gnu"
+ENV CONFIGURE_OPTS "--host=mips-linux-gnu"
diff --git a/ci/containers/debian-10-cross-mips64el.Dockerfile b/ci/containers/debian-10-cross-mips64el.Dockerfile
new file mode 100644
index 000000000000..09c361f7a47c
--- /dev/null
+++ b/ci/containers/debian-10-cross-mips64el.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross mips64el debian-10 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:10-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture mips64el && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-mips64el-linux-gnuabi64 \
+ libc6-dev:mips64el \
+ libfuse-dev:mips64el \
+ libgnutls28-dev:mips64el \
+ libxml2-dev:mips64el && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\
+ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\
+strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\
+pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'mips64'\n\
+cpu = 'mips64el'\n\
+endian = 'little'" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "mips64el-linux-gnuabi64"
+ENV CONFIGURE_OPTS "--host=mips64el-linux-gnuabi64"
diff --git a/ci/containers/debian-10-cross-mipsel.Dockerfile b/ci/containers/debian-10-cross-mipsel.Dockerfile
new file mode 100644
index 000000000000..00825c8b6285
--- /dev/null
+++ b/ci/containers/debian-10-cross-mipsel.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross mipsel debian-10 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:10-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture mipsel && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-mipsel-linux-gnu \
+ libc6-dev:mipsel \
+ libfuse-dev:mipsel \
+ libgnutls28-dev:mipsel \
+ libxml2-dev:mipsel && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/mipsel-linux-gnu-gcc'\n\
+ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/mipsel-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'mips'\n\
+cpu = 'mipsel'\n\
+endian = 'little'" > /usr/local/share/meson/cross/mipsel-linux-gnu
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "mipsel-linux-gnu"
+ENV CONFIGURE_OPTS "--host=mipsel-linux-gnu"
diff --git a/ci/containers/debian-10-cross-ppc64le.Dockerfile b/ci/containers/debian-10-cross-ppc64le.Dockerfile
new file mode 100644
index 000000000000..4f4c835dd074
--- /dev/null
+++ b/ci/containers/debian-10-cross-ppc64le.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross ppc64le debian-10 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:10-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture ppc64el && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-powerpc64le-linux-gnu \
+ libc6-dev:ppc64el \
+ libfuse-dev:ppc64el \
+ libgnutls28-dev:ppc64el \
+ libxml2-dev:ppc64el && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\
+ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'ppc64'\n\
+cpu = 'powerpc64le'\n\
+endian = 'little'" > /usr/local/share/meson/cross/powerpc64le-linux-gnu
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "powerpc64le-linux-gnu"
+ENV CONFIGURE_OPTS "--host=powerpc64le-linux-gnu"
diff --git a/ci/containers/debian-10-cross-s390x.Dockerfile b/ci/containers/debian-10-cross-s390x.Dockerfile
new file mode 100644
index 000000000000..3753a67d8056
--- /dev/null
+++ b/ci/containers/debian-10-cross-s390x.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross s390x debian-10 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:10-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture s390x && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-s390x-linux-gnu \
+ libc6-dev:s390x \
+ libfuse-dev:s390x \
+ libgnutls28-dev:s390x \
+ libxml2-dev:s390x && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/s390x-linux-gnu-gcc'\n\
+ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/s390x-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 's390x'\n\
+cpu = 's390x'\n\
+endian = 'big'" > /usr/local/share/meson/cross/s390x-linux-gnu
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "s390x-linux-gnu"
+ENV CONFIGURE_OPTS "--host=s390x-linux-gnu"
diff --git a/ci/containers/debian-10.Dockerfile b/ci/containers/debian-10.Dockerfile
new file mode 100644
index 000000000000..4444271bb7d6
--- /dev/null
+++ b/ci/containers/debian-10.Dockerfile
@@ -0,0 +1,50 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile debian-10 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:10-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libc6-dev \
+ libfuse-dev \
+ libgnutls28-dev \
+ libtool-bin \
+ libxml2-dev \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc)
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/debian-sid-cross-aarch64.Dockerfile b/ci/containers/debian-sid-cross-aarch64.Dockerfile
new file mode 100644
index 000000000000..81aab437f18f
--- /dev/null
+++ b/ci/containers/debian-sid-cross-aarch64.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross aarch64 debian-sid libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:sid-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture arm64 && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-aarch64-linux-gnu \
+ libc6-dev:arm64 \
+ libfuse-dev:arm64 \
+ libgnutls28-dev:arm64 \
+ libxml2-dev:arm64 && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/aarch64-linux-gnu-gcc'\n\
+ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/aarch64-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'aarch64'\n\
+cpu = 'aarch64'\n\
+endian = 'little'" > /usr/local/share/meson/cross/aarch64-linux-gnu
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "aarch64-linux-gnu"
+ENV CONFIGURE_OPTS "--host=aarch64-linux-gnu"
diff --git a/ci/containers/debian-sid-cross-armv6l.Dockerfile b/ci/containers/debian-sid-cross-armv6l.Dockerfile
new file mode 100644
index 000000000000..b766138eb73d
--- /dev/null
+++ b/ci/containers/debian-sid-cross-armv6l.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross armv6l debian-sid libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:sid-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture armel && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-arm-linux-gnueabi \
+ libc6-dev:armel \
+ libfuse-dev:armel \
+ libgnutls28-dev:armel \
+ libxml2-dev:armel && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/arm-linux-gnueabi-gcc'\n\
+ar = '/usr/bin/arm-linux-gnueabi-gcc-ar'\n\
+strip = '/usr/bin/arm-linux-gnueabi-strip'\n\
+pkgconfig = '/usr/bin/arm-linux-gnueabi-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'arm'\n\
+cpu = 'arm'\n\
+endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabi
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "arm-linux-gnueabi"
+ENV CONFIGURE_OPTS "--host=arm-linux-gnueabi"
diff --git a/ci/containers/debian-sid-cross-armv7l.Dockerfile b/ci/containers/debian-sid-cross-armv7l.Dockerfile
new file mode 100644
index 000000000000..7151aa4f6194
--- /dev/null
+++ b/ci/containers/debian-sid-cross-armv7l.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross armv7l debian-sid libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:sid-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture armhf && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-arm-linux-gnueabihf \
+ libc6-dev:armhf \
+ libfuse-dev:armhf \
+ libgnutls28-dev:armhf \
+ libxml2-dev:armhf && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/arm-linux-gnueabihf-gcc'\n\
+ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
+strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
+pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'arm'\n\
+cpu = 'armhf'\n\
+endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabihf
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "arm-linux-gnueabihf"
+ENV CONFIGURE_OPTS "--host=arm-linux-gnueabihf"
diff --git a/ci/containers/debian-sid-cross-i686.Dockerfile b/ci/containers/debian-sid-cross-i686.Dockerfile
new file mode 100644
index 000000000000..c1ce5b67ff2a
--- /dev/null
+++ b/ci/containers/debian-sid-cross-i686.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross i686 debian-sid libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:sid-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture i386 && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-i686-linux-gnu \
+ libc6-dev:i386 \
+ libfuse-dev:i386 \
+ libgnutls28-dev:i386 \
+ libxml2-dev:i386 && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/i686-linux-gnu-gcc'\n\
+ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/i686-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'x86'\n\
+cpu = 'i686'\n\
+endian = 'little'" > /usr/local/share/meson/cross/i686-linux-gnu
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "i686-linux-gnu"
+ENV CONFIGURE_OPTS "--host=i686-linux-gnu"
diff --git a/ci/containers/debian-sid-cross-mips64el.Dockerfile b/ci/containers/debian-sid-cross-mips64el.Dockerfile
new file mode 100644
index 000000000000..9f994afa78c0
--- /dev/null
+++ b/ci/containers/debian-sid-cross-mips64el.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross mips64el debian-sid libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:sid-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture mips64el && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-mips64el-linux-gnuabi64 \
+ libc6-dev:mips64el \
+ libfuse-dev:mips64el \
+ libgnutls28-dev:mips64el \
+ libxml2-dev:mips64el && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\
+ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\
+strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\
+pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'mips64'\n\
+cpu = 'mips64el'\n\
+endian = 'little'" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "mips64el-linux-gnuabi64"
+ENV CONFIGURE_OPTS "--host=mips64el-linux-gnuabi64"
diff --git a/ci/containers/debian-sid-cross-mipsel.Dockerfile b/ci/containers/debian-sid-cross-mipsel.Dockerfile
new file mode 100644
index 000000000000..c3684ee11d40
--- /dev/null
+++ b/ci/containers/debian-sid-cross-mipsel.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross mipsel debian-sid libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:sid-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture mipsel && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-mipsel-linux-gnu \
+ libc6-dev:mipsel \
+ libfuse-dev:mipsel \
+ libgnutls28-dev:mipsel \
+ libxml2-dev:mipsel && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/mipsel-linux-gnu-gcc'\n\
+ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/mipsel-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'mips'\n\
+cpu = 'mipsel'\n\
+endian = 'little'" > /usr/local/share/meson/cross/mipsel-linux-gnu
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "mipsel-linux-gnu"
+ENV CONFIGURE_OPTS "--host=mipsel-linux-gnu"
diff --git a/ci/containers/debian-sid-cross-ppc64le.Dockerfile b/ci/containers/debian-sid-cross-ppc64le.Dockerfile
new file mode 100644
index 000000000000..216893c6e066
--- /dev/null
+++ b/ci/containers/debian-sid-cross-ppc64le.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross ppc64le debian-sid libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:sid-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture ppc64el && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-powerpc64le-linux-gnu \
+ libc6-dev:ppc64el \
+ libfuse-dev:ppc64el \
+ libgnutls28-dev:ppc64el \
+ libxml2-dev:ppc64el && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\
+ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 'ppc64'\n\
+cpu = 'powerpc64le'\n\
+endian = 'little'" > /usr/local/share/meson/cross/powerpc64le-linux-gnu
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "powerpc64le-linux-gnu"
+ENV CONFIGURE_OPTS "--host=powerpc64le-linux-gnu"
diff --git a/ci/containers/debian-sid-cross-s390x.Dockerfile b/ci/containers/debian-sid-cross-s390x.Dockerfile
new file mode 100644
index 000000000000..cc1612a6ed45
--- /dev/null
+++ b/ci/containers/debian-sid-cross-s390x.Dockerfile
@@ -0,0 +1,75 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross s390x debian-sid libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:sid-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libtool-bin \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-$(basename /usr/bin/gcc)
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ dpkg --add-architecture s390x && \
+ eatmydata apt-get update && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
+ eatmydata apt-get install --no-install-recommends -y \
+ gcc-s390x-linux-gnu \
+ libc6-dev:s390x \
+ libfuse-dev:s390x \
+ libgnutls28-dev:s390x \
+ libxml2-dev:s390x && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ mkdir -p /usr/local/share/meson/cross && \
+ echo "[binaries]\n\
+c = '/usr/bin/s390x-linux-gnu-gcc'\n\
+ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\
+strip = '/usr/bin/s390x-linux-gnu-strip'\n\
+pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\
+\n\
+[host_machine]\n\
+system = 'linux'\n\
+cpu_family = 's390x'\n\
+cpu = 's390x'\n\
+endian = 'big'" > /usr/local/share/meson/cross/s390x-linux-gnu
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "s390x-linux-gnu"
+ENV CONFIGURE_OPTS "--host=s390x-linux-gnu"
diff --git a/ci/containers/debian-sid.Dockerfile b/ci/containers/debian-sid.Dockerfile
new file mode 100644
index 000000000000..dbb2847492d9
--- /dev/null
+++ b/ci/containers/debian-sid.Dockerfile
@@ -0,0 +1,50 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile debian-sid libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/debian:sid-slim
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libc6-dev \
+ libfuse-dev \
+ libgnutls28-dev \
+ libtool-bin \
+ libxml2-dev \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc)
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/fedora-32.Dockerfile b/ci/containers/fedora-32.Dockerfile
new file mode 100644
index 000000000000..f1769e784f8b
--- /dev/null
+++ b/ci/containers/fedora-32.Dockerfile
@@ -0,0 +1,55 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile fedora-32 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM registry.fedoraproject.org/fedora:32
+
+RUN dnf install -y nosync && \
+ echo -e '#!/bin/sh\n\
+if test -d /usr/lib64\n\
+then\n\
+ export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
+else\n\
+ export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
+fi\n\
+exec "$@"' > /usr/bin/nosync && \
+ chmod +x /usr/bin/nosync && \
+ nosync dnf update -y && \
+ nosync dnf install -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ fuse-devel \
+ gcc \
+ git \
+ glibc-devel \
+ glibc-langpack-en \
+ gnutls-devel \
+ golang \
+ libtool \
+ libxml2-devel \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconfig \
+ python3-devel \
+ qemu-img \
+ sed && \
+ nosync dnf autoremove -y && \
+ nosync dnf clean all -y && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc)
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/fedora-33.Dockerfile b/ci/containers/fedora-33.Dockerfile
new file mode 100644
index 000000000000..dbacd41ef99d
--- /dev/null
+++ b/ci/containers/fedora-33.Dockerfile
@@ -0,0 +1,55 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile fedora-33 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM registry.fedoraproject.org/fedora:33
+
+RUN dnf install -y nosync && \
+ echo -e '#!/bin/sh\n\
+if test -d /usr/lib64\n\
+then\n\
+ export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
+else\n\
+ export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
+fi\n\
+exec "$@"' > /usr/bin/nosync && \
+ chmod +x /usr/bin/nosync && \
+ nosync dnf update -y && \
+ nosync dnf install -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ fuse-devel \
+ gcc \
+ git \
+ glibc-devel \
+ glibc-langpack-en \
+ gnutls-devel \
+ golang \
+ libtool \
+ libxml2-devel \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconfig \
+ python3-devel \
+ qemu-img \
+ sed && \
+ nosync dnf autoremove -y && \
+ nosync dnf clean all -y && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc)
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile b/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile
new file mode 100644
index 000000000000..c8f952825843
--- /dev/null
+++ b/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile
@@ -0,0 +1,60 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross mingw32 fedora-rawhide libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM registry.fedoraproject.org/fedora:rawhide
+
+RUN dnf update -y --nogpgcheck fedora-gpg-keys && \
+ dnf install -y nosync && \
+ echo -e '#!/bin/sh\n\
+if test -d /usr/lib64\n\
+then\n\
+ export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
+else\n\
+ export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
+fi\n\
+exec "$@"' > /usr/bin/nosync && \
+ chmod +x /usr/bin/nosync && \
+ nosync dnf update -y && \
+ nosync dnf install -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ coreutils \
+ diffutils \
+ git \
+ glibc-langpack-en \
+ golang \
+ libtool \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ python3-devel \
+ qemu-img \
+ sed && \
+ nosync dnf autoremove -y && \
+ nosync dnf clean all -y && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-$(basename /usr/bin/gcc)
+
+RUN nosync dnf install -y \
+ mingw32-gcc \
+ mingw32-gnutls \
+ mingw32-headers \
+ mingw32-libxml2 \
+ mingw32-pkg-config && \
+ nosync dnf clean all -y
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "i686-w64-mingw32"
+ENV CONFIGURE_OPTS "--host=i686-w64-mingw32"
diff --git a/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile b/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile
new file mode 100644
index 000000000000..b31c72cb9a77
--- /dev/null
+++ b/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile
@@ -0,0 +1,60 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile --cross mingw64 fedora-rawhide libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM registry.fedoraproject.org/fedora:rawhide
+
+RUN dnf update -y --nogpgcheck fedora-gpg-keys && \
+ dnf install -y nosync && \
+ echo -e '#!/bin/sh\n\
+if test -d /usr/lib64\n\
+then\n\
+ export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
+else\n\
+ export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
+fi\n\
+exec "$@"' > /usr/bin/nosync && \
+ chmod +x /usr/bin/nosync && \
+ nosync dnf update -y && \
+ nosync dnf install -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ coreutils \
+ diffutils \
+ git \
+ glibc-langpack-en \
+ golang \
+ libtool \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ python3-devel \
+ qemu-img \
+ sed && \
+ nosync dnf autoremove -y && \
+ nosync dnf clean all -y && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-$(basename /usr/bin/gcc)
+
+RUN nosync dnf install -y \
+ mingw64-gcc \
+ mingw64-gnutls \
+ mingw64-headers \
+ mingw64-libxml2 \
+ mingw64-pkg-config && \
+ nosync dnf clean all -y
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
+
+ENV ABI "x86_64-w64-mingw32"
+ENV CONFIGURE_OPTS "--host=x86_64-w64-mingw32"
diff --git a/ci/containers/fedora-rawhide.Dockerfile b/ci/containers/fedora-rawhide.Dockerfile
new file mode 100644
index 000000000000..8d1f255fc319
--- /dev/null
+++ b/ci/containers/fedora-rawhide.Dockerfile
@@ -0,0 +1,56 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile fedora-rawhide libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM registry.fedoraproject.org/fedora:rawhide
+
+RUN dnf update -y --nogpgcheck fedora-gpg-keys && \
+ dnf install -y nosync && \
+ echo -e '#!/bin/sh\n\
+if test -d /usr/lib64\n\
+then\n\
+ export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
+else\n\
+ export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
+fi\n\
+exec "$@"' > /usr/bin/nosync && \
+ chmod +x /usr/bin/nosync && \
+ nosync dnf update -y && \
+ nosync dnf install -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ fuse-devel \
+ gcc \
+ git \
+ glibc-devel \
+ glibc-langpack-en \
+ gnutls-devel \
+ golang \
+ libtool \
+ libxml2-devel \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconfig \
+ python3-devel \
+ qemu-img \
+ sed && \
+ nosync dnf autoremove -y && \
+ nosync dnf clean all -y && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc)
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/opensuse-152.Dockerfile b/ci/containers/opensuse-152.Dockerfile
new file mode 100644
index 000000000000..e051a5c92f11
--- /dev/null
+++ b/ci/containers/opensuse-152.Dockerfile
@@ -0,0 +1,44 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile opensuse-152 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM registry.opensuse.org/opensuse/leap:15.2
+
+RUN zypper update -y && \
+ zypper install -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ fuse-devel \
+ gcc \
+ git \
+ glibc-devel \
+ glibc-locale \
+ go \
+ libgnutls-devel \
+ libtool \
+ libxml2-devel \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconfig \
+ python3-devel \
+ qemu-tools \
+ sed && \
+ zypper clean --all && \
+ rpm -qa | sort > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc)
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/refresh b/ci/containers/refresh
new file mode 100755
index 000000000000..327f642ed2ec
--- /dev/null
+++ b/ci/containers/refresh
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+if test -z "$1"
+then
+ echo "syntax: $0 PATH-TO-LCITOOL"
+ exit 1
+fi
+
+LCITOOL=$1
+
+if ! test -x "$LCITOOL"
+then
+ echo "$LCITOOL is not executable"
+ exit 1
+fi
+
+HOSTS=$($LCITOOL hosts | grep -Ev 'freebsd|macos')
+
+for host in $HOSTS
+do
+ case "$host" in
+ fedora-rawhide)
+ for cross in mingw32 mingw64
+ do
+ $LCITOOL dockerfile $host libnbd --cross $cross > $host-cross-$cross.Dockerfile
+ done
+ ;;
+ debian-*)
+ for cross in aarch64 armv6l armv7l i686 mips mips64el mipsel ppc64le s390x
+ do
+ if test "$host-cross-$cross" = "debian-9-cross-i686" ||
+ test "$host-cross-$cross" = "debian-sid-cross-mips"
+ then
+ continue
+ fi
+ $LCITOOL dockerfile $host libnbd --cross $cross > $host-cross-$cross.Dockerfile
+ done
+ ;;
+ esac
+
+ $LCITOOL dockerfile $host libnbd > $host.Dockerfile
+done
diff --git a/ci/containers/ubuntu-1804.Dockerfile b/ci/containers/ubuntu-1804.Dockerfile
new file mode 100644
index 000000000000..3df4fbe6b5df
--- /dev/null
+++ b/ci/containers/ubuntu-1804.Dockerfile
@@ -0,0 +1,50 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile ubuntu-1804 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/ubuntu:18.04
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libc6-dev \
+ libfuse-dev \
+ libgnutls28-dev \
+ libtool-bin \
+ libxml2-dev \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc)
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/ubuntu-2004.Dockerfile b/ci/containers/ubuntu-2004.Dockerfile
new file mode 100644
index 000000000000..6361b945c5b6
--- /dev/null
+++ b/ci/containers/ubuntu-2004.Dockerfile
@@ -0,0 +1,50 @@
+# THIS FILE WAS AUTO-GENERATED
+#
+# $ lcitool dockerfile ubuntu-2004 libnbd
+#
+# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621...
+
+FROM docker.io/library/ubuntu:20.04
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get install -y eatmydata && \
+ eatmydata apt-get dist-upgrade -y && \
+ eatmydata apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ clang \
+ coreutils \
+ diffutils \
+ gcc \
+ git \
+ golang \
+ libc6-dev \
+ libfuse-dev \
+ libgnutls28-dev \
+ libtool-bin \
+ libxml2-dev \
+ locales \
+ make \
+ ocaml \
+ ocaml-findlib \
+ perl \
+ pkgconf \
+ python3-dev \
+ qemu-utils \
+ sed && \
+ eatmydata apt-get autoremove -y && \
+ eatmydata apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
+ mkdir -p /usr/libexec/ccache-wrappers && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
+ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc)
+
+ENV LANG "en_US.UTF-8"
+ENV MAKE "/usr/bin/make"
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
--
2.31.1
3 years, 7 months
[libnbd] GSoC21: IO_uring optimization questions
by Abhay Raj Singh
Greetings everyone! I am Abhay a 3rd-year student at the
National Institute of Technology, Hamirpur, Bharat(India).
I am interested in utilizing the recently introduced feature
io_uring of the Linux kernel to speed up libnbd async I/O.
I have been in contact with Richard regarding this and
thanks to his guidance I have some ideas and approaches.
The rough approaches I can think of are:
1. Replacing the poll mechanism(nbd_poll) with the io_uring one.
2. A socket wrapper using io_uring
The latter requires less work as far as I can see and is easily
reusable. Though I have only recently read about the socket
wrapper method so can't tell for sure. I will try making a
wrapper to check feasibility.
A general suggestion for io_uring is to not use it, directly:)
But use a convenient wrapper liburing instead.
The doubts I have regarding this are:
1.
Should I create a new API or replace the old aio API.
On one end I see no problem in doing so but I am
not familiar with uses
2.
For testing wouldn't libnbd limited by nbdkit if try
to test on my pc and would be only marginally better
unless nbdkit is ported too.
As the task is not too difficult once I get my head around
the code base, I might be able to port nbdkit too(incase of socket wrapper)
and write some tests in the 180-200hr period of GSoC.
Thanks!
--
Humble Regards,
Abhay
(rathod-sahaab)
3 years, 7 months
[libnbd PATCH 0/2] Miscellaneous tiny fixes
by Martin Kletzander
Just a two things I found out when trying to set up the CI.
Martin Kletzander (2):
Fix reporting of NBD URI support by configure
Add an extra info for ocamlfind dependency
configure.ac | 2 +-
generator/Makefile.am | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
--
2.31.1
3 years, 7 months
Re: [Libguestfs] question about guestfs_add_drive_opts_blocksize
by Richard W.M. Jones
On Mon, Mar 29, 2021 at 10:44:55AM -0600, Stefan Fiala wrote:
> gcc create_disk.c -L lib/.libs -lguestfs -o create_disk
> builds but when run:-
> libguestfs: error: add_drive: unknown option 12 (this can happen if a program is compiled against a newer version of libguestfs, then dynamically linked to an older version)
>
> Doesn't that come from using /usr/lib/x86_64-linux-gnu/libguestfs.so [an old (installed) version)?
Did you use the ./run script when running the program?
Rich.
> There is only a static library in my build tree:- lib/.libs/libguestfs.a
> [I'm not much good at messing with shared/static libraries]
> Stefan
>
> > On 03/26/2021 10:19 AM Richard W.M. Jones <rjones(a)redhat.com> wrote:
> >
> >
> > On Fri, Mar 26, 2021 at 09:57:47AM -0600, Stefan Fiala wrote:
> > > I want to do some work with 4K blocksize devices (real and virtual). I found
> > > examples/create_disk.c
> > > then found it didn't contain the blocksize option. I have Ubuntu 20.04
> > > guestfish version 1.40.2. I investigated and found a recent checkin 1.45.2 that
> > > adds this option.
> >
> > Do you mean this one?
> >
> > commit 94843f155aa72d75d693a96f7b11ceb7558837f0
> > Author: Nikolay Ivanets
> > Date: Tue Feb 11 16:12:24 2020 +0200
> >
> > lib: add support for disks with 4096 bytes sector size
> >
> > > I then rebuilt libguestfs from scratch using tag V1.45.2.
> > > I noted the warning not to "make install" it and stopped.
> > >
> > > I don't see how to build create_disk.c against a libguesfs.a version 1.45.2.
> > > The faq/etc talk about running a self-compiled program using ./run but not how
> > > to make such a program with a different version.
> >
> > You can just do something like:
> >
> > gcc create_disk.c -L lib/.libs -lguestfs -o create_disk
> > ./run ./create_disk
> >
> > Rich.
> >
> > --
> > Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
> > Read my programming and virtualization blog: http://rwmj.wordpress.com
> > virt-top is 'top' for virtual machines. Tiny program with many
> > powerful monitoring features, net stats, disk stats, logging, etc.
> > http://people.redhat.com/~rjones/virt-top
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html
3 years, 7 months
guestfsd: error: mount_stub: /dev/sda2: No such file or directory
by Lukas Tribus
Dear list,
I'm trying to convert a Xen image to KVM, and it fails with (full
verbose/debug trace below):
guestfsd: error: mount_stub: /dev/sda2: No such file or directory
guestfsd: => mount (0x1) took 0.02 secs
libguestfs: trace: v2v: mount = -1 (error)
virt-v2v: error: mount: mount_stub: /dev/sda2: No such file or directory
>From guestfish I can see that my fstab file may be a little uncommon,
/dev/xvda1 is swap and /dev/xvda2 is the ext3 root fs:
/dev/xvda1 none swap sw 0 0
/dev/xvda2 / ext3 noatime,nodiratime,errors=remount-ro 0 1
Could this be the reason virt-v2v gets confused and what would be the
best way to fix this so that I can boot those old Xen guests in KVM?
The host is virt-v2v on Ubuntu 20.04, the guest I'm looking at is Ubuntu 18.04.
Any input would be much appreciated!
Thanks,
Lukas
# export LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1
# virt-v2v -i disk disk.img -o local -os . --bridge br0 -v -x
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: create: flags = 0, handle = 0x5653f317ff80, program = virt-v2v
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: create: flags = 0, handle = 0x5653f3180720, program = virt-v2v
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
virt-v2v: libguestfs 1.40.2 (x86_64)
libvirt version: 6.0.0
[ 0.0] Opening the source -i disk disk.img
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: create: flags = 0, handle = 0x5653f3181310, program = virt-v2v
libguestfs: trace: set_trace true
libguestfs: trace: set_trace = 0
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: trace: disk_format "disk.img"
libguestfs: command: run: qemu-img --help | grep -sqE -- '\binfo\b.*-U\b'
libguestfs: command: run: qemu-img
libguestfs: command: run: \ info
libguestfs: command: run: \ -U
libguestfs: command: run: \ --output json
libguestfs: command: run: \ ./disk.img
libguestfs: parse_json: qemu-img info JSON output:\n{\n
"virtual-size": 22548578304,\n "filename": "./disk.img",\n
"format": "raw",\n "actual-size": 12395384832,\n "dirty-flag":
false\n}\n\n
libguestfs: trace: disk_format = "raw"
source name: disk
hypervisor type: unknown
VM genid:
memory: 2147483648 (bytes)
nr vCPUs: 1
CPU vendor:
CPU model:
CPU topology:
CPU features: acpi,apic,pae
firmware: unknown
display: window
video:
sound:
disks:
/storage/vms/kvm/disk.img (raw)
removable media:
NICs:
Network "default"
check_host_free_space: overlay_dir=/var/tmp free_space=7721246720
[ 0.0] Creating an overlay to protect the source from being modified
qemu-img 'create' '-q' '-f' 'qcow2' '-b' '/storage/vms/kvm/disk.img'
'-o' 'compat=1.1,backing_fmt=raw' '/var/tmp/v2vovl72b311.qcow2'
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: create: flags = 0, handle = 0x5653f3181940, program = virt-v2v
libguestfs: trace: set_trace true
libguestfs: trace: set_trace = 0
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: trace: disk_has_backing_file "/var/tmp/v2vovl72b311.qcow2"
libguestfs: command: run: qemu-img --help | grep -sqE -- '\binfo\b.*-U\b'
libguestfs: command: run: qemu-img
libguestfs: command: run: \ info
libguestfs: command: run: \ -U
libguestfs: command: run: \ --output json
libguestfs: command: run: \ /var/tmp/v2vovl72b311.qcow2
libguestfs: parse_json: qemu-img info JSON output:\n{\n
"backing-filename-format": "raw",\n "virtual-size": 22548578304,\n
"filename": "/var/tmp/v2vovl72b311.qcow2",\n "cluster-size":
65536,\n "format": "qcow2",\n "actual-size": 200704,\n
"format-specific": {\n "type": "qcow2",\n "data": {\n
"compat": "1.1",\n "lazy-refcounts": false,\n
"refcount-bits": 16,\n "corrupt": false\n }\n
},\n "full-backing-filename": "/storage/vms/kvm/disk.img",\n
"backing-filename": "/storage/vms/kvm/disk.img",\n "dirty-flag":
false\n}\n\n
libguestfs: trace: disk_has_backing_file = 1
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: create: flags = 0, handle = 0x5653f3182420, program = virt-v2v
libguestfs: trace: set_trace true
libguestfs: trace: set_trace = 0
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: trace: disk_virtual_size "/var/tmp/v2vovl72b311.qcow2"
libguestfs: command: run: qemu-img --help | grep -sqE -- '\binfo\b.*-U\b'
libguestfs: command: run: qemu-img
libguestfs: command: run: \ info
libguestfs: command: run: \ -U
libguestfs: command: run: \ --output json
libguestfs: command: run: \ /var/tmp/v2vovl72b311.qcow2
libguestfs: parse_json: qemu-img info JSON output:\n{\n
"backing-filename-format": "raw",\n "virtual-size": 22548578304,\n
"filename": "/var/tmp/v2vovl72b311.qcow2",\n "cluster-size":
65536,\n "format": "qcow2",\n "actual-size": 200704,\n
"format-specific": {\n "type": "qcow2",\n "data": {\n
"compat": "1.1",\n "lazy-refcounts": false,\n
"refcount-bits": 16,\n "corrupt": false\n }\n
},\n "full-backing-filename": "/storage/vms/kvm/disk.img",\n
"backing-filename": "/storage/vms/kvm/disk.img",\n "dirty-flag":
false\n}\n\n
libguestfs: trace: disk_virtual_size = 22548578304
[ 0.3] Opening the overlay
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: create: flags = 0, handle = 0x5653f3182b80, program = virt-v2v
libguestfs: trace: set_trace true
libguestfs: trace: set_trace = 0
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: trace: set_identifier "v2v"
libguestfs: trace: v2v: set_identifier = 0
libguestfs: trace: v2v: get_memsize
libguestfs: trace: v2v: get_memsize = 768
libguestfs: trace: v2v: set_memsize 2150
libguestfs: trace: v2v: set_memsize = 0
libguestfs: trace: v2v: set_network true
libguestfs: trace: v2v: set_network = 0
libguestfs: trace: v2v: add_drive "/var/tmp/v2vovl72b311.qcow2"
"format:qcow2" "cachemode:unsafe" "discard:besteffort"
"copyonread:true"
libguestfs: trace: v2v: add_drive = 0
libguestfs: trace: v2v: launch
libguestfs: trace: v2v: max_disks
libguestfs: trace: v2v: max_disks = 255
libguestfs: trace: v2v: get_tmpdir
libguestfs: trace: v2v: get_tmpdir = "/tmp"
libguestfs: trace: v2v: version
libguestfs: trace: v2v: version = <struct guestfs_version = major: 1,
minor: 40, release: 2, extra: , >
libguestfs: trace: v2v: get_backend
libguestfs: trace: v2v: get_backend = "direct"
libguestfs: launch: program=virt-v2v
libguestfs: launch: identifier=v2v
libguestfs: launch: version=1.40.2
libguestfs: launch: backend registered: unix
libguestfs: launch: backend registered: uml
libguestfs: launch: backend registered: libvirt
libguestfs: launch: backend registered: direct
libguestfs: launch: backend=direct
libguestfs: launch: tmpdir=/tmp/libguestfsOKTdUh
libguestfs: launch: umask=0022
libguestfs: launch: euid=0
libguestfs: trace: v2v: get_cachedir
libguestfs: trace: v2v: get_cachedir = "/var/tmp"
libguestfs: begin building supermin appliance
libguestfs: run supermin
libguestfs: command: run: /usr/bin/supermin
libguestfs: command: run: \ --build
libguestfs: command: run: \ --verbose
libguestfs: command: run: \ --if-newer
libguestfs: command: run: \ --lock /var/tmp/.guestfs-0/lock
libguestfs: command: run: \ --copy-kernel
libguestfs: command: run: \ -f ext2
libguestfs: command: run: \ --host-cpu x86_64
libguestfs: command: run: \ /usr/lib/x86_64-linux-gnu/guestfs/supermin.d
libguestfs: command: run: \ -o /var/tmp/.guestfs-0/appliance.d
supermin: version: 5.1.20
supermin: package handler: debian/dpkg
supermin: acquiring lock on /var/tmp/.guestfs-0/lock
supermin: if-newer: output does not need rebuilding
libguestfs: finished building supermin appliance
libguestfs: begin testing qemu features
libguestfs: trace: v2v: get_cachedir
libguestfs: trace: v2v: get_cachedir = "/var/tmp"
libguestfs: checking for previously cached test results of
/usr/bin/qemu-system-x86_64, in /var/tmp/.guestfs-0
libguestfs: loading previously cached test results
libguestfs: qemu version: 4.2
libguestfs: qemu mandatory locking: yes
libguestfs: qemu KVM: enabled
libguestfs: trace: v2v: get_backend_setting "force_tcg"
libguestfs: trace: v2v: get_backend_setting = NULL (error)
libguestfs: trace: v2v: get_sockdir
libguestfs: trace: v2v: get_sockdir = "/tmp"
libguestfs: finished testing qemu features
libguestfs: trace: v2v: get_backend_setting "gdb"
libguestfs: trace: v2v: get_backend_setting = NULL (error)
/usr/bin/qemu-system-x86_64 \
-global virtio-blk-pci.scsi=off \
-no-user-config \
-enable-fips \
-nodefaults \
-display none \
-machine accel=kvm:tcg \
-cpu host \
-m 2150 \
-no-reboot \
-rtc driftfix=slew \
-no-hpet \
-global kvm-pit.lost_tick_policy=discard \
-kernel /var/tmp/.guestfs-0/appliance.d/kernel \
-initrd /var/tmp/.guestfs-0/appliance.d/initrd \
-object rng-random,filename=/dev/urandom,id=rng0 \
-device virtio-rng-pci,rng=rng0 \
-device virtio-scsi-pci,id=scsi \
-drive file=/var/tmp/v2vovl72b311.qcow2,cache=unsafe,format=qcow2,copy-on-read=on,discard=unmap,id=hd0,if=none
\
-device scsi-hd,drive=hd0 \
-drive file=/var/tmp/.guestfs-0/appliance.d/root,snapshot=on,id=appliance,cache=unsafe,if=none,format=raw
\
-device scsi-hd,drive=appliance \
-device virtio-serial-pci \
-serial stdio \
-device sga \
-chardev socket,path=/tmp/libguestfs87owGj/guestfsd.sock,id=channel0 \
-device virtserialport,chardev=channel0,name=org.libguestfs.channel.0 \
-netdev user,id=usernet,net=169.254.0.0/16 \
-device virtio-net-pci,netdev=usernet \
-append "panic=1 console=ttyS0 edd=off udevtimeout=6000
udev.event-timeout=6000 no_timer_check printk.time=1
cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable
8250.nr_uarts=1 root=/dev/sdb selinux=0 guestfs_verbose=1
guestfs_network=1 TERM=xterm guestfs_identifier=v2v"
libguestfs: responding to serial console Device Status Report
\x1b[1;256r\x1b[256;256H\x1b[6n
Google, Inc.
Serial Graphics Adapter 12/12/19
SGABIOS $Id$ (build@debian) Thu Dec 12 18:22:50 UTC 2019
Term: 80x24
4 0
SeaBIOS (version 1.13.0-1ubuntu1.1)
iPXE (http://ipxe.org) 00:05.0 C100 PCI2.10 PnP PMM+8658C760+864CC760 C100
Booting from ROM...
\x1b[2J[ 0.000000] Linux version 5.4.0-65-generic
(buildd@lcy01-amd64-018) (gcc version 9.3.0 (Ubuntu
9.3.0-17ubuntu1~20.04)) #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021
(Ubuntu 5.4.0-65.73-generic 5.4.78)
[ 0.000000] Command line: panic=1 console=ttyS0 edd=off
udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1
cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable
8250.nr_uarts=1 root=/dev/sdb selinux=0 guestfs_verbose=1
guestfs_network=1 TERM=xterm guestfs_identifier=v2v
[ 0.000000] KERNEL supported cpus:
[ 0.000000] Intel GenuineIntel
[ 0.000000] AMD AuthenticAMD
[ 0.000000] Hygon HygonGenuine
[ 0.000000] Centaur CentaurHauls
[ 0.000000] zhaoxin Shanghai
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating
point registers'
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
[ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is
832 bytes, using 'standard' format.
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009f7ff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009f800-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000865dcfff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000865dd000-0x00000000865fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
[ 0.000000] NX (Execute Disable) protection: active
[ 0.000000] SMBIOS 2.8 present.
[ 0.000000] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.13.0-1ubuntu1.1 04/01/2014
[ 0.000000] Hypervisor detected: KVM
[ 0.000000] kvm-clock: Using msrs 4b564d01 and 4b564d00
[ 0.000000] kvm-clock: cpu 0, msr 37601001, primary cpu clock
[ 0.000000] kvm-clock: using sched offset of 73402710 cycles
[ 0.000006] clocksource: kvm-clock: mask: 0xffffffffffffffff
max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[ 0.000011] tsc: Detected 2900.018 MHz processor
[ 0.000745] last_pfn = 0x865dd max_arch_pfn = 0x400000000
[ 0.000804] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WP UC- WT
[ 0.008738] found SMP MP-table at [mem 0x000f5c80-0x000f5c8f]
[ 0.008860] check: Scanning 1 areas for low memory corruption
[ 0.009097] RAMDISK: [mem 0x86537000-0x865cffff]
[ 0.009125] ACPI: Early table checksum verification disabled
[ 0.009139] ACPI: RSDP 0x00000000000F5AB0 000014 (v00 BOCHS )
[ 0.009142] ACPI: RSDT 0x00000000865E1510 00002C (v01 BOCHS
BXPCRSDT 00000001 BXPC 00000001)
[ 0.009153] ACPI: FACP 0x00000000865E1424 000074 (v01 BOCHS
BXPCFACP 00000001 BXPC 00000001)
[ 0.009161] ACPI: DSDT 0x00000000865E0040 0013E4 (v01 BOCHS
BXPCDSDT 00000001 BXPC 00000001)
[ 0.009166] ACPI: FACS 0x00000000865E0000 000040
[ 0.009169] ACPI: APIC 0x00000000865E1498 000078 (v01 BOCHS
BXPCAPIC 00000001 BXPC 00000001)
[ 0.009488] No NUMA configuration found
[ 0.009490] Faking a node at [mem 0x0000000000000000-0x00000000865dcfff]
[ 0.009502] NODE_DATA(0) allocated [mem 0x8650c000-0x86536fff]
[ 0.009720] Zone ranges:
[ 0.009721] DMA [mem 0x0000000000001000-0x0000000000ffffff]
[ 0.009723] DMA32 [mem 0x0000000001000000-0x00000000865dcfff]
[ 0.009723] Normal empty
[ 0.009724] Device empty
[ 0.009725] Movable zone start for each node
[ 0.009727] Early memory node ranges
[ 0.009728] node 0: [mem 0x0000000000001000-0x000000000009efff]
[ 0.009729] node 0: [mem 0x0000000000100000-0x00000000865dcfff]
[ 0.010125] Zeroed struct page in unavailable ranges: 6789 pages
[ 0.010127] Initmem setup node 0 [mem 0x0000000000001000-0x00000000865dcfff]
[ 0.018421] ACPI: PM-Timer IO Port: 0x608
[ 0.018441] ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1])
[ 0.018488] IOAPIC[0]: apic_id 0, version 17, address 0xfec00000, GSI 0-23
[ 0.018491] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.018493] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level)
[ 0.018494] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.018497] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level)
[ 0.018498] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level)
[ 0.018504] Using ACPI (MADT) for SMP configuration information
[ 0.018510] TSC deadline timer available
[ 0.018516] smpboot: Allowing 1 CPUs, 0 hotplug CPUs
[ 0.018535] KVM setup pv sched yield
[ 0.018547] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[ 0.018548] PM: Registered nosave memory: [mem 0x0009f000-0x0009ffff]
[ 0.018548] PM: Registered nosave memory: [mem 0x000a0000-0x000effff]
[ 0.018549] PM: Registered nosave memory: [mem 0x000f0000-0x000fffff]
[ 0.018550] [mem 0x86600000-0xfeffbfff] available for PCI devices
[ 0.018551] Booting paravirtualized kernel on KVM
[ 0.018555] clocksource: refined-jiffies: mask: 0xffffffff
max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns
[ 0.018560] setup_percpu: NR_CPUS:8192 nr_cpumask_bits:1
nr_cpu_ids:1 nr_node_ids:1
[ 0.018882] percpu: Embedded 55 pages/cpu s188416 r8192 d28672 u2097152
[ 0.018910] KVM setup async PF for cpu 0
[ 0.018915] kvm-stealtime: cpu 0, msr 8402d040
[ 0.018924] Built 1 zonelists, mobility grouping on. Total pages: 541646
[ 0.018924] Policy zone: DMA32
[ 0.018926] Kernel command line: panic=1 console=ttyS0 edd=off
udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1
cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable
8250.nr_uarts=1 root=/dev/sdb selinux=0 guestfs_verbose=1
guestfs_network=1 TERM=xterm guestfs_identifier=v2v
[ 0.019580] Dentry cache hash table entries: 524288 (order: 10,
4194304 bytes, linear)
[ 0.019833] Inode-cache hash table entries: 262144 (order: 9,
2097152 bytes, linear)
[ 0.019882] mem auto-init: stack:off, heap alloc:on, heap free:off
[ 0.024636] Memory: 2126148K/2201068K available (14339K kernel
code, 2399K rwdata, 4960K rodata, 2724K init, 4980K bss, 74920K
reserved, 0K cma-reserved)
[ 0.024653] random: get_random_u64 called from
kmem_cache_open+0x2d/0x410 with crng_init=0
[ 0.025005] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.025027] Kernel/User page tables isolation: enabled
[ 0.025046] ftrace: allocating 44555 entries in 175 pages
[ 0.041316] rcu: Hierarchical RCU implementation.
[ 0.041318] rcu: \tRCU restricting CPUs from NR_CPUS=8192 to nr_cpu_ids=1.
[ 0.041319] \tTasks RCU enabled.
[ 0.041320] rcu: RCU calculated value of scheduler-enlistment delay
is 25 jiffies.
[ 0.041320] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[ 0.043592] NR_IRQS: 524544, nr_irqs: 256, preallocated irqs: 16
[ 0.043756] random: crng done (trusting CPU's manufacturer)
[ 0.043865] Console: colour *CGA 80x25
[ 0.127748] printk: console [ttyS0] enabled
[ 0.128333] ACPI: Core revision 20190816
[ 0.128917] APIC: Switch to symmetric I/O mode setup
[ 0.129871] x2apic enabled
[ 0.130556] Switched APIC routing to physical x2apic.
[ 0.131228] KVM setup pv IPIs
[ 0.132805] clocksource: tsc-early: mask: 0xffffffffffffffff
max_cycles: 0x29cd53f88c2, max_idle_ns: 440795234519 ns
[ 0.134170] Calibrating delay loop (skipped) preset value.. 5800.03
BogoMIPS (lpj=11600072)
[ 0.135230] pid_max: default: 32768 minimum: 301
[ 0.135850] LSM: Security Framework initializing
[ 0.136480] Yama: becoming mindful.
[ 0.136925] AppArmor: AppArmor initialized
[ 0.137488] Mount-cache hash table entries: 8192 (order: 4, 65536
bytes, linear)
[ 0.138167] Mountpoint-cache hash table entries: 8192 (order: 4,
65536 bytes, linear)
[ 0.138167] *** VALIDATE tmpfs ***
[ 0.138167] *** VALIDATE proc ***
[ 0.138167] Disabling memory control group subsystem
[ 0.138167] *** VALIDATE cgroup1 ***
[ 0.138167] *** VALIDATE cgroup2 ***
[ 0.138167] x86/cpu: User Mode Instruction Prevention (UMIP) activated
[ 0.138167] Last level iTLB entries: 4KB 0, 2MB 0, 4MB 0
[ 0.138167] Last level dTLB entries: 4KB 0, 2MB 0, 4MB 0, 1GB 0
[ 0.138167] Spectre V1 : Mitigation: usercopy/swapgs barriers and
__user pointer sanitization
[ 0.138167] Spectre V2 : Mitigation: Full generic retpoline
[ 0.138167] Spectre V2 : Spectre v2 / SpectreRSB mitigation:
Filling RSB on context switch
[ 0.138167] Speculative Store Bypass: Vulnerable
[ 0.138167] SRBDS: Unknown: Dependent on hypervisor status
[ 0.138167] MDS: Vulnerable: Clear CPU buffers attempted, no microcode
[ 0.138167] Freeing SMP alternatives memory: 40K
[ 0.138167] smpboot: CPU0: Intel(R) Core(TM) i5-3470S CPU @ 2.90GHz
(family: 0x6, model: 0x3a, stepping: 0x9)
[ 0.138167] Performance Events: IvyBridge events, Intel PMU driver.
[ 0.138167] ... version: 2
[ 0.138167] ... bit width: 48
[ 0.138167] ... generic registers: 8
[ 0.138167] ... value mask: 0000ffffffffffff
[ 0.138174] ... max period: 000000007fffffff
[ 0.138858] ... fixed-purpose events: 3
[ 0.139368] ... event mask: 00000007000000ff
[ 0.140100] rcu: Hierarchical SRCU implementation.
[ 0.141442] smp: Bringing up secondary CPUs ...
[ 0.142041] smp: Brought up 1 node, 1 CPU
[ 0.142174] smpboot: Max logical packages: 1
[ 0.142745] smpboot: Total of 1 processors activated (5800.03 BogoMIPS)
[ 0.143731] devtmpfs: initialized
[ 0.144196] x86/mm: Memory block size: 128MB
[ 0.145174] clocksource: jiffies: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.146182] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[ 0.147095] pinctrl core: initialized pinctrl subsystem
[ 0.147904] PM: RTC time: 20:52:31, date: 2021-03-28
[ 0.148653] NET: Registered protocol family 16
[ 0.149357] audit: initializing netlink subsys (disabled)
[ 0.150178] audit: type=2000 audit(1616964751.732:1):
state=initialized audit_enabled=0 res=1
[ 0.151288] EISA bus registered
[ 0.151704] cpuidle: using governor ladder
[ 0.152253] cpuidle: using governor menu
[ 0.152835] KVM setup pv remote TLB flush
[ 0.153365] ACPI: bus type PCI registered
[ 0.153877] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[ 0.154275] PCI: Using configuration type 1 for base access
[ 0.155057] core: PMU erratum BJ122, BV98, HSD29 workaround disabled, HT off
[ 0.157213] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.158932] ACPI: Added _OSI(Module Device)
[ 0.159485] ACPI: Added _OSI(Processor Device)
[ 0.160077] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.160705] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.161389] ACPI: Added _OSI(Linux-Dell-Video)
[ 0.161957] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[ 0.162195] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics)
[ 0.163703] ACPI: 1 ACPI AML tables successfully acquired and loaded
[ 0.165327] ACPI: Interpreter enabled
[ 0.165802] ACPI: (supports S0 S3 S4 S5)
[ 0.166209] ACPI: Using IOAPIC for interrupt routing
[ 0.166867] PCI: Using host bridge windows from ACPI; if necessary,
use "pci=nocrs" and report a bug
[ 0.168156] ACPI: Enabled 2 GPEs in block 00 to 0F
[ 0.171254] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[ 0.172010] acpi PNP0A03:00: _OSC: OS supports [ASPM ClockPM
Segments MSI HPX-Type3]
[ 0.173009] acpi PNP0A03:00: fail to add MMCONFIG information,
can't access extended PCI configuration space under this bridge.
[ 0.174445] acpiphp: Slot [2] registered
[ 0.175030] acpiphp: Slot [3] registered
[ 0.175554] acpiphp: Slot [4] registered
[ 0.176089] acpiphp: Slot [5] registered
[ 0.176620] acpiphp: Slot [6] registered
[ 0.177156] acpiphp: Slot [7] registered
[ 0.177654] acpiphp: Slot [8] registered
[ 0.178191] acpiphp: Slot [9] registered
[ 0.178719] acpiphp: Slot [10] registered
[ 0.179285] acpiphp: Slot [11] registered
[ 0.179818] acpiphp: Slot [12] registered
[ 0.180362] acpiphp: Slot [13] registered
[ 0.180899] acpiphp: Slot [14] registered
[ 0.181450] acpiphp: Slot [15] registered
[ 0.181990] acpiphp: Slot [16] registered
[ 0.182194] acpiphp: Slot [17] registered
[ 0.182763] acpiphp: Slot [18] registered
[ 0.183340] acpiphp: Slot [19] registered
[ 0.183877] acpiphp: Slot [20] registered
[ 0.184423] acpiphp: Slot [21] registered
[ 0.184955] acpiphp: Slot [22] registered
[ 0.185506] acpiphp: Slot [23] registered
[ 0.186041] acpiphp: Slot [24] registered
[ 0.186191] acpiphp: Slot [25] registered
[ 0.186714] acpiphp: Slot [26] registered
[ 0.187269] acpiphp: Slot [27] registered
[ 0.187807] acpiphp: Slot [28] registered
[ 0.188353] acpiphp: Slot [29] registered
[ 0.188893] acpiphp: Slot [30] registered
[ 0.189446] acpiphp: Slot [31] registered
[ 0.189983] PCI host bridge to bus 0000:00
[ 0.190172] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window]
[ 0.191028] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window]
[ 0.191853] pci_bus 0000:00: root bus resource [mem
0x000a0000-0x000bffff window]
[ 0.192822] pci_bus 0000:00: root bus resource [mem
0x86600000-0xfebfffff window]
[ 0.193811] pci_bus 0000:00: root bus resource [mem
0x100000000-0x17fffffff window]
[ 0.194172] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 0.194920] pci 0000:00:00.0: [8086:1237] type 00 class 0x060000
[ 0.196348] pci 0000:00:01.0: [8086:7000] type 00 class 0x060100
[ 0.197739] pci 0000:00:01.1: [8086:7010] type 00 class 0x010180
[ 0.200109] pci 0000:00:01.1: reg 0x20: [io 0xc0c0-0xc0cf]
[ 0.201695] pci 0000:00:01.1: legacy IDE quirk: reg 0x10: [io 0x01f0-0x01f7]
[ 0.202174] pci 0000:00:01.1: legacy IDE quirk: reg 0x14: [io 0x03f6]
[ 0.203262] pci 0000:00:01.1: legacy IDE quirk: reg 0x18: [io 0x0170-0x0177]
[ 0.204190] pci 0000:00:01.1: legacy IDE quirk: reg 0x1c: [io 0x0376]
[ 0.205232] pci 0000:00:01.3: [8086:7113] type 00 class 0x068000
[ 0.206497] pci 0000:00:01.3: quirk: [io 0x0600-0x063f] claimed by
PIIX4 ACPI
[ 0.207432] pci 0000:00:01.3: quirk: [io 0x0700-0x070f] claimed by PIIX4 SMB
[ 0.208852] pci 0000:00:02.0: [1af4:1005] type 00 class 0x00ff00
[ 0.210173] pci 0000:00:02.0: reg 0x10: [io 0xc080-0xc09f]
[ 0.213645] pci 0000:00:02.0: reg 0x20: [mem 0xfebf0000-0xfebf3fff
64bit pref]
[ 0.215490] pci 0000:00:03.0: [1af4:1004] type 00 class 0x010000
[ 0.217144] pci 0000:00:03.0: reg 0x10: [io 0xc000-0xc03f]
[ 0.218725] pci 0000:00:03.0: reg 0x14: [mem 0xfeb80000-0xfeb80fff]
[ 0.222176] pci 0000:00:03.0: reg 0x20: [mem 0xfebf4000-0xfebf7fff
64bit pref]
[ 0.225719] pci 0000:00:04.0: [1af4:1003] type 00 class 0x078000
[ 0.227104] pci 0000:00:04.0: reg 0x10: [io 0xc040-0xc07f]
[ 0.228595] pci 0000:00:04.0: reg 0x14: [mem 0xfeb81000-0xfeb81fff]
[ 0.231655] pci 0000:00:04.0: reg 0x20: [mem 0xfebf8000-0xfebfbfff
64bit pref]
[ 0.234680] pci 0000:00:05.0: [1af4:1000] type 00 class 0x020000
[ 0.236194] pci 0000:00:05.0: reg 0x10: [io 0xc0a0-0xc0bf]
[ 0.237496] pci 0000:00:05.0: reg 0x14: [mem 0xfeb82000-0xfeb82fff]
[ 0.240117] pci 0000:00:05.0: reg 0x20: [mem 0xfebfc000-0xfebfffff
64bit pref]
[ 0.241654] pci 0000:00:05.0: reg 0x30: [mem 0xfeb00000-0xfeb7ffff pref]
[ 0.248653] ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11)
[ 0.249477] ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11)
[ 0.250307] ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11)
[ 0.251135] ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11)
[ 0.251863] ACPI: PCI Interrupt Link [LNKS] (IRQs *9)
[ 0.252699] iommu: Default domain type: Translated
[ 0.253468] SCSI subsystem initialized
[ 0.254040] vgaarb: loaded
[ 0.254187] usbcore: USB support disabled
[ 0.254702] pps_core: LinuxPPS API ver. 1 registered
[ 0.255356] pps_core: Software ver. 5.3.6 - Copyright 2005-2007
Rodolfo Giometti <giometti(a)linux.it>
[ 0.256464] PTP clock support registered
[ 0.256977] EDAC MC: Ver: 3.0.0
[ 0.257624] PCI: Using ACPI for IRQ routing
[ 0.258409] NetLabel: Initializing
[ 0.258839] NetLabel: domain hash size = 128
[ 0.259361] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO
[ 0.260079] NetLabel: unlabeled traffic allowed by default
[ 0.261101] clocksource: Switched to clocksource kvm-clock
[ 0.268944] *** VALIDATE bpf ***
[ 0.269462] VFS: Disk quotas dquot_6.6.0
[ 0.269947] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.270835] *** VALIDATE ramfs ***
[ 0.271312] *** VALIDATE hugetlbfs ***
[ 0.271882] AppArmor: AppArmor Filesystem Enabled
[ 0.272515] pnp: PnP ACPI init
[ 0.273395] pnp: PnP ACPI: found 5 devices
[ 0.275051] thermal_sys: Registered thermal governor 'fair_share'
[ 0.275051] thermal_sys: Registered thermal governor 'bang_bang'
[ 0.275808] thermal_sys: Registered thermal governor 'step_wise'
[ 0.276554] thermal_sys: Registered thermal governor 'user_space'
[ 0.277276] thermal_sys: Registered thermal governor 'power_allocator'
[ 0.282580] clocksource: acpi_pm: mask: 0xffffff max_cycles:
0xffffff, max_idle_ns: 2085701024 ns
[ 0.284461] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7 window]
[ 0.285230] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff window]
[ 0.285971] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window]
[ 0.286803] pci_bus 0000:00: resource 7 [mem 0x86600000-0xfebfffff window]
[ 0.287654] pci_bus 0000:00: resource 8 [mem 0x100000000-0x17fffffff window]
[ 0.288561] NET: Registered protocol family 2
[ 0.289223] tcp_listen_portaddr_hash hash table entries: 2048
(order: 3, 32768 bytes, linear)
[ 0.290300] TCP established hash table entries: 32768 (order: 6,
262144 bytes, linear)
[ 0.291350] TCP bind hash table entries: 32768 (order: 7, 524288
bytes, linear)
[ 0.292289] TCP: Hash tables configured (established 32768 bind 32768)
[ 0.293111] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[ 0.293954] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[ 0.295127] NET: Registered protocol family 1
[ 0.295671] NET: Registered protocol family 44
[ 0.296254] pci 0000:00:01.0: PIIX3: Enabling Passive Release
[ 0.296969] pci 0000:00:00.0: Limiting direct PCI/PCI transfers
[ 0.297721] pci 0000:00:01.0: Activating ISA DMA hang workarounds
[ 0.298592] PCI: CLS 0 bytes, default 64
[ 0.299138] Trying to unpack rootfs image as initramfs...
[ 0.300255] Freeing initrd memory: 612K
[ 0.300864] clocksource: tsc: mask: 0xffffffffffffffff max_cycles:
0x29cd53f88c2, max_idle_ns: 440795234519 ns
[ 0.302162] check: Scanning for low memory corruption every 60 seconds
[ 0.303309] Initialise system trusted keyrings
[ 0.303907] Key type blacklist registered
[ 0.304435] workingset: timestamp_bits=36 max_order=20 bucket_order=0
[ 0.306201] zbud: loaded
[ 0.306784] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.307673] fuse: init (API version 7.31)
[ 0.308178] *** VALIDATE fuse ***
[ 0.308633] *** VALIDATE fuse ***
[ 0.309104] Platform Keyring initialized
[ 0.312636] Key type asymmetric registered
[ 0.313144] Asymmetric key parser 'x509' registered
[ 0.313737] Block layer SCSI generic (bsg) driver version 0.4
loaded (major 244)
[ 0.314717] io scheduler mq-deadline registered
[ 0.315381] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[ 0.316333] input: Power Button as
/devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
[ 0.317314] ACPI: Power Button [PWRF]
[ 0.336948] PCI Interrupt Link [LNKB] enabled at IRQ 10
[ 0.357056] PCI Interrupt Link [LNKC] enabled at IRQ 11
[ 0.377183] PCI Interrupt Link [LNKD] enabled at IRQ 11
[ 0.397589] PCI Interrupt Link [LNKA] enabled at IRQ 10
[ 0.399231] Serial: 8250/16550 driver, 1 ports, IRQ sharing enabled
[ 0.422582] 00:04: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200)
is a 16550A
[ 0.444765] Linux agpgart interface v0.103
[ 0.448080] loop: module loaded
[ 0.450092] scsi host0: ata_piix
[ 0.451040] scsi host1: ata_piix
[ 0.451865] ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc0c0 irq 14
[ 0.453475] ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc0c8 irq 15
[ 0.455344] libphy: Fixed MDIO Bus: probed
[ 0.455879] tun: Universal TUN/TAP device driver, 1.6
[ 0.456799] PPP generic driver version 2.4.2
[ 0.457424] VFIO - User Level meta-driver version: 0.3
[ 0.458167] i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU]
at 0x60,0x64 irq 1,12
[ 0.459931] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 0.460587] serio: i8042 AUX port at 0x60,0x64 irq 12
[ 0.461291] mousedev: PS/2 mouse device common for all mice
[ 0.462321] input: AT Translated Set 2 keyboard as
/devices/platform/i8042/serio0/input/input1
[ 0.463692] rtc_cmos 00:00: RTC can wake from S4
[ 0.464611] rtc_cmos 00:00: registered as rtc0
[ 0.465216] rtc_cmos 00:00: alarms up to one day, y3k, 114 bytes nvram
[ 0.466049] i2c /dev entries driver
[ 0.466542] device-mapper: uevent: version 1.0.3
[ 0.467201] device-mapper: ioctl: 4.41.0-ioctl (2019-09-16)
initialised: dm-devel(a)redhat.com
[ 0.468272] platform eisa.0: Probing EISA bus 0
[ 0.468877] platform eisa.0: EISA: Cannot allocate resource for mainboard
[ 0.469738] platform eisa.0: Cannot allocate resource for EISA slot 1
[ 0.470582] platform eisa.0: Cannot allocate resource for EISA slot 2
[ 0.471418] platform eisa.0: Cannot allocate resource for EISA slot 3
[ 0.472212] platform eisa.0: Cannot allocate resource for EISA slot 4
[ 0.473029] platform eisa.0: Cannot allocate resource for EISA slot 5
[ 0.473835] platform eisa.0: Cannot allocate resource for EISA slot 6
[ 0.474613] platform eisa.0: Cannot allocate resource for EISA slot 7
[ 0.475450] platform eisa.0: Cannot allocate resource for EISA slot 8
[ 0.476278] platform eisa.0: EISA: Detected 0 cards
[ 0.476899] intel_pstate: CPU model not supported
[ 0.477516] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.478348] drop_monitor: Initializing network drop monitor service
[ 0.479336] NET: Registered protocol family 10
[ 0.480298] Segment Routing with IPv6
[ 0.480806] NET: Registered protocol family 17
[ 0.481425] Key type dns_resolver registered
[ 0.482150] RAS: Correctable Errors collector initialized.
[ 0.482880] IPI shorthand broadcast: enabled
[ 0.483438] sched_clock: Marking stable (392427562,
90438325)->(517742984, -34877097)
[ 0.484490] registered taskstats version 1
[ 0.485071] Loading compiled-in X.509 certificates
[ 0.486338] Loaded X.509 cert 'Build time autogenerated kernel key:
254611168742f91faa32f8ad6a92fc903145caeb'
[ 0.487627] zswap: loaded using pool lzo/zbud
[ 0.488268] Key type ._fscrypt registered
[ 0.488800] Key type .fscrypt registered
[ 0.489497] Key type big_key registered
[ 0.490064] Key type encrypted registered
[ 0.490585] AppArmor: AppArmor sha1 policy hashing enabled
[ 0.491336] ima: No TPM chip found, activating TPM-bypass!
[ 0.492038] ima: Allocated hash algorithm: sha1
[ 0.492592] ima: No architecture policies found
[ 0.493187] evm: Initialising EVM extended attributes:
[ 0.493849] evm: security.selinux
[ 0.494292] evm: security.SMACK64
[ 0.494729] evm: security.SMACK64EXEC
[ 0.495226] evm: security.SMACK64TRANSMUTE
[ 0.495770] evm: security.SMACK64MMAP
[ 0.496245] evm: security.apparmor
[ 0.496685] evm: security.ima
[ 0.497072] evm: security.capability
[ 0.497532] evm: HMAC attrs: 0x1
[ 0.498219] PM: Magic number: 13:547:903
[ 0.498843] rtc_cmos 00:00: setting system clock to
2021-03-28T20:52:31 UTC (1616964751)
[ 0.616267] Freeing unused decrypted memory: 2040K
[ 0.618600] Freeing unused kernel image memory: 2724K
[ 0.620149] Write protecting the kernel read-only data: 22528k
[ 0.623604] Freeing unused kernel image memory: 2008K
[ 0.625277] Freeing unused kernel image memory: 1184K
[ 0.634793] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[ 0.635591] x86/mm: Checking user space page tables
[ 0.643789] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[ 0.644563] Run /init as init process
supermin: mounting /proc
supermin: ext2 mini initrd starting up: 5.1.20
supermin: cmdline: panic=1 console=ttyS0 edd=off udevtimeout=6000
udev.event-timeout=6000 no_timer_check printk.time=1
cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable
8250.nr_uarts=1 root=/dev/sdb selinux=0 guestfs_verbose=1
guestfs_network=1 TERM=xterm guestfs_identifier=v2v
supermin: uptime: 0.55 0.11
supermin: mounting /sys
supermin: internal insmod crc32-pclmul.ko
supermin: internal insmod crct10dif-pclmul.ko
supermin: internal insmod crc32_generic.ko
supermin: internal insmod nfit.ko
supermin: internal insmod virtio_blk.ko
supermin: internal insmod virtio-rng.ko
supermin: internal insmod crypto_engine.ko
supermin: internal insmod virtio_crypto.ko
supermin: internal insmod failover.ko
supermin: internal insmod net_failover.ko
supermin: internal insmod virtio_net.ko
supermin: internal insmod nd_btt.ko
supermin: internal insmod nd_pmem.ko
supermin: internal insmod nd_virtio.ko
supermin: internal insmod virtio_pmem.ko
supermin: internal insmod rpmsg_core.ko
supermin: internal insmod virtio_rpmsg_bus.ko
supermin: internal insmod virtio_scsi.ko
[ 0.676870] scsi host2: Virtio SCSI HBA
[ 0.678213] scsi 2:0:0:0: Direct-Access QEMU QEMU HARDDISK
2.5+ PQ: 0 ANSI: 5
[ 0.679639] scsi 2:0:1:0: Direct-Access QEMU QEMU HARDDISK
2.5+ PQ: 0 ANSI: 5
[ 0.693706] sd 2:0:0:0: Power-on or device reset occurred
[ 0.694608] sd 2:0:0:0: Attached scsi generic sg0 type 0
[ 0.695539] sd 2:0:0:0: [sda] 44040192 512-byte logical blocks:
(22.5 GB/21.0 GiB)
[ 0.696602] sd 2:0:1:0: Power-on or device reset occurred
[ 0.697375] sd 2:0:1:0: Attached scsi generic sg1 type 0
[ 0.698100] sd 2:0:0:0: [sda] Write Protect is off
[ 0.699252] sd 2:0:0:0: [sda] Write cache: enabled, read cache:
enabled, doesn't support DPO or FUA
[ 0.700601] sd 2:0:1:0: [sdb] 8388608 512-byte logical blocks:
(4.29 GB/4.00 GiB)
[ 0.701645] sd 2:0:1:0: [sdb] Write Protect is off
[ 0.702394] sd 2:0:1:0: [sdb] Write cache: enabled, read cache:
enabled, doesn't support DPO or FUA
[ 0.705069] sd 2:0:0:0: [sda] Attached SCSI disk
[ 0.705822] sd 2:0:1:0: [sdb] Attached SCSI disk
supermin: internal insmod virtio_input.ko
supermin: internal insmod virtiofs.ko
supermin: internal insmod crc-itu-t.ko
supermin: internal insmod crc4.ko
supermin: internal insmod crc64.ko
supermin: internal insmod crc7.ko
supermin: internal insmod crc8.ko
supermin: internal insmod libcrc32c.ko
supermin: picked /sys/block/sdb/dev (8:16) as root device
supermin: creating /dev/root as block special 8:16
supermin: mounting new root on /root
[ 0.718086] EXT4-fs (sdb): mounting ext2 file system using the ext4 subsystem
[ 0.720313] EXT4-fs (sdb): mounted filesystem without journal. Opts:
supermin: deleting initramfs files
supermin: chroot
Starting /init script ...
+ [[ panic=1 console=ttyS0 edd=off udevtimeout=6000
udev.event-timeout=6000 no_timer_check printk.time=1
cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable
8250.nr_uarts=1 root=/dev/sdb selinux=0 guestfs_verbose=1
guestfs_network=1 TERM=xterm guestfs_identifier=v2v ==
*guestfs_network=1* ]]
+ guestfs_network=1
+ [[ panic=1 console=ttyS0 edd=off udevtimeout=6000
udev.event-timeout=6000 no_timer_check printk.time=1
cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable
8250.nr_uarts=1 root=/dev/sdb selinux=0 guestfs_verbose=1
guestfs_network=1 TERM=xterm guestfs_identifier=v2v ==
*guestfs_rescue=1* ]]
+ [[ panic=1 console=ttyS0 edd=off udevtimeout=6000
udev.event-timeout=6000 no_timer_check printk.time=1
cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable
8250.nr_uarts=1 root=/dev/sdb selinux=0 guestfs_verbose=1
guestfs_network=1 TERM=xterm guestfs_identifier=v2v ==
*guestfs_noreboot=1* ]]
+ [[ panic=1 console=ttyS0 edd=off udevtimeout=6000
udev.event-timeout=6000 no_timer_check printk.time=1
cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable
8250.nr_uarts=1 root=/dev/sdb selinux=0 guestfs_verbose=1
guestfs_network=1 TERM=xterm guestfs_identifier=v2v ==
*guestfs_boot_analysis=1* ]]
+ '[' '!' -d /sys ']'
+ mkdir -p /sys
+ mount -t sysfs /sys /sys
+ mkdir -p /run
+ mount -t tmpfs -o nosuid,size=20%,mode=0755 tmpfs /run
+ mkdir -p /run/lock
+ ln -s ../run/lock /var/lock
+ test -e /etc/mtab
+ ln -s /proc/mounts /etc/mtab
+ mount -t devtmpfs /dev /dev
+ mkdir -p /dev/pts
+ mount -t devpts /dev/pts /dev/pts
+ mkdir -p /dev/shm
+ mount -t tmpfs -o mode=1777 shmfs /dev/shm
+ [[ panic=1 console=ttyS0 edd=off udevtimeout=6000
udev.event-timeout=6000 no_timer_check printk.time=1
cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable
8250.nr_uarts=1 root=/dev/sdb selinux=0 guestfs_verbose=1
guestfs_network=1 TERM=xterm guestfs_identifier=v2v == *selinux=1* ]]
+ mkdir -p /run/tmpfiles.d
+ kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf
++ od -x -A n
++ dd if=/dev/urandom bs=16 count=1 status=none
+ machine_id=' b55d 8a1f 1a40 1960 ffc5 ca61 a5e8 1a35'
+ echo b55d8a1f1a401960ffc5ca61a5e81a35
+ systemd-tmpfiles --prefix=/dev --prefix=/run --prefix=/var/run --create --boot
[/usr/lib/tmpfiles.d/static-nodes-permissions.conf:12] Unknown group 'audio'.
[/usr/lib/tmpfiles.d/static-nodes-permissions.conf:13] Unknown group 'audio'.
[/usr/lib/tmpfiles.d/static-nodes-permissions.conf:14] Unknown group 'disk'.
[/usr/lib/tmpfiles.d/static-nodes-permissions.conf:17] Unknown group 'kvm'.
[/usr/lib/tmpfiles.d/systemd.conf:11] Unknown group 'utmp'.
[/usr/lib/tmpfiles.d/systemd.conf:19] Unknown user 'systemd-network'.
[/usr/lib/tmpfiles.d/systemd.conf:20] Unknown user 'systemd-network'.
[/usr/lib/tmpfiles.d/systemd.conf:21] Unknown user 'systemd-network'.
[/usr/lib/tmpfiles.d/systemd.conf:22] Unknown user 'systemd-network'.
[/usr/lib/tmpfiles.d/systemd.conf:26] Unknown group 'systemd-journal'.
[/usr/lib/tmpfiles.d/systemd.conf:27] Unknown group 'systemd-journal'.
Failed to parse ACL
"d:group::r-x,d:group:adm:r-x,group::r-x,group:adm:r-x": No such file
or directory. Ignoring
Failed to parse ACL "d:group:adm:r-x,group:adm:r-x": No such file or
directory. Ignoring
Failed to parse ACL "group:adm:r--": No such file or directory. Ignoring
Failed to parse ACL
"d:group::r-x,d:group:adm:r-x,group::r-x,group:adm:r-x": No such file
or directory. Ignoring
Failed to parse ACL "d:group:adm:r-x,group:adm:r-x": No such file or
directory. Ignoring
Failed to parse ACL "group:adm:r--": No such file or directory. Ignoring
+ for f in /lib/systemd/systemd-udevd /usr/lib/systemd/systemd-udevd
/sbin/udevd /lib/udev/udevd /usr/lib/udev/udevd
+ '[' -x /lib/systemd/systemd-udevd ']'
+ UDEVD=/lib/systemd/systemd-udevd
+ break
+ '[' -z /lib/systemd/systemd-udevd ']'
+ /lib/systemd/systemd-udevd --daemon
Starting version 245.4-4ubuntu3.5
+ udevadm trigger
+ udevadm settle --timeout=600
+ shopt -s nullglob
+ for f in /sys/block/sd*/device/timeout
+ echo 300
+ for f in /sys/block/sd*/device/timeout
+ echo 300
+ for f in /sys/block/{h,s,ub,v}d*/queue/scheduler
+ echo noop
/init: line 116: echo: write error: Invalid argument
+ for f in /sys/block/{h,s,ub,v}d*/queue/scheduler
+ echo noop
/init: line 116: echo: write error: Invalid argument
+ shopt -u nullglob
+ ip addr add 127.0.0.1/8 brd + dev lo scope host
+ ip link set dev lo up
+ test 1 = 1
++ ls -I all -I default -I lo /proc/sys/net/ipv4/conf
+ iface=eth0
+ touch /etc/fstab
+ rm -f /etc/dhcp/dhclient-enter-hooks.d/resolved
+ dhclient --version
+ dhclient eth0
run-parts: failed to open directory /etc/dhcp/dhclient-enter-hooks.d:
Input/output error
run-parts: failed to open directory /etc/dhcp/dhclient-exit-hooks.d:
Input/output error
run-parts: failed to open directory /etc/dhcp/dhclient-enter-hooks.d:
Input/output error
run-parts: failed to open directory /etc/dhcp/dhclient-exit-hooks.d:
Input/output error
+ mdadm -As --auto=yes --no-degraded
mdadm: No arrays found in config file or automatically
+ mkdir -p /tmp/lvm
+ touch /tmp/lvm/lvm.conf
+ LVM_SYSTEM_DIR=/tmp/lvm
+ export LVM_SYSTEM_DIR
+ lvmetad
/init: line 144: lvmetad: command not found
+ modprobe dm_mod
+ lvm pvscan --cache --activate ay
+ mdadm -As --auto=yes --run
mdadm: No arrays found in config file or automatically
+ ldmtool create all
[
]
+ test 1 = 1
+ test '' '!=' 1
+ uname -a
Linux (none) 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC
2021 x86_64 x86_64 x86_64 GNU/Linux
+ ls -lR /dev
/dev:
total 0
crw------- 1 0 0 10, 235 Mar 28 20:52 autofs
drwxr-xr-x 2 0 0 240 Mar 28 20:52 block
drwxr-xr-x 2 0 0 80 Mar 28 20:52 bsg
crw------- 1 0 0 10, 234 Mar 28 20:52 btrfs-control
drwxr-xr-x 2 0 0 2240 Mar 28 20:52 char
crw------- 1 0 0 5, 1 Mar 28 20:52 console
lrwxrwxrwx 1 0 0 11 Mar 28 20:52 core -> /proc/kcore
crw------- 1 0 0 10, 59 Mar 28 20:52 cpu_dma_latency
crw------- 1 0 0 10, 203 Mar 28 20:52 cuse
drwxr-xr-x 5 0 0 100 Mar 28 20:52 disk
crw------- 1 0 0 10, 62 Mar 28 20:52 ecryptfs
lrwxrwxrwx 1 0 0 13 Mar 28 20:52 fd -> /proc/self/fd
crw-rw-rw- 1 0 0 1, 7 Mar 28 20:52 full
crw-rw-rw- 1 0 0 10, 229 Mar 28 20:52 fuse
crw------- 1 0 0 10, 228 Mar 28 20:52 hpet
crw------- 1 0 0 10, 183 Mar 28 20:52 hwrng
drwxr-xr-x 3 0 0 120 Mar 28 20:52 input
crw-r--r-- 1 0 0 1, 11 Mar 28 20:52 kmsg
drwxr-xr-x 2 0 0 60 Mar 28 20:52 lightnvm
crw------- 1 0 0 10, 237 Mar 28 20:52 loop-control
brw------- 1 0 0 7, 0 Mar 28 20:52 loop0
brw------- 1 0 0 7, 1 Mar 28 20:52 loop1
brw------- 1 0 0 7, 2 Mar 28 20:52 loop2
brw------- 1 0 0 7, 3 Mar 28 20:52 loop3
brw------- 1 0 0 7, 4 Mar 28 20:52 loop4
brw------- 1 0 0 7, 5 Mar 28 20:52 loop5
brw------- 1 0 0 7, 6 Mar 28 20:52 loop6
brw------- 1 0 0 7, 7 Mar 28 20:52 loop7
drwxr-xr-x 2 0 0 60 Mar 28 20:52 mapper
crw------- 1 0 0 10, 227 Mar 28 20:52 mcelog
crw------- 1 0 0 1, 1 Mar 28 20:52 mem
drwxr-xr-x 2 0 0 60 Mar 28 20:52 net
crw-rw-rw- 1 0 0 1, 3 Mar 28 20:52 null
crw------- 1 0 0 10, 144 Mar 28 20:52 nvram
crw------- 1 0 0 1, 4 Mar 28 20:52 port
crw------- 1 0 0 108, 0 Mar 28 20:52 ppp
crw------- 1 0 0 10, 1 Mar 28 20:52 psaux
crw-rw-rw- 1 0 0 5, 2 Mar 28 20:52 ptmx
drwxr-xr-x 2 0 0 0 Mar 28 20:52 pts
crw-rw-rw- 1 0 0 1, 8 Mar 28 20:52 random
crw------- 1 0 0 10, 242 Mar 28 20:52 rfkill
lrwxrwxrwx 1 0 0 4 Mar 28 20:52 rtc -> rtc0
crw------- 1 0 0 249, 0 Mar 28 20:52 rtc0
brw------- 1 0 0 8, 0 Mar 28 20:52 sda
brw------- 1 0 0 8, 16 Mar 28 20:52 sdb
crw------- 1 0 0 21, 0 Mar 28 20:52 sg0
crw------- 1 0 0 21, 1 Mar 28 20:52 sg1
drwxrwxrwt 2 0 0 40 Mar 28 20:52 shm
crw------- 1 0 0 10, 231 Mar 28 20:52 snapshot
drwxr-xr-x 2 0 0 80 Mar 28 20:52 snd
lrwxrwxrwx 1 0 0 15 Mar 28 20:52 stderr -> /proc/self/fd/2
lrwxrwxrwx 1 0 0 15 Mar 28 20:52 stdin -> /proc/self/fd/0
lrwxrwxrwx 1 0 0 15 Mar 28 20:52 stdout -> /proc/self/fd/1
crw-rw-rw- 1 0 0 5, 0 Mar 28 20:52 tty
crw------- 1 0 0 4, 0 Mar 28 20:52 tty0
crw------- 1 0 0 4, 1 Mar 28 20:52 tty1
crw------- 1 0 0 4, 10 Mar 28 20:52 tty10
crw------- 1 0 0 4, 11 Mar 28 20:52 tty11
crw------- 1 0 0 4, 12 Mar 28 20:52 tty12
crw------- 1 0 0 4, 13 Mar 28 20:52 tty13
crw------- 1 0 0 4, 14 Mar 28 20:52 tty14
crw------- 1 0 0 4, 15 Mar 28 20:52 tty15
crw------- 1 0 0 4, 16 Mar 28 20:52 tty16
crw------- 1 0 0 4, 17 Mar 28 20:52 tty17
crw------- 1 0 0 4, 18 Mar 28 20:52 tty18
crw------- 1 0 0 4, 19 Mar 28 20:52 tty19
crw------- 1 0 0 4, 2 Mar 28 20:52 tty2
crw------- 1 0 0 4, 20 Mar 28 20:52 tty20
crw------- 1 0 0 4, 21 Mar 28 20:52 tty21
crw------- 1 0 0 4, 22 Mar 28 20:52 tty22
crw------- 1 0 0 4, 23 Mar 28 20:52 tty23
crw------- 1 0 0 4, 24 Mar 28 20:52 tty24
crw------- 1 0 0 4, 25 Mar 28 20:52 tty25
crw------- 1 0 0 4, 26 Mar 28 20:52 tty26
crw------- 1 0 0 4, 27 Mar 28 20:52 tty27
crw------- 1 0 0 4, 28 Mar 28 20:52 tty28
crw------- 1 0 0 4, 29 Mar 28 20:52 tty29
crw------- 1 0 0 4, 3 Mar 28 20:52 tty3
crw------- 1 0 0 4, 30 Mar 28 20:52 tty30
crw------- 1 0 0 4, 31 Mar 28 20:52 tty31
crw------- 1 0 0 4, 32 Mar 28 20:52 tty32
crw------- 1 0 0 4, 33 Mar 28 20:52 tty33
crw------- 1 0 0 4, 34 Mar 28 20:52 tty34
crw------- 1 0 0 4, 35 Mar 28 20:52 tty35
crw------- 1 0 0 4, 36 Mar 28 20:52 tty36
crw------- 1 0 0 4, 37 Mar 28 20:52 tty37
crw------- 1 0 0 4, 38 Mar 28 20:52 tty38
crw------- 1 0 0 4, 39 Mar 28 20:52 tty39
crw------- 1 0 0 4, 4 Mar 28 20:52 tty4
crw------- 1 0 0 4, 40 Mar 28 20:52 tty40
crw------- 1 0 0 4, 41 Mar 28 20:52 tty41
crw------- 1 0 0 4, 42 Mar 28 20:52 tty42
crw------- 1 0 0 4, 43 Mar 28 20:52 tty43
crw------- 1 0 0 4, 44 Mar 28 20:52 tty44
crw------- 1 0 0 4, 45 Mar 28 20:52 tty45
crw------- 1 0 0 4, 46 Mar 28 20:52 tty46
crw------- 1 0 0 4, 47 Mar 28 20:52 tty47
crw------- 1 0 0 4, 48 Mar 28 20:52 tty48
crw------- 1 0 0 4, 49 Mar 28 20:52 tty49
crw------- 1 0 0 4, 5 Mar 28 20:52 tty5
crw------- 1 0 0 4, 50 Mar 28 20:52 tty50
crw------- 1 0 0 4, 51 Mar 28 20:52 tty51
crw------- 1 0 0 4, 52 Mar 28 20:52 tty52
crw------- 1 0 0 4, 53 Mar 28 20:52 tty53
crw------- 1 0 0 4, 54 Mar 28 20:52 tty54
crw------- 1 0 0 4, 55 Mar 28 20:52 tty55
crw------- 1 0 0 4, 56 Mar 28 20:52 tty56
crw------- 1 0 0 4, 57 Mar 28 20:52 tty57
crw------- 1 0 0 4, 58 Mar 28 20:52 tty58
crw------- 1 0 0 4, 59 Mar 28 20:52 tty59
crw------- 1 0 0 4, 6 Mar 28 20:52 tty6
crw------- 1 0 0 4, 60 Mar 28 20:52 tty60
crw------- 1 0 0 4, 61 Mar 28 20:52 tty61
crw------- 1 0 0 4, 62 Mar 28 20:52 tty62
crw------- 1 0 0 4, 63 Mar 28 20:52 tty63
crw------- 1 0 0 4, 7 Mar 28 20:52 tty7
crw------- 1 0 0 4, 8 Mar 28 20:52 tty8
crw------- 1 0 0 4, 9 Mar 28 20:52 tty9
crw------- 1 0 0 4, 64 Mar 28 20:52 ttyS0
crw------- 1 0 0 5, 3 Mar 28 20:52 ttyprintk
crw------- 1 0 0 10, 60 Mar 28 20:52 udmabuf
crw------- 1 0 0 10, 239 Mar 28 20:52 uhid
crw------- 1 0 0 10, 223 Mar 28 20:52 uinput
crw-rw-rw- 1 0 0 1, 9 Mar 28 20:52 urandom
crw------- 1 0 0 10, 240 Mar 28 20:52 userio
crw------- 1 0 0 7, 0 Mar 28 20:52 vcs
crw------- 1 0 0 7, 1 Mar 28 20:52 vcs1
crw------- 1 0 0 7, 128 Mar 28 20:52 vcsa
crw------- 1 0 0 7, 129 Mar 28 20:52 vcsa1
crw------- 1 0 0 7, 64 Mar 28 20:52 vcsu
crw------- 1 0 0 7, 65 Mar 28 20:52 vcsu1
drwxr-xr-x 2 0 0 60 Mar 28 20:52 vfio
crw------- 1 0 0 10, 63 Mar 28 20:52 vga_arbiter
crw------- 1 0 0 10, 137 Mar 28 20:52 vhci
crw------- 1 0 0 10, 238 Mar 28 20:52 vhost-net
crw------- 1 0 0 10, 241 Mar 28 20:52 vhost-vsock
drwxr-xr-x 2 0 0 60 Mar 28 20:52 virtio-ports
crw------- 1 0 0 243, 1 Mar 28 20:52 vport2p1
crw-rw-rw- 1 0 0 1, 5 Mar 28 20:52 zero
crw------- 1 0 0 10, 249 Mar 28 20:52 zfs
/dev/block:
total 0
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 7:0 -> ../loop0
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 7:1 -> ../loop1
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 7:2 -> ../loop2
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 7:3 -> ../loop3
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 7:4 -> ../loop4
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 7:5 -> ../loop5
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 7:6 -> ../loop6
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 7:7 -> ../loop7
lrwxrwxrwx 1 0 0 6 Mar 28 20:52 8:0 -> ../sda
lrwxrwxrwx 1 0 0 6 Mar 28 20:52 8:16 -> ../sdb
/dev/bsg:
total 0
crw------- 1 0 0 244, 0 Mar 28 20:52 2:0:0:0
crw------- 1 0 0 244, 1 Mar 28 20:52 2:0:1:0
/dev/char:
total 0
lrwxrwxrwx 1 0 0 6 Mar 28 20:52 108:0 -> ../ppp
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 10:1 -> ../psaux
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 10:183 -> ../hwrng
lrwxrwxrwx 1 0 0 12 Mar 28 20:52 10:196 -> ../vfio/vfio
lrwxrwxrwx 1 0 0 10 Mar 28 20:52 10:200 -> ../net/tun
lrwxrwxrwx 1 0 0 9 Mar 28 20:52 10:223 -> ../uinput
lrwxrwxrwx 1 0 0 9 Mar 28 20:52 10:227 -> ../mcelog
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 10:228 -> ../hpet
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 10:229 -> ../fuse
lrwxrwxrwx 1 0 0 11 Mar 28 20:52 10:231 -> ../snapshot
lrwxrwxrwx 1 0 0 17 Mar 28 20:52 10:236 -> ../mapper/control
lrwxrwxrwx 1 0 0 15 Mar 28 20:52 10:237 -> ../loop-control
lrwxrwxrwx 1 0 0 9 Mar 28 20:52 10:242 -> ../rfkill
lrwxrwxrwx 1 0 0 18 Mar 28 20:52 10:59 -> ../cpu_dma_latency
lrwxrwxrwx 1 0 0 10 Mar 28 20:52 10:60 -> ../udmabuf
lrwxrwxrwx 1 0 0 19 Mar 28 20:52 10:61 -> ../lightnvm/control
lrwxrwxrwx 1 0 0 11 Mar 28 20:52 10:62 -> ../ecryptfs
lrwxrwxrwx 1 0 0 14 Mar 28 20:52 10:63 -> ../vga_arbiter
lrwxrwxrwx 1 0 0 13 Mar 28 20:52 13:63 -> ../input/mice
lrwxrwxrwx 1 0 0 15 Mar 28 20:52 13:64 -> ../input/event0
lrwxrwxrwx 1 0 0 15 Mar 28 20:52 13:65 -> ../input/event1
lrwxrwxrwx 1 0 0 6 Mar 28 20:52 1:1 -> ../mem
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 1:11 -> ../kmsg
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 1:3 -> ../null
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 1:4 -> ../port
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 1:5 -> ../zero
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 1:7 -> ../full
lrwxrwxrwx 1 0 0 9 Mar 28 20:52 1:8 -> ../random
lrwxrwxrwx 1 0 0 10 Mar 28 20:52 1:9 -> ../urandom
lrwxrwxrwx 1 0 0 6 Mar 28 20:52 21:0 -> ../sg0
lrwxrwxrwx 1 0 0 6 Mar 28 20:52 21:1 -> ../sg1
lrwxrwxrwx 1 0 0 11 Mar 28 20:52 243:1 -> ../vport2p1
lrwxrwxrwx 1 0 0 14 Mar 28 20:52 244:0 -> ../bsg/2:0:0:0
lrwxrwxrwx 1 0 0 14 Mar 28 20:52 244:1 -> ../bsg/2:0:1:0
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 249:0 -> ../rtc0
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 4:0 -> ../tty0
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 4:1 -> ../tty1
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:10 -> ../tty10
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:11 -> ../tty11
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:12 -> ../tty12
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:13 -> ../tty13
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:14 -> ../tty14
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:15 -> ../tty15
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:16 -> ../tty16
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:17 -> ../tty17
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:18 -> ../tty18
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:19 -> ../tty19
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 4:2 -> ../tty2
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:20 -> ../tty20
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:21 -> ../tty21
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:22 -> ../tty22
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:23 -> ../tty23
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:24 -> ../tty24
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:25 -> ../tty25
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:26 -> ../tty26
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:27 -> ../tty27
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:28 -> ../tty28
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:29 -> ../tty29
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 4:3 -> ../tty3
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:30 -> ../tty30
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:31 -> ../tty31
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:32 -> ../tty32
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:33 -> ../tty33
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:34 -> ../tty34
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:35 -> ../tty35
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:36 -> ../tty36
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:37 -> ../tty37
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:38 -> ../tty38
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:39 -> ../tty39
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 4:4 -> ../tty4
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:40 -> ../tty40
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:41 -> ../tty41
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:42 -> ../tty42
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:43 -> ../tty43
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:44 -> ../tty44
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:45 -> ../tty45
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:46 -> ../tty46
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:47 -> ../tty47
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:48 -> ../tty48
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:49 -> ../tty49
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 4:5 -> ../tty5
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:50 -> ../tty50
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:51 -> ../tty51
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:52 -> ../tty52
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:53 -> ../tty53
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:54 -> ../tty54
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:55 -> ../tty55
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:56 -> ../tty56
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:57 -> ../tty57
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:58 -> ../tty58
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:59 -> ../tty59
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 4:6 -> ../tty6
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:60 -> ../tty60
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:61 -> ../tty61
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:62 -> ../tty62
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:63 -> ../tty63
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 4:64 -> ../ttyS0
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 4:7 -> ../tty7
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 4:8 -> ../tty8
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 4:9 -> ../tty9
lrwxrwxrwx 1 0 0 6 Mar 28 20:52 5:0 -> ../tty
lrwxrwxrwx 1 0 0 10 Mar 28 20:52 5:1 -> ../console
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 5:2 -> ../ptmx
lrwxrwxrwx 1 0 0 12 Mar 28 20:52 5:3 -> ../ttyprintk
lrwxrwxrwx 1 0 0 6 Mar 28 20:52 7:0 -> ../vcs
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 7:1 -> ../vcs1
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 7:128 -> ../vcsa
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 7:129 -> ../vcsa1
lrwxrwxrwx 1 0 0 7 Mar 28 20:52 7:64 -> ../vcsu
lrwxrwxrwx 1 0 0 8 Mar 28 20:52 7:65 -> ../vcsu1
/dev/disk:
total 0
drwxr-xr-x 2 0 0 80 Mar 28 20:52 by-id
drwxr-xr-x 2 0 0 80 Mar 28 20:52 by-path
drwxr-xr-x 2 0 0 80 Mar 28 20:52 by-uuid
/dev/disk/by-id:
total 0
lrwxrwxrwx 1 0 0 9 Mar 28 20:52 scsi-0QEMU_QEMU_HARDDISK_appliance -> ../../sdb
lrwxrwxrwx 1 0 0 9 Mar 28 20:52 scsi-0QEMU_QEMU_HARDDISK_hd0 -> ../../sda
/dev/disk/by-path:
total 0
lrwxrwxrwx 1 0 0 9 Mar 28 20:52 pci-0000:00:03.0-scsi-0:0:0:0 -> ../../sda
lrwxrwxrwx 1 0 0 9 Mar 28 20:52 pci-0000:00:03.0-scsi-0:0:1:0 -> ../../sdb
/dev/disk/by-uuid:
total 0
lrwxrwxrwx 1 0 0 9 Mar 28 20:52 133b755f-d500-4b78-a152-3bd16b042703
-> ../../sdb
lrwxrwxrwx 1 0 0 9 Mar 28 20:52 1515c391-40bc-463c-aec1-64a5d6dd1818
-> ../../sda
/dev/input:
total 0
drwxr-xr-x 2 0 0 60 Mar 28 20:52 by-path
crw------- 1 0 0 13, 64 Mar 28 20:52 event0
crw------- 1 0 0 13, 65 Mar 28 20:52 event1
crw------- 1 0 0 13, 63 Mar 28 20:52 mice
/dev/input/by-path:
total 0
lrwxrwxrwx 1 0 0 9 Mar 28 20:52 platform-i8042-serio-0-event-kbd -> ../event1
/dev/lightnvm:
total 0
crw------- 1 0 0 10, 61 Mar 28 20:52 control
/dev/mapper:
total 0
crw------- 1 0 0 10, 236 Mar 28 20:52 control
/dev/net:
total 0
crw-rw-rw- 1 0 0 10, 200 Mar 28 20:52 tun
/dev/pts:
total 0
c--------- 1 0 0 5, 2 Mar 28 20:52 ptmx
/dev/shm:
total 0
/dev/snd:
total 0
crw------- 1 0 0 116, 1 Mar 28 20:52 seq
crw------- 1 0 0 116, 33 Mar 28 20:52 timer
/dev/vfio:
total 0
crw-rw-rw- 1 0 0 10, 196 Mar 28 20:52 vfio
/dev/virtio-ports:
total 0
lrwxrwxrwx 1 0 0 11 Mar 28 20:52 org.libguestfs.channel.0 -> ../vport2p1
+ cat /proc/mounts
/dev/root / ext2 rw,noatime 0 0
/proc /proc proc rw,relatime 0 0
/sys /sys sysfs rw,relatime 0 0
tmpfs /run tmpfs rw,nosuid,relatime,size=426952k,mode=755 0 0
/dev /dev devtmpfs rw,relatime,size=1063092k,nr_inodes=265773,mode=755 0 0
/dev/pts /dev/pts devpts rw,relatime,mode=600,ptmxmode=000 0 0
shmfs /dev/shm tmpfs rw,relatime 0 0
+ cat /proc/mdstat
Personalities :
unused devices: <none>
+ lvm config
+ lvm pvs
+ lvm vgs
+ lvm lvs
+ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
pfifo_fast state DOWN group default qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 169.254.2.15/16 brd 169.254.255.255 scope global dynamic eth0
valid_lft 86400sec preferred_lft 86400sec
+ ip r
default via 169.254.2.2 dev eth0
169.254.0.0/16 dev eth0 proto kernel scope link src 169.254.2.15
+ cat /etc/resolv.conf
nameserver 169.254.2.3
+ lsmod
Module Size Used by
libcrc32c 16384 0
crc8 16384 0
crc7 16384 0
crc64 16384 0
crc4 16384 0
crc_itu_t 16384 0
virtiofs 28672 0
virtio_input 16384 0
virtio_scsi 24576 1
virtio_rpmsg_bus 24576 0
rpmsg_core 16384 1 virtio_rpmsg_bus
virtio_pmem 16384 0
nd_virtio 16384 1 virtio_pmem
nd_pmem 24576 0
nd_btt 28672 1 nd_pmem
virtio_net 53248 0
net_failover 20480 1 virtio_net
failover 16384 1 net_failover
virtio_crypto 28672 0
crypto_engine 16384 1 virtio_crypto
virtio_rng 16384 0
virtio_blk 20480 0
nfit 65536 0
crc32_generic 16384 0
crct10dif_pclmul 16384 1
crc32_pclmul 16384 0
+ date
Sun Mar 28 20:52:32 UTC 2021
+ echo -n 'clocksource: '
clocksource: + cat
/sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock
+ echo -n 'uptime: '
uptime: + cat /proc/uptime
1.32 0.20
+ cmd=guestfsd
++ grep -Eo 'guestfs_channel=[^[:space:]]+' /proc/cmdline
+ eval
+ test x '!=' x
+ test 1 = 1
+ cmd='guestfsd --verbose'
+ test 1 = 1
+ cmd='guestfsd --verbose --network'
+ false
+ test '' = 1
+ echo guestfsd --verbose --network
guestfsd --verbose --network
+ guestfsd --verbose --network
lvm_system_dir = /tmp/lvm
OCaml daemon loaded
trying to open virtio-serial channel
'/dev/virtio-ports/org.libguestfs.channel.0'
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
libguestfs: recv_from_daemon: received GUESTFS_LAUNCH_FLAG
libguestfs: appliance is up
libguestfs: trace: v2v: launch = 0
libguestfs: trace: v2v: c_pointer
libguestfs: trace: v2v: c_pointer = 94918560721792
libguestfs: trace: v2v: list_partitions
guestfsd: <= list_partitions (0x8) request length 40 bytes
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
libguestfs: trace: v2v: list_partitions = []
[ 2.1] Inspecting the overlay
libguestfs: trace: v2v: inspect_os
guestfsd: => list_partitions (0x8) took 0.03 secs
guestfsd: <= inspect_os (0x1e0) request length 40 bytes
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
command: blkid '-c' '/dev/null' '-o' 'value' '-s' 'TYPE' '/dev/sda'
command: blkid returned 0
command: blkid: stdout:
ext3
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
command: lvm 'lvs' '--help'
command: lvm returned 0
command: lvm: stdout:
lvs - Display information about logical volumes
lvs
\t[ -H|--history ]
\t[ -a|--all ]
\t[ -o|--options String ]
\t[ -S|--select String ]
\t[ -O|--sort String ]
\t[ --segments ]
\t[ --aligned ]
\t[ --binary ]
\t[ --configreport log|vg|lv|pv|pvseg|seg ]
\t[ --foreign ]
\t[ --ignorelockingfailure ]
\t[ --logonly ]
\t[ --nameprefixes ]
\t[ --noheadings ]
\t[ --nosuffix ]
\t[ --readonly ]
\t[ --reportformat basic|json ]
\t[ --rows ]
\t[ --separator String ]
\t[ --shared ]
\t[ --unbuffered ]
\t[ --units r|R|h|H|b|B|s|S|k|K|m|M|g|G|t|T|p|P|e|E ]
\t[ --unquoted ]
\t[ COMMON_OPTIONS ]
\t[ VG|LV|Tag ... ]
Common options for lvm:
\t[ -d|--debug ]
\t[ -h|--help ]
\t[ -q|--quiet ]
\t[ -v|--verbose ]
\t[ -y|--yes ]
\t[ -t|--test ]
\t[ --commandprofile String ]
\t[ --config String ]
\t[ --driverloaded y|n ]
\t[ --nolocking ]
\t[ --lockopt String ]
\t[ --longhelp ]
\t[ --profile String ]
\t[ --version ]
Use --longhelp to show all options and advanced commands.
command: lvm 'lvs' '-o' 'vg_name,lv_name' '-S' 'lv_role=public &&
lv_skip_activation!=yes' '--noheadings' '--separator' '/'
[ 1.670260] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
command: lvm returned 0
check_for_filesystem_on: /dev/sda (ext3)
command: mount '-o' 'ro' '/dev/sda' '/sysroot//'
[ 1.685155] EXT4-fs (sda): mounting ext3 file system using the ext4 subsystem
[ 1.699427] EXT4-fs (sda): mounted filesystem with ordered data
mode. Opts: (null)
command: mount returned 0
chroot: /sysroot: running 'is_file: /grub/menu.lst'
chroot: /sysroot: running 'is_file: /grub/grub.conf'
chroot: /sysroot: running 'is_file: /grub2/grub.cfg'
chroot: /sysroot: running 'is_dir: /etc'
chroot: /sysroot: running 'is_dir: /bin'
chroot: /sysroot: running 'is_file: /etc/freebsd-update.conf'
chroot: /sysroot: running 'is_dir: /etc'
chroot: /sysroot: running 'is_dir: /bin'
chroot: /sysroot: running 'is_file: /netbsd'
chroot: /sysroot: running 'is_dir: /etc'
chroot: /sysroot: running 'is_dir: /bin'
chroot: /sysroot: running 'is_file: /bsd'
chroot: /sysroot: running 'is_file: /hurd/console'
chroot: /sysroot: running 'is_dir: /etc'
chroot: /sysroot: running 'is_dir: /bin'
chroot: /sysroot: running 'is_file: /service/vm'
chroot: /sysroot: running 'is_dir: /etc'
chroot: /sysroot: running 'is_dir: /bin'
chroot: /sysroot: running 'is_file: /etc/fstab'
check_filesystem: /dev/sda matched Linux root
check_tests: checking /etc/os-release
chroot: /sysroot: running 'is_file: /etc/os-release'
chroot: /sysroot: running 'parse_os_release'
parse_version_from_major_minor: parsing '18.04'
chroot: /sysroot: running 'is_file: /bin/bash'
chroot: /sysroot: running 'realpath: /bin/bash'
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /bin/bash
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
chroot: /sysroot: running 'file: /bin/bash'
command: file '-zb' '/sysroot//bin/bash'
command: file returned 0
command: file: stdout:
ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically
linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0,
BuildID[sha1]=12f73d7a8e226c663034529c8dd20efec22dde54, stripped
chroot: /sysroot: running 'is_file: /etc/fstab'
chroot: /sysroot: running 'check_fstab_aug'
chroot: /sysroot: running 'is_file: /etc/mdadm.conf'
chroot: /sysroot: running 'is_file: /etc/mdadm/mdadm.conf'
augeas pathexpr = /augeas/load/*[ "/etc/fstab/" !~ regexp('^') +
glob(incl) + regexp('/.*') ]
check_fstab_entry: augeas path: /files/etc/fstab/4
check_fstab_entry: spec=/dev/xvda2
check_fstab_entry: mp=/
resolve_fstab_device: /dev/xvda2 matched xdev
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
check_fstab_entry: vfstype=ext3
check_fstab_entry: augeas path: /files/etc/fstab/3
check_fstab_entry: spec=/dev/xvda1
check_fstab_entry: mp=none
resolve_fstab_device: /dev/xvda1 matched xdev
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
check_fstab_entry: vfstype=swap
check_fstab_entry: augeas path: /files/etc/fstab/2
check_fstab_entry: spec=devpts
check_fstab_entry: mp=/dev/pts
check_fstab_entry: augeas path: /files/etc/fstab/1
check_fstab_entry: spec=proc
check_fstab_entry: mp=/proc
chroot: /sysroot: running 'check_hostname_from_file: /etc/HOSTNAME'
chroot: /sysroot: running 'check_hostname_from_file: /etc/hostname'
command: umount '/sysroot'
command: umount returned 0
inspect_os: fses:
fs: /dev/sda (ext3) role: root
type: linux
distro: ubuntu
package_format: deb
package_management: apt
product_name: Ubuntu 18.04.5 LTS
version: 18.4
arch: x86_64
hostname: dev
fstab: [(/dev/sda2, /), (/dev/sda1, none)]
inspect_get_roots: roots:
/dev/sda (ext3):
type: linux
distro: ubuntu
package_format: deb
package_management: apt
product_name: Ubuntu 18.04.5 LTS
version: 18.4
arch: x86_64
hostname: dev
fstab: [(/dev/sda2, /), (/dev/sda1, none)]
glibguestfs: trace: v2v: inspect_os = ["/dev/sda"]
libguestfs: trace: v2v: inspect_get_format "/dev/sda"
uestfsd: => inspect_os (0x1e0) took 0.91 secs
guestfsd: <= inspect_get_format (0x1e2) request length 52 bytes
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
libguestfs: trace: v2v: inspect_get_format = "installed"
libguestfs: trace: v2v: inspect_get_type "/dev/sda"
guestfsd: => inspect_get_format (0x1e2) took 0.01 secs
guestfsd: <= inspect_get_type (0x1e3) request length 52 bytes
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
libguestfs: trace: v2v: inspect_get_type = "linux"
libguestfs: trace: v2v: inspect_get_mountpoints "/dev/sda"
guestfsd: => inspect_get_type (0x1e3) took 0.02 secs
guestfsd: <= inspect_get_mountpoints (0x1f4) request length 52 bytes
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
libguestfs: trace: v2v: inspect_get_mountpoints = ["/", "/dev/sda2"]
libguestfs: trace: v2v: mount "/dev/sda2" "/"
guestfsd: => inspect_get_mountpoints (0x1f4) took 0.02 secs
guestfsd: <= mount (0x1) request length 64 bytes
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda2
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
guestfsd: error: mount_stub: /dev/sda2: No such file or directory
guestfsd: => mount (0x1) took 0.02 secs
libguestfs: trace: v2v: mount = -1 (error)
virt-v2v: error: mount: mount_stub: /dev/sda2: No such file or directory
rm -rf '/var/tmp/null.J53Gnj'
libguestfs: trace: v2v: close
libguestfs: closing guestfs handle 0x5653f3182b80 (state 2)
libguestfs: trace: v2v: internal_autosync
guestfsd: <= internal_autosync (0x11a) request length 40 bytes
umount-all: /proc/mounts: fsname=/dev/root dir=/ type=ext2
opts=rw,noatime freq=0 passno=0
umount-all: /proc/mounts: fsname=/proc dir=/proc type=proc
opts=rw,relatime freq=0 passno=0
umount-all: /proc/mounts: fsname=/sys dir=/sys type=sysfs
opts=rw,relatime freq=0 passno=0
umount-all: /proc/mounts: fsname=tmpfs dir=/run type=tmpfs
opts=rw,nosuid,relatime,size=426952k,mode=755 freq=0 passno=0
umount-all: /proc/mounts: fsname=/dev dir=/dev type=devtmpfs
opts=rw,relatime,size=1063092k,nr_inodes=265773,mode=755 freq=0
passno=0
umount-all: /proc/mounts: fsname=/dev/pts dir=/dev/pts type=devpts
opts=rw,relatime,mode=600,ptmxmode=000 freq=0 passno=0
umount-all: /proc/mounts: fsname=shmfs dir=/dev/shm type=tmpfs
opts=rw,relatime freq=0 passno=0
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sdb
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle -E /dev/sda
Unknown filesystem type 62656572 mounted on /sys/fs/cgroup.
fsync /dev/sda
libguestfs: trace: v2v: internal_autosync = 0
libguestfs: sending SIGTERM to process 44708
libguestfs: qemu maxrss 289700K
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /tmp/libguestfsOKTdUh
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /tmp/libguestfs87owGj
libguestfs: trace: close
libguestfs: closing guestfs handle 0x5653f3182420 (state 0)
libguestfs: trace: close
libguestfs: closing guestfs handle 0x5653f3181940 (state 0)
libguestfs: trace: close
libguestfs: closing guestfs handle 0x5653f3181310 (state 0)
libguestfs: trace: close
libguestfs: closing guestfs handle 0x5653f3180720 (state 0)
libguestfs: trace: close
libguestfs: closing guestfs handle 0x5653f317ff80 (state 0)
#
3 years, 8 months
Re: [Libguestfs] question about guestfs_add_drive_opts_blocksize
by Richard W.M. Jones
On Fri, Mar 26, 2021 at 09:57:47AM -0600, Stefan Fiala wrote:
> I want to do some work with 4K blocksize devices (real and virtual). I found
> examples/create_disk.c
> then found it didn't contain the blocksize option. I have Ubuntu 20.04
> guestfish version 1.40.2. I investigated and found a recent checkin 1.45.2 that
> adds this option.
Do you mean this one?
commit 94843f155aa72d75d693a96f7b11ceb7558837f0
Author: Nikolay Ivanets
Date: Tue Feb 11 16:12:24 2020 +0200
lib: add support for disks with 4096 bytes sector size
> I then rebuilt libguestfs from scratch using tag V1.45.2.
> I noted the warning not to "make install" it and stopped.
>
> I don't see how to build create_disk.c against a libguesfs.a version 1.45.2.
> The faq/etc talk about running a self-compiled program using ./run but not how
> to make such a program with a different version.
You can just do something like:
gcc create_disk.c -L lib/.libs -lguestfs -o create_disk
./run ./create_disk
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top
3 years, 8 months
Error running virt-v2v
by Eoghan O'Hara
Hi,
I am currently unable to run virt-v2v. See output below:
$ export LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1
$ sudo virt-v2v -i ova
/home/path/kx-platform-vm-20210318-123942/kx-platform-vm-20210318-123942.ova
-o libvirt -of qcow2 -os Appliances -n default
[sudo] password for ib-poc:
[ 0.0] Opening the source -i ova
/home/path/kx-platform-vm-20210318-123942/kx-platform-vm-20210318-123942.ova
virt-v2v: warning: making OVA directory public readable to work around
libvirt bug https://bugzilla.redhat.com/1045069
virt-v2v: warning: could not parse ovf:Name from OVF document
[ 2.5] Creating an overlay to protect the source from being modified
[ 2.6] Opening the overlay
[ 6.5] Inspecting the overlay
[ 17.3] Checking for sufficient free disk space in the guest
[ 17.3] Estimating space required on target for each disk
[ 17.3] Converting CentOS Linux release 7.9.2009 (Core) to run on KVM
virt-v2v: This guest has virtio drivers installed.
[ 64.0] Mapping filesystem data to avoid copying unused and blank areas
[ 64.8] Closing the overlay
[ 65.1] Assigning disks to buses
[ 65.1] Checking if the guest needs BIOS or UEFI to boot
[ 65.1] Initializing the target -o libvirt -os Appliances
[ 65.1] Copying disk 1/1 to
/datassd/3/libvirt/Appliances/kx-platform-vm-20210318-123942-sda (qcow2)
virt-v2v: error: libguestfs error: qemu-img:
/datassd/3/libvirt/Appliances/kx-platform-vm-20210318-123942-sda: qemu-img
exited with error status 1.
To see full error messages you may need to enable debugging.
Do:
export LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1
and run the command again. For further information, read:
http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs
You can also run 'libguestfs-test-tool' and post the *complete* output
into a bug report or message to the libguestfs mailing list.
If reporting bugs, run virt-v2v with debugging enabled and include the
complete output:
virt-v2v -v -x [...]
I also ran libguestfs-test-tool as suggested. The output is attached.
Any assistance on this would be greatly appreciated.
Regards,
Eoghan
Eoghan O'Hara | Data Scientist | *Kx* | +353 858398926 | eohara(a)kx.com |
Pronounced "oh-an"
3 years, 8 months
Re: [Libguestfs] virt-v2v didn't find vmdk file (#5)
by Richard W.M. Jones
On Fri, Mar 19, 2021 at 07:09:47AM -0700, gbeck75 wrote:
> Converting a VMware guest from vmx+vmdk file failed claiming there is no disk:
>
> $ virt-v2v -i vmx KR\ C,\ V8.3.OL_Build07.vmx -o qemu -os qemu -v -x
> virt-v2v: virt-v2v 1.43.4 (x86_64)
> libvirt version: 7.0.0
> [ 0.0] Opening the source -i vmx KR C, V8.3.OL_Build07.vmx
> VMX file:
> .encoding = "windows-1252"
> config.version = "8"
> virtualHW.version = "7"
> scsi0.present = "TRUE"
> scsi0.virtualDev = "lsisas1068"
Assume this one is a CD?
...
> ide0:0.present = "TRUE"
> ide0:0.fileName = "KR C, V8.3.OL_Build07.vmdk"
It probably should be picking this up as the hard disk. However
there's a missing ide0:0.deviceType field. See the code here:
https://github.com/libguestfs/virt-v2v/blob/ab825d5e13b2106a1f39300ec2ee7...
Is this a VMX file from a VMware system, and what kind of
VMware system?
Anyway you can probably make it work by adding:
ide0:0.deviceType = "ata-hardDisk"
although it's a bit of a mystery why that attribute is missing. I
notice the SCSI (CD?) also lacks the expected deviceType.
Rich.
> ethernet0.present = "TRUE"
> ethernet0.connectionType = "bridged"
> ethernet0.virtualDev = "e1000"
> ethernet0.wakeOnPcktRcv = "FALSE"
> ethernet0.addressType = "generated"
> usb.present = "TRUE"
> ehci.present = "TRUE"
> sound.present = "TRUE"
> sound.startConnected = "FALSE"
> sound.fileName = "-1"
> sound.autodetect = "TRUE"
> mks.enable3d = "FALSE"
> serial0.present = "TRUE"
> serial0.fileType = "thinprint"
> pciBridge0.present = "TRUE"
> pciBridge4.present = "TRUE"
> pciBridge4.virtualDev = "pcieRootPort"
> pciBridge4.functions = "8"
> pciBridge5.present = "TRUE"
> pciBridge5.virtualDev = "pcieRootPort"
> pciBridge5.functions = "8"
> pciBridge6.present = "TRUE"
> pciBridge6.virtualDev = "pcieRootPort"
> pciBridge6.functions = "8"
> pciBridge7.present = "TRUE"
> pciBridge7.virtualDev = "pcieRootPort"
> pciBridge7.functions = "8"
> vmci0.present = "TRUE"
> roamingVM.exitBehavior = "go"
> displayName = "KR C, V8.3.OL_Build07"
> guestOS = "windows7"
> nvram = "KR C, V8.3.OL_Build06.nvram"
> virtualHW.productCompatibility = "hosted"
> printers.enabled = "TRUE"
> easyInstall.keepFloppy = "TRUE"
> extendedConfigFile = "KR C, V8.3.OL_Build07.vmxf"
> numvcpus = "2"
> cpuid.coresPerSocket = "2"
> ethernet0.generatedAddress = "00:0c:29:b2:85:86"
> tools.syncTime = "FALSE"
> uuid.location = "56 4d 1f 4a 50 65 9e ae-4c 73 72 86 4c b2 85 86"
> uuid.bios = "56 4d 1f 4a 50 65 9e ae-4c 73 72 86 4c b2 85 86"
> cleanShutdown = "TRUE"
> replay.supported = "FALSE"
> unity.wasCapable = "FALSE"
> replay.filename = ""
> ide0:0.redo = ""
> pciBridge0.pciSlotNumber = "17"
> pciBridge4.pciSlotNumber = "21"
> pciBridge5.pciSlotNumber = "22"
> pciBridge6.pciSlotNumber = "23"
> pciBridge7.pciSlotNumber = "24"
> scsi0.pciSlotNumber = "160"
> usb.pciSlotNumber = "32"
> ethernet0.pciSlotNumber = "33"
> sound.pciSlotNumber = "34"
> ehci.pciSlotNumber = "35"
> vmci0.pciSlotNumber = "36"
> scsi0.sasWWID = "50 05 05 6a 50 65 9e a0"
> vmotion.checkpointFBSize = "16777216"
> usb:0.present = "TRUE"
> usb:1.present = "TRUE"
> ethernet0.generatedAddressOffset = "0"
> vmci0.id = "761629234"
> usb:1.deviceType = "hub"
> usb:0.deviceType = "mouse"
> ethernet0.linkStatePropagation.enable = "TRUE"
> isolation.tools.hgfs.disable = "TRUE"
> sharedFolder.maxNum = "1"
> hgfs.mapRootShare = "FALSE"
> sharedFolder0.present = "FALSE"
> ide1:0.present = "FALSE"
> floppy0.present = "FALSE"
>
> parsed VMX tree:
> namespace '':
> encoding = "windows-1252"
> cleanshutdown = "TRUE"
> namespace 'config':
> version = "8"
> namespace 'cpuid':
> corespersocket = "2"
> displayname = "KR C, V8.3.OL_Build07"
> namespace 'easyinstall':
> keepfloppy = "TRUE"
> namespace 'ehci':
> pcislotnumber = "35"
> present = "TRUE"
> namespace 'ethernet0':
> addresstype = "generated"
> connectiontype = "bridged"
> generatedaddress = "00:0c:29:b2:85:86"
> generatedaddressoffset = "0"
> namespace 'linkstatepropagation':
> enable = "TRUE"
> pcislotnumber = "33"
> present = "TRUE"
> virtualdev = "e1000"
> wakeonpcktrcv = "FALSE"
> extendedconfigfile = "KR C, V8.3.OL_Build07.vmxf"
> namespace 'floppy0':
> present = "FALSE"
> guestos = "windows7"
> namespace 'hgfs':
> maprootshare = "FALSE"
> namespace 'ide0:0':
> filename = "KR C, V8.3.OL_Build07.vmdk"
> present = "TRUE"
> redo = ""
> namespace 'ide1:0':
> present = "FALSE"
> namespace 'isolation':
> namespace 'tools':
> namespace 'hgfs':
> disable = "TRUE"
> namespace 'mem':
> hotadd = "TRUE"
> memsize = "2048"
> namespace 'mks':
> enable3d = "FALSE"
> numvcpus = "2"
> nvram = "KR C, V8.3.OL_Build06.nvram"
> namespace 'pcibridge0':
> pcislotnumber = "17"
> present = "TRUE"
> namespace 'pcibridge4':
> functions = "8"
> pcislotnumber = "21"
> present = "TRUE"
> virtualdev = "pcieRootPort"
> namespace 'pcibridge5':
> functions = "8"
> pcislotnumber = "22"
> present = "TRUE"
> virtualdev = "pcieRootPort"
> namespace 'pcibridge6':
> functions = "8"
> pcislotnumber = "23"
> present = "TRUE"
> virtualdev = "pcieRootPort"
> namespace 'pcibridge7':
> functions = "8"
> pcislotnumber = "24"
> present = "TRUE"
> virtualdev = "pcieRootPort"
> namespace 'printers':
> enabled = "TRUE"
> namespace 'replay':
> filename = ""
> supported = "FALSE"
> namespace 'roamingvm':
> exitbehavior = "go"
> namespace 'scsi0':
> pcislotnumber = "160"
> present = "TRUE"
> saswwid = "50 05 05 6a 50 65 9e a0"
> virtualdev = "lsisas1068"
> namespace 'serial0':
> filetype = "thinprint"
> present = "TRUE"
> namespace 'sharedfolder':
> maxnum = "1"
> namespace 'sharedfolder0':
> present = "FALSE"
> namespace 'sound':
> autodetect = "TRUE"
> filename = "-1"
> pcislotnumber = "34"
> present = "TRUE"
> startconnected = "FALSE"
> namespace 'tools':
> synctime = "FALSE"
> namespace 'unity':
> wascapable = "FALSE"
> namespace 'usb':
> pcislotnumber = "32"
> present = "TRUE"
> namespace 'usb:0':
> devicetype = "mouse"
> present = "TRUE"
> namespace 'usb:1':
> devicetype = "hub"
> present = "TRUE"
> namespace 'uuid':
> bios = "56 4d 1f 4a 50 65 9e ae-4c 73 72 86 4c b2 85 86"
> location = "56 4d 1f 4a 50 65 9e ae-4c 73 72 86 4c b2 85 86"
> namespace 'virtualhw':
> productcompatibility = "hosted"
> version = "7"
> namespace 'vmci0':
> id = "761629234"
> pcislotnumber = "36"
> present = "TRUE"
> namespace 'vmotion':
> checkpointfbsize = "16777216"
> source name: KR C, V8.3.OL_Build07
> hypervisor type: vmware
> VM genid:
> memory: 2147483648 (bytes)
> nr vCPUs: 2
> CPU vendor:
> CPU model:
> CPU topology: sockets: 1 cores/socket: 2 threads/core: 1
> CPU features:
> firmware: bios
> display:
> video:
> sound:
> disks:
>
> removable media:
>
> NICs:
> Bridge "ethernet0" mac: 00:0c:29:b2:85:86 [e1000]
>
> virt-v2v: error: source has no hard disks!
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub, or unsubscribe.*
>
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html
3 years, 8 months
error invalid partition data while using libguestfs-tools
by 钱非凡
I'm trying to upload a file to guest os by using libguestfs api. but a partition error occurs during the `virt-copy-in` command. it seems its some problems with the `sgdisk` command, but i have no idea how to fix this. is this some problems with the host os or the guest os? or maybe is the version of libguestfs? btw, my host os is centos 7.6 with libguestfs 1.40.
```
$ virt-copy-in -d 138093b9b33345c38e58efa014036bd8 1.txt /root/
libguestfs: error: inspect_os: sgdisk: Invalid partition data!
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
$ yum list installed | grep libguestfs
libguestfs.x86_64 1:1.40.2-10.el7 @base
...
```
and after turning on LIBGUESTFS_DEBUG and LIBGUESTFS_TRACE flag, i found out the error was happening which calling `guestfs_inspect_os()` function. but i still dont know how to fix this. here are part of the output:
```
...
calling: settle
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
calling: settle
command: sfdisk '--print-id' '/dev/sdb' '1'
[ 2.400992] sdb: sdb1 sdb2
command: sfdisk returned 0
command: sfdisk: stdout:
0
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
calling: settle
commandrvf: stdout=n stderr=y flags=0x0
commandrvf: udevadm --debug settle
calling: settle
command: fold-stdout-on-stderr sgdisk '/dev/sdb' '-i' '1'
[ 2.427088] sdb: sdb1 sdb2
command: sgdisk returned 2
command: sgdisk: stderr:
Invalid partition data!
ocaml_exn: 'inspect_os' raised 'Failure' exception
guestfsd: error: sgdisk: Invalid partition data!
guestfsd: => inspect_os (0x1e0) took 0.41 secs
libguestfs: trace: inspect_os = NULL (error)
libguestfs: error: inspect_os: sgdisk: Invalid partition data!
...
```
3 years, 8 months