![我可以在虚拟机中运行桌面操作系统,就像在裸机上运行一样吗?](https://linux22.com/image/858928/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%AD%E8%BF%90%E8%A1%8C%E6%A1%8C%E9%9D%A2%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%EF%BC%8C%E5%B0%B1%E5%83%8F%E5%9C%A8%E8%A3%B8%E6%9C%BA%E4%B8%8A%E8%BF%90%E8%A1%8C%E4%B8%80%E6%A0%B7%E5%90%97%EF%BC%9F.png)
我想在 Ubuntu 主机(桌面或服务器)上运行桌面 Ubuntu VM;同时看起来像是在裸机上运行一样。这样做的原因是我想将关键进程移交给主机;在那里我无法中断它们的运行(我可以,但我必须专门登录到主机系统才能做到这一点;而且大多数时候我会在 VM 中工作),并且它们不会受到系统重启等事件的困扰。
我想使用 KVM 虚拟化,因为这是我在服务器上熟悉的。
我认为我需要 VGA 直通才能获得接近原生的性能?我可以在仅配备集成英特尔显卡的笔记本电脑上实现这一点吗?
我更喜欢可以自动化的命令行解决方案。
答案1
您正在寻找Linux 容器:
容器是一种轻量级虚拟化技术。它们更类似于增强型 chroot,而不是 Qemu 或 VMware 等完全虚拟化,因为它们不模拟硬件,而且容器与主机共享相同的操作系统。因此,与 Solaris 区域或 BSD jail 相比,容器更胜一筹。
LXC 非常轻量,因此最常见的应用是为每项服务设置一个容器。这意味着您可以节省大量空间和其他资源,因为除非需要,否则不会分配任何内容。但是,这并不意味着这是使用它的唯一方法。例如,Docker是基于LXC构建的服务,用于打包和部署完整的应用程序。
LXc 可用于运行 GUI 应用程序,甚至 X 本身。这Unix 和 Linux 答案有一个指南。本质上:
- 在主机和容器系统上安装所有必需的驱动程序。
- 使设备节点可供容器使用,
mknod
如有必要,通过以下方式创建它们。 - 配置它们(OP 手动完成,因为
udev
在容器中不可用)。 - 在未使用的 VT 上启动 X。
但是,如果您希望一切顺利,并且不介意使用 VM 处理所有 X,那么您可以使用 KVM libvirt
。请查看官方服务器指南。
答案2
VM 旨在显示为裸机。除了您在 VM 上实际设置的限制之外,您不会注意到任何差异。
您可以考虑运行虚拟机并发布有关如何解决您可能遇到的问题的问题。最有可能的解决方案是提供您可能需要的具体内容,例如更多视频内存、较低级别的硬件访问权限等。
要启动全屏:
- 在虚拟机箱的 VM OS 中,选择全屏选项。
- 右键单击您首选操作系统的虚拟盒配置文件,然后单击“创建桌面启动器”。
- 从创建的启动中获取 exec 命令并创建如下所示的批处理文件
- 将创建的批处理文件添加到您的 Ubuntu 启动应用程序。
- 配置(从 Ubuntu 的用户管理器)以启动 Ubuntu 并激活自动登录。
启动应用程序的批处理文件(mystartvm.sh):
#!/bin/bash
sleep 20
/usr/lib/virtualbox/VirtualBox --startvm "ec9329a2-d86a-45ba-9dbe-cdd0d8e5c74b"
您可以根据自己的喜好微调任何步骤。我添加了 20 秒,以便我的机器有时间执行我在启动时设置的其他后台任务。
当然,有很多方法可以做到这一点。这只是其中之一。
客户操作系统似乎位于裸机上。当然,正如一些人指出的那样,它实际上并不位于裸机上。但操作员(为了让我的客户轻松完成这项工作)无法分辨出其中的区别。 操作系统的运行就像在裸机上一样並非客人。