Intelligente Lösungen
in neuer Dimension

Virtualisierung mit QEMU

Manchmal muß ich ein paar Tests mit Linux-Distributionen durchführen. Bislang habe ich dafür immer VirtualBox verwendet, das ist eine Art VMWARE-Verschnitt. Jetzt versuche ich mich mal an QEMU, eventuell ist das ja ähnlich gut!

Vorbereitungen

1
2
3
4
5
6
7
8
9
10
cd git/cloned
git clone  git@github.com:wimpysworld/quickemu.git

sudo -s

snap install qemu-virgil --edge
snap connect qemu-virgil:kvm
snap connect qemu-virgil:raw-usb
snap connect qemu-virgil:removable-media
exit

USB-Geräte ermitteln

1
2
3
4
5
6
7
8
9
10
11
12
13
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 003: ID 04e8:61f3 Samsung Electronics Co., Ltd Portable SSD T3 (MU-PT250B, MU-PT500B)
Bus 003 Device 004: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
Bus 003 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. 4-Port USB 3.0 Hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 03f0:322a HP, Inc HP LaserJet Pro MFP M127fw
Bus 002 Device 007: ID 046a:b090 Cherry GmbH Keyboard
Bus 002 Device 006: ID 03f0:0941 HP, Inc X500 Optical Mouse
Bus 002 Device 005: ID 046d:081b Logitech, Inc. Webcam C310
Bus 002 Device 003: ID 0bda:5411 Realtek Semiconductor Corp. 4-Port USB 2.0 Hub
Bus 002 Device 002: ID 047f:0ca1 Plantronics, Inc. USB DSP v4 Audio Interface
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Wir wollen potentiell durchreichen:

  • die Webcam: 046d:081b
  • das Headset: 047f:0ca1

Erste Tests

  • Ubuntu-Server-ISO herunterladen und ablegen
  • Konfigurationsdatei anlegen:
1
2
3
4
5
6
boot="legacy"
    guest_os="linux"
    iso="/media/$USER/Zwischenspeicher/iso/ubuntu-20.04-live-server-amd64.iso"
    disk_img="/media/$USER/Zwischenspeicher/tmp/focal-server-amd64.qcow2"
    disk=128G
    usb_devices=("046d:081b" "047f:0ca1")
  • Installation starten: ~/git/cloned/quickemu/quickemu --vm ubuntu-focal-server.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Starting ubuntu-focal-server.conf
     - QEMU:     /snap/bin/qemu-virgil v4.2.0
     - BOOT:     Legacy BIOS
     - Guest:    Linux optimised
     - Disk:     /media/uli/Zwischenspeicher/tmp/focal-server-amd64.qcow2 (128G)
                 Just created, booting from /media/uli/Zwischenspeicher/iso/ubuntu-20.04-live-server-amd64.iso
     - Boot:     /media/uli/Zwischenspeicher/iso/ubuntu-20.04-live-server-amd64.iso
     - CPU:      2 Core(s)
     - RAM:      2G
     - Screen:   3200x1800
     - Video:    virtio-vga
     - GL:       ON
     - Virgil3D: ON
     - Display:  SDL
     - smbd:     /home/uli will be exported to the guest via smb://10.0.2.4/qemu
     - ssh:      22228/tcp is connected. Login via 'ssh user@localhost -p 22228'
     - USB:      Device pass-through requested:
                  - Logitech, Inc. Webcam C310
                  - Plantronics, Inc. USB DSP v4 Audio Interface
                 Requested USB device(s) are NOT accessible.
                 /tmp/tmp.7imOhT6pwl will be executed to enable access:
    
    #!/usr/bin/env bash
    chown root:uli /dev/bus/usb/002/005
    chown root:uli /dev/bus/usb/002/002
    
    gl_version 45 - core profile enabled

Nach der Installation gibt es einige Auffälligkeiten:

  • Die Installation verbraucht ungewöhnlich viel Plattenplatz – erwartet: Max 1GB, verbraucht: Über 4GB
1
2
3
4
$ ls -lh *qcow2
    -rwxrwxrwx 1 uli uli 4,6G Jul 19 09:20 focal-server-amd64.qcow2
    $ du -h *qcow2
    4,6G  focal-server-amd64.qcow2

Probleme

Installation verbraucht viel Plattenplatz

Erwartet: Max 1GB, verbraucht: Über 4GB

Ich habe das getestet auf:

  • exfat – 4.7 GB
  • ext4 – 4.7 GB

Disk kann nicht angelegt werden in /tmp/{unterverzeichnis}

1
2
3
4
5
6
7
Starting qemu-src/ubuntu-focal-server.conf
 - QEMU:     /snap/bin/qemu-virgil v4.2.0
 - BOOT:     Legacy BIOS
 - Guest:    Linux optimised
 - Disk:     /tmp/qemu-img/focal-server-amd64.qcow2 (128G)
qemu-img: /tmp/qemu-img/focal-server-amd64.qcow2: Could not create file: No such file or directory
ERROR! Failed to create /tmp/qemu-img/focal-server-amd64.qcow2

“qemu-virgil” ist ein SNAP-Paket. Innerhalb von “qemu-virgil” wird /tmp umgehängt!

/tmp im Snap entspricht /tmp/snap.qemu-virgil/tmp auf dem Host!

Links