优先事项:
安全在各个方面都是重中之重。可扩展性、易用性和价格紧随其后,性能也有发言权。
我正在尝试做的事情:
我正在尝试运行Linux的最小安装(因此没有GUI),并运行带有Windows(包括GUI)的虚拟机。 Linux部分只需要负责启动Windows客户端并提供安全性。
我目前正在尝试利用 kvm 来做到这一点。我已经设法让它通过命令行工作,但仅限于桌面系统(例如 GNOME)内。我通过 libvirt (virt-install) 和 virt-viewer 运行它,并使其按照本中所述工作指导。
我正在运行 CentOS atm,但主要是为了选择操作系统,因此欢迎提供具有特定优势的较小映像的建议。
问题:
当我在非桌面环境中尝试上述 2 个选项时,我得到:
Gtk-WARNING **: [current time]: cannot open display:
我尝试进行一些谷歌搜索,但我不断找到有关无头服务器和 X11 的帖子。我并不是想制作一个无头服务器,并且我不确定 X11 应该如何解决我的问题。
要求:
如何在没有 GUI 的系统(没有桌面的 Linux)上从终端启动虚拟机(带 GUI 的 Windows)。
答案1
对于客户端计算机:将运行 VM 上的 MS-Windows。您将需要一台 X11 服务器。
X11服务器
X11 是 Gnu/Linux、Unix、VMS 和其他一些系统上使用的窗口系统的一部分。它结合了画布、键盘、鼠标。 X 服务器不是窗口系统,但需要运行它。
请注意,许多人认为服务器是远程的。这是错误的。 X11 服务器在本地运行。客户端可以远程运行。
窗口系统,例如 Gnome。
由..制作
- 窗口管理器:负责移动、调整大小、降低、升高窗口。
- 任务管理器、开始按钮、通知区域等
您不需要窗口系统,特别是如果您只运行一个窗口。还有其他工具可以使窗口变成全屏。
答案2
我已经使用 xinit 完成了这项工作。它要求您已经安装了 xorg 和 virt-manager。我使用了该命令xinit virt-viewer -- :0 vt${XDG_VTNR}
,效果很好。更多信息请访问https://linuxconfig.org/how-to-run-x-applications-without-a-desktop-or-a-wm
答案3
我读到您有一个运行 Linux 的虚拟机管理程序机器,它将运行一个虚拟机,并且该虚拟机需要有一个图形环境。但虚拟机管理程序没有图形环境,甚至可能没有显示器。
您应该做的是在您自己的工作站上安装 virt-manager,并配置 virt-manager 以与虚拟机管理程序计算机建立连接(通过 ssh 隧道)。然后,您可以从工作站管理该计算机上运行的虚拟机,包括查看虚拟机的图形控制台,以及通过 ssh 隧道发送的所有数据。
答案4
从它的声音来看,您正在尝试在 KVM 上运行 Windows VM,并通过显卡的 PCI 直通,而不由主机操作系统控制它。我个人没有尝试过运行这样的设置,但我知道有些人已经成功地运行了两个显卡并将第二个显卡的控制权交给了虚拟机。
https://heiko-sieger.info/running-windows-10-on-linux-using-kvm-with-vga-passthrough/
在教程中他们提到,UEFI 固件初始化 GPU 并从 GPU 加载修改后的 vBio。如果您尝试通过连接到计算机的唯一 GPU,这可能会导致问题。
启动这些主机平台时,主机 UEFI 会初始化 GPU 并对 GPU 的 vBIOS 进行某种修改的“卷影副本”。稍后,当您启动 VM 时,Linux 会将这个损坏的影子 BIOS 暴露给来宾 UEFI 加载程序。当您尝试将主(且唯一)GPU 传递给来宾时,也会发生同样的情况。运行 VM 启动脚本时出现以下错误是一个明显的迹象:
qemu-system-x86_64: -device vfio-pci,host=02:00.0,multifunction=on: 无法 mmap 0000:02:00.0 BAR 3. 性能可能很慢