什么都不会在qemu

时间:2018-02-19 22:32:24

标签: qemu

从硬盘驱动器到ISO,甚至是实际的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 个答案:

答案 0 :(得分:0)

这里的关键线索是“./WIN_VM/win7vm.sh:line 24:-m:command not found”。这是产生此错误的shell,这意味着它尝试执行以“-m size = 4G”开头的行作为它自己的命令。为什么这样做?因为您在前一行中缺少行继续'\'字符。因此shell运行QEMU只有前四行选项,其中不包括任何设置磁盘的内容,因此在QEMU内运行的BIOS正确报告没有任何磁盘。然后shell尝试将其余的选项行作为单独的命令运行,然后抱怨。

在脚本中,“-drive if = virtio,id = disk0”行的末尾还有第二个缺失的'\',这就是导致shell发出第二次投诉的原因。你应该仔细检查脚本中的所有行,以确保它们的尾随'\',并且每个'\'后面都没有杂散的空格。

“未知密钥码”(未命名)“”部分几乎肯定是无害的,您可以忽略它,除非您发现某些密钥在访客中不起作用。 (较新版本的QEMU从上游git中的代码开始,可能会避免报告此无用的错误消息。)