我想要运行一个虚拟机,有 3 个要求:
- 能够在主机和虚拟机之间复制/粘贴
- 运行两个监视器(两个独立的窗口)
- 仅 CLI(没有像 virt-manager 这样的 GUI 管理器)
为此,我使用了以下选项:
-device virtio-serial-pci
-spice port=5930,disable-ticketing=on
-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0
-chardev spicevmc,id=spicechannel0,name=vdagent
-vga none -device qxl-vga,vgamem_mb=32
--enable-kvm -cpu host -m 6G
我把它与spicy -h 127.0.0.1 -p 5930
复制/粘贴效果很好,但我只有一个监视器。在客户机上,通过运行xrandr
我可以看到:
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
Virtual-0 connected primary 1024x768+0+0 0mm x 0mm
1024x768 59.95*+
1920x1200 59.95
1920x1080 60.00
1600x1200 59.95
1680x1050 60.00
1400x1050 60.00
1280x1024 59.95
1440x900 59.99
1280x960 59.99
1280x854 59.95
1280x800 59.96
1280x720 59.97
1152x768 59.95
800x600 59.96
848x480 59.94
720x480 59.94
640x480 59.94
Virtual-1 disconnected
Virtual-2 disconnected
Virtual-3 disconnected
也许我可以连接到 Virtual-1?如何添加第二台显示器?
编辑:我在 archlinux 上使用 awesomeWM
编辑:在客户机中,我尝试将显示“Virtual-2”与 vnc 服务器关联以获得我的第二个显示器:
$ xrandr --addmode Virtual-2 1920x1080
$ xrandr --output Virtual-2 --mode 1920x1080 --right-of Virtual-1
$ xrandr | grep Virtual-2
Virtual-2 disconnected 1920x1080+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
$ x11vnc -multiptr -display :0 -clip 1920x1080+1920+0
但当我尝试连接时,屏幕变黑了。请注意,如果我对 Virtual-1 显示器执行相同的操作,它会正常工作。
答案1
我最近尝试设置一个带有多个视频头的虚拟机。
我找到了一系列博客文章来解释如何做到这一点:https://linux-blog.anracom.com/2017/07/06/kvmqemu-mit-qxl-hohe-aufloesungen-und-virtuelle-monitore-im-gastsystem-definieren-und-nutzen-i/
不幸的是,它是用德语写的,我看不懂这种语言。不过,一些自动在线翻译工具帮助了我,我终于成功运行了一台有两个头的虚拟机。
据我了解,你遗漏了两件事:
- 您需要配置
qxl-vga
设备以使用该max_outputs=2
选项启用两个头(最多可以使用 4 个值)。 - 您必须使用支持通过单个连接进行多显示器显示的 Spice 客户端。(在我的 Debian 主机上,软件包
remote-viewer
中virt-viewer
的 可以,但spicy
不可以。)
作为参考,下面是我用来启动 Ubuntu 客户机的命令,具有双头支持:
qemu-system-x86_64 -machine q35,accel=kvm -cpu host -smp 1 -m size=4G \
-audiodev driver=spice,id=audio -device intel-hda -device hda-duplex,audiodev=audio \
-blockdev driver=raw,node-name=ubuntu,file.driver=file,file.filename=Downloads/ubuntu-22.04.1-desktop-amd64.iso \
-device ide-cd,drive=ubuntu \
-vga none -device qxl-vga,vgamem_mb=64,ram_size_mb=256,vram_size_mb=128,max_outputs=2 \
-device piix4-usb-uhci -device usb-tablet \
-display none -spice port=5900,addr=127.0.0.1,disable-ticketing \
-chardev spicevmc,id=charchannel0,name=vdagent \
-device virtio-serial-pci,id=virtio-serial0 -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0