]> git.ipfire.org Git - thirdparty/dracut.git/blob - test/run-qemu
a4e15548ca011c5e5f1c0043c91400ddd7c545df
[thirdparty/dracut.git] / test / run-qemu
1 #!/bin/bash
2 # Check which virtualization technology to use
3 # We prefer kvm, kqemu, userspace in that order.
4 export PATH=/sbin:/bin:/usr/sbin:/usr/bin
5
6 [[ -x /usr/bin/qemu ]] && BIN=/usr/bin/qemu && ARGS=""
7 $(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu && ARGS="-kernel-kqemu "
8 [[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm && ARGS=""
9 [[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm && ARGS=""
10 [[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] && BIN=/usr/libexec/qemu-kvm && ARGS=""
11 [[ -c /dev/kvm && -x /usr/bin/qemu-system-$(uname -i) ]] && BIN=/usr/bin/qemu-system-$(uname -i) && ARGS="-enable-kvm"
12
13 [[ $BIN ]] || {
14 echo "Could not find a working KVM or QEMU to test with!" >&2
15 echo "Please install kvm or qemu." >&2
16 exit 1
17 }
18
19 KVERSION=${KVERSION-$(uname -r)}
20
21 VMLINUZ="/lib/modules/${KVERSION}/vmlinuz"
22
23 if ! [ -f "$VMLINUZ" ]; then
24 [[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id
25
26 if [[ $MACHINE_ID ]] && ( [[ -d /boot/${MACHINE_ID} ]] || [[ -L /boot/${MACHINE_ID} ]] ); then
27 VMLINUZ="/boot/${MACHINE_ID}/$KVERSION/linux"
28 else
29 VMLINUZ="/boot/vmlinuz-${KVERSION}"
30 fi
31 fi
32
33 exec sudo $BIN $ARGS -kernel $VMLINUZ -cpu host "$@"