Subject: Error when starting a vm-image in qemu

From: [email-masked]
Date: Mon, 14 Nov 2016 21:01:31 -0800

I've recently created a VM using guix system vm-image using

$ guix system vm-image --image-size=16G ~/doc/vimwiki/liveusb-guix-sys-conf.wiki

(I will attach the conf file later on). After copying the image to $HOME and
changing perms to 0600, I tried running it using:

history | grep qemu-system
  501  qemu-system-x86_64 --enable-kvm -cpu host -net nic -net user -usb -usbdevice tablet guix-img.qcow 
  502  qemu-system-x86_64 --enable-kvm -cpu host -net help -net user -usb -usbdevice tablet guix-img.qcow 
  505  qemu-system-x86_64 --enable-kvm -cpu host -usb -usbdevice tablet guix-img.qcow 

and in each instance, the system failed to boot (screenshots should be attached
in .png format). The error was related to the network interface. Especially with
command 505, I'd have expected that to resolve the issue since there was no
network interface, but it didn't fix things. Image error.png is the output, and
error2.png is the backtrace (,bt from the prompt).

This is all done with the stable release

$ guix --version
guix (GNU Guix) 20161115.02
Copyright (C) 2016 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

installed on a Gentoo system with qemu compiled with

[ebuild     U  ] app-emulation/qemu-2.7.0-r7::gentoo [2.7.0-r5::gentoo] USE="aio
alsa bluetooth bzip2 caps curl fdt filecaps gnutls gtk jpeg ncurses nls opengl
pin-upstream-blobs png sdl seccomp ssh threads usb uuid vde vhost-net virtfs vnc
xattr -accessibility -debug (-glusterfs) -gtk2 -infiniband -iscsi -lzo -nfs
-numa -pulseaudio -python -rbd -sasl -sdl2 (-selinux) -smartcard -snappy -spice
-static -static-softmmu -static-user -systemtap -tci {-test} -usbredir -virgl
-vte -xen -xfs" LINGUAS="-bg -de_DE -fr_FR -hu -it -tr -zh_CN"
PYTHON_TARGETS="python2_7" QEMU_SOFTMMU_TARGETS="aarch64 arm i386 ppc ppc64
ppcemb x86_64 -alpha -cris -lm32 -m68k -microblaze -microblazeel -mips -mips64
-mips64el -mipsel -moxie -or32 -s390x -sh4 -sh4eb -sparc -sparc64 -tricore
-unicore32 -xtensa -xtensaeb" QEMU_USER_TARGETS="aarch64 arm i386 ppc ppc64
ppc64abi32 x86_64 -alpha -armeb -cris -m68k -microblaze -microblazeel -mips
-mips64 -mips64el -mipsel -mipsn32 -mipsn32el -or32 -ppc64le -s390x -sh4 -sh4eb
-sparc -sparc32plus -sparc64 -tilegx -unicore32"

The config file used is:

;; This is an operating system configuration template
;; for a "bare bones" setup, with no X11 display server.

(use-modules (gnu))
(use-service-modules networking ssh)
(use-package-modules admin)

(operating-system
  (host-name "livesystem")
  (timezone "")
  (locale "en_US.UTF-8")

  ;; Assuming /dev/sdX is the target hard disk, and "my-root" is
  ;; the label of the target root file system.
  (bootloader (grub-configuration (device "/dev/sdX")))
  (file-systems (cons (file-system
                        (device "")
                        (title 'label)
                        (mount-point "/")
                        (type "ext4"))
                      %base-file-systems))

  ;; This is where user accounts are specified.  The "root"
  ;; account is implicit, and is initially created with the
  ;; empty password.
  (users (cons* (user-account
                (name "user")
                (comment "")
                (group "users")

                ;; Adding the account to the "wheel" group
                ;; makes it a sudoer.  Adding it to "audio"
                ;; and "video" allows the user to play sound
                ;; and access the webcam.
                (supplementary-groups '("wheel" "audio" "video" "kvm"))
                (home-directory "/home/user"))
               %base-user-accounts))

  ;; Globally-installed packages.
  (packages (cons* tcpdump %base-packages))

  ;; Add services to the baseline: a DHCP client and
  ;; an SSH server.
  (services (cons* (dhcp-client-service)
                   (lsh-service #:port-number 2222)
                   %base-services)))