QEMU ничего не загрузит на передаче GPU VM

Я пытался установить Windows 7 VM с передачей GPU на Ubuntu 17.10 и не имел никакого успеха, заставляя что-либо загрузиться, от жестких дисков, к ISOs, даже к фактическим DVD. Я получаю тот же результат каждый раз, QEMU, говорящий сообщение мне нет никаких загрузочных устройств.

Вот мой исполняемый файл для VM:

 #!/bin/bash

vmname="windows7vm"

if ps -A | grep -q $vmname; then
echo "$vmname is already running." &
exit 1

else

# use pulseaudio
export QEMU_AUDIO_DRV=pa
export QEMU_PA_SAMPLES=8192
export QEMU_AUDIO_TIMER_PERIOD=99
export QEMU_PA_SERVER=/run/user/1000/pulse/native

cp /usr/share/OVMF/OVMF_VARS.fd /tmp/my_vars.fd

qemu-system-x86_64 \
-name $vmname,process=$vmname \
-machine type=pc,accel=kvm \
-cpu host \
-smp 3,sockets=1,cores=3,threads=1
-m size=4G \
-mem-path /run/hugepages/kvm \
-mem-prealloc \
-balloon none \
-rtc clock=host,base=localtime \
-vga none \
-nographic \
-serial none \
-parallel none \
-soundhw hda \
-usb -usbdevice host:1532:0214 -usbdevice host:1532:0043 \
-device vfio-pci,host=04:00.0,multifunction=on \
-device vfio-pci,host=04:00.1 \
-drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=/tmp/my_vars.fd \
-boot order=dc \
-drive if=virtio,id=disk0,cache=none,format=raw,file=/dev/sdb
-drive file=/home/keith/WIN_VM/win7install.iso,index=1,media=cdrom \
-drive file=/home/keith/WIN_VM/virtio-win-0.1.141.iso,index=2,media=cdrom \

exit 0
fi

QEMU в основном говорит мне

Boot failed: could not read the boot disk
Booting from DVD/CD...
Boot failed: Could not read from CDROM (code 0003)

и позже:

No bootable device.

А также вышеупомянутые проблемы, когда я закрываю окно QEMU, мной встречают

unknown keycodes `(unnamed)', please report to qemu-devel@nongnu.org
./WIN_VM/win7vm.sh: line 24: -m: command not found
./WIN_VM/win7vm.sh: line 41: -drive: command not found

в терминале. Я относительно плохо знаком с большей частью этого материала виртуализации, однако я довольно знаком с Linux. Любые возможные решения приветствуются. Заранее спасибо :)

1
задан 21 February 2018 в 02:39

1 ответ

Ваше длинное qemu вызов пропускает некоторые обратные косые черты продолжения строки, таким образом, полная команда не становится выполненной.

\ (обратная косая черта), которая появляется в конце некоторых строк, указывает, что команда продолжает следующую строку. Когда строка появляется без \ в конце это указывает на конец команды, и следующую строку рассматривают как отдельную команду.

Таким образом случается так, что на строках 24 и 41, удар пытается интерпретировать -m и -drive как команды, соответственно, потому что предыдущие строки отсутствуют \ указать на команду продолжается.

Я думаю, что Вы найдете, что Ваши начальные загрузки VM после вставки этих обратных косых черт.


P.S. Рассмотрите использование libvirt с virt-менеджером (или Поля GNOME) для создания виртуальных машин в будущем, поскольку ими обычно намного легче управлять. В этом случае libvirt будет управлять qemu конфигурацией для Вас, в зависимости от опций, которые Вы настраиваете для каждой машины в virt-менеджере.

1
ответ дан 7 December 2019 в 15:23

Другие вопросы по тегам:

Похожие вопросы: