如何通过虚拟化从家用PC保存游戏系统

得益于竞争和科学技术的发展,现代PC使您可以同时执行许多简单和复杂的任务,例如在电视上播放和播放视频,在Internet上渲染图形和阅读新闻,并行分发洪流等。 等 许多人走得更远,并使用多台PC进行工作和娱乐。 但是,借助虚拟化技术,一方面,您可以扩展PC的功能,另一方面,可以节省资金,因为 实际上,您可以同时在同一硬件上运行多个操作系统。


本文将托管专门用于“ home”的主机设置,即 谈谈GPU通行

引言


首先,简要介绍一下虚拟化。 根据维基百科
虚拟化是从硬件实现中提取的一组计算资源或其逻辑组合的提供,同时在同一物理资源上运行的计算过程彼此之间提供逻辑隔离。
它可以在应用程序(例如VirtualBox,VMware)的帮助下以及在支持硬件虚拟化的系统级别(例如KVM,ESXi,Hyper-V)的帮助下实现。 在后一种情况下,与本机系统相比,性能损失最小

在下文中,本文将描述Proxmox开源虚拟化系统的设置,因为它具有适度的友好性,可以通过Web表单轻松访问控制台,并且它也是基于一堆Debian + kvm的,在网络上有很多指南和说明。 ,即 文件包括 和俄语。

硬件要求


我们将需要:

-处理器和主板,支持Intel的 VT-x,VT-d或AMD的IOMMU。 不要懒惰,并指定您的副本是否支持这些要求。

至于主板。 我绝对不建议在电源板上使用平庸的电线来驱动熨斗。 Z270Z390忽略橙色区域或离开库存。

  • 两张视频卡,一个游戏(在网络上转发给虚拟机时问题较少,他们赞扬红色的,但就个人而言,一切都由绿色的视频卡解决),第二个为主机。 就我而言,它已集成到处理器中。
  • 1-2台显示器及其电缆,以便
  • 一对键盘和鼠标设置,以方便工作和配置系统
  • 第二台PC或平板电脑连接到本地网络以通过Web表单进行设置。

安装与设定


我使用了以下游戏配置:

-用于主机配置的PC并不是在最好的主板上构建的,但是在讲英语的论坛中,这家公司经常赞扬它,因为它的硬件最适合以下情况:
处理器-i7 8700k
母亲-华擎Z390M Pro4
显卡-INNO3D GeForce GTX 1070 iChill X4
-第二台PC(Morefine-M1s Mini-PC),
-2只老鼠,
-主机上的1个键盘,我使用过软件的其他设备上的键盘,
-与Dell U2713HM显示器的3条连接(VGA-用于集成视频卡,HDMI-用于GTX1070,在DVI上具有一台Mini-PC。在视频信号之间进行切换是通过监视器菜单进行的)

阶段0-在主板上,打开VT-d:启用,Intel Vitrualization Technology:启用,主Graphx适配器:VGA,高于4G解码:启用。 如果可能,请确保选择主机将在其上运行的主机,即 较弱的图形卡并切换到它。

第1阶段 -在主机上安装Proxmox。 为此:

1.1。 从官方网站下载磁盘映像

1.2。 我们使用特殊程序将图像写入闪存驱动器

1.3。 我们从USB闪存驱动器引导, 然后执行安装(指示要安装哪个硬盘驱动器),输入将来的root用户的密码,并显式设置网络设置。

第二阶段 -使用第二台PC通过网络接口通过网络进行连接或
平板电脑(在我的情况下是一台Mini-PC)连接到主机,并通过文本控制台为该指南配置Proxmox。

图片

可能会花费一点点软件成本,但是我决定更换以前的主板会更容易,因为 技嘉的董事会不符合以下要求:
1)运行“ dmesg | grep ecap»命令。

2)在IOMMU行上,“ ecap”之后的十六进制值表示是否支持中断重新映射。 如果此值的最后一个字符是8、9,a,b,c,d,e或f,则支持中断重新映射。 例如,“ ecap 1000”表示没有中断重新映射支持。 “ Ecap 10207f”表示中断重新映射支持,因为最后一个字符是“ f”。

仅当每个IOMMU支持时才启用中断重映射。
如果满足条件,请继续。

因此设置为:

我们从控制台使用命令打开文件(您无需输入双格符号,因此我将在命令文本中与需要输入文件的内容分开)

## nano /etc/default/grub 

进行更换

 GRUB_CMDLINE_LINUX_DEFAULT="quiet" 

用于英特尔处理器

 GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" 

用于AMD处理器

 GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on" 

接下来我们给出命令

 ## update-grub 

然后我们通过Web界面重启主机

文章中的PC grub文件
 # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Proxmox Virtual Environment" GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" GRUB_CMDLINE_LINUX="" # Disable os-prober, it might add menu entries for each guest GRUB_DISABLE_OS_PROBER=true # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Disable generation of recovery mode menu entries GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1" 


将必要的驱动程序添加到配置文件

 ## nano /etc/modules 

 # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. vfio vfio_iommu_type1 vfio_pci vfio_virqfd 

我们在控制台中编写

 ## lspci 

屏幕上会显示可转发的设备列表,我们会找到感兴趣的带有视频卡的设备,在我的情况下,这是视频卡组中的2台设备,并且在地址01:00.0和01:00.1发出声音,因此我立即注册该组。

 ## nano /etc/pve/qemu-server/vmid.conf 

 hostpci0: 01:00 

我们在控制台中编写命令以确定模型及其ID

## lspci -n -s 01:00
01:00.0 0300:10de:1b81(rev a2)
01:00.1 0403:10de:10f0(rev a1)

现在,为我们的视频卡编辑文件(您的ID会有所不同)

 ## nano /etc/modprobe.d/vfio.conf 

 options vfio-pci ids=10de:1b81,10de:10f0 

我们把司机的黑纸上

 ## nano /etc/modprobe.d/blacklist.conf 

 blacklist radeon blacklist nouveau blacklist nvidia 

现在,我们通过Web界面创建并通过控制台编辑虚拟机设置文件。 这行“ args:”解决了,因为 没有它,视频卡驱动程序将检测到虚拟化,但是通过更改设备名称(更准确地说,hv_vendor_id = willitwork),我们消除了错误43的问题,该错误由设备的视频驱动程序生成。 proxmox中有一个虚拟机编号用作名称。

 ## nano /etc/pve/qemu-server/<vmid>.conf 

 args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=willitwork,kvm=off' ..... bios: ovmf ..... hostpci0: 01:00.0,pcie=1 ..... machine: q35 

文章中的PC虚拟机设置文件
 args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=willitwork,kvm=off' bios: ovmf boot: dcn bootdisk: sata0 cores: 8 cpu: host hostpci0: 01:00.0,pcie=1 ide2: local:iso/ru-en_windows_10_1803_x86-x64.iso,media$ machine: q35 memory: 16384 net0: e1000=EA:20:FA:6A:D6:A0,bridge=vmbr0 numa: 0 ostype: win10 sata0: local-lvm:vm-100-disk-0,size=120G scsihw: virtio-scsi-pci smbios1: uuid=751edeca-d249-4c0d-9ded-b59d929df0f1 sockets: 1 usb0: host=1-8.4 usb1: host=1-8.3 vmgenid: b75aeb27-3102-458d-8e23-18cd27796dc1 


现在重新引导主机并启动虚拟机。

第三阶段 -通过远程视频控制台, 安装Windows和驱动程序。 就我而言,Windows首先会识别出可以通过视频控制台使用的proxmox视频驱动程序,然后找到了GTX1070的驱动程序,然后通过Internet更新(强制搜索网络上的驱动程序)后下载并安装了游戏视频卡所需的驱动程序。

第4阶段 -重新启动虚拟机,将监视器上视频流的显示切换到视频卡连接器,然后...就我而言,一切正常,没有错误43 ...同时,桌面被定义为2号。

我尝试发布了蓝光视频-没问题,视频序列没有延迟和狂热,我在线上发布了《战锤》-它启动了并且可以在PvP中播放,我启动了GTA5,故事突然出现了,我拍摄的非常舒适。 在视觉上,没有性能损失。

如果需要转发整个硬盘驱动器,则需要在虚拟机设置文件中添加以下行:
ide0:音量= / dev / sda


sata0:音量= / dev / sda

具体来说,是sda / sdb / sdc /等 可以在网络界面中指定。

图片

聚苯乙烯

在一桶蜂蜜中,药膏中有苍蝇。 集成声音不能单独抛出,因为 在他的小组中,还有其他设备,这些设备将声卡转发到虚拟机后,对于主机消失,直到下一个主机过载为止。 就我而言

00:1f.0 ISA桥:英特尔公司设备a305(rev 10)
00:1f.3音频设备:英特尔公司设备a348(修订版10)
00:1f.4 SMBus:英特尔公司设备a323(rev 10)
00:1f.5串行总线控制器[0c80]:Intel Corporation Device a324(rev 10)
00:1f.6以太网控制器:Intel Corporation Device 15bc(rev 10)

即 声音或通过视频线连接到显示器或外部声卡。 USB端口的路由没有问题。 不幸的是,它目前尚未解决。 可以选择通过RDP或SPICE从另一台PC远程连接到游戏。 在这种情况下,一切都会好起来的

并非总是像我这样转发视频卡,它运行不正常,可能是错误43或其他原因。 其他可能会有所帮助的设置在此处介绍。 理想情况下,您需要在网络上搜索成功的设置并集中精力进行设置,就像这对我来说一样,此外,还有一系列硬件可以使我实现与我相同的功能,但还不完整。

UPDATE1:
关于外围的一些注意事项:
1.如何将键盘从PS / 2端口连接到VM:
首先在控制台中输入命令
## dmesg | grep输入
我们正在寻找文本中的文本
...
输入:AT Translate Set 2键盘为/设备/平台/ i8042 / serio0 /输入/输入2
...
请记住,最后的数字2可能有所不同。 然后,在VM设置文件中,添加到以下行:
args:-object'input-linux,id = kbd,evdev = / dev / input / event 2 ,grab_all = on,repeat = on'
在evdev的末尾插入2 = / dev / input / event 2

对于鼠标-类似。

2.通过USB:
对于USB设备,那里的一切都比较简单,可以通过ID直接从Web表单滚动设备,也可以完全移植端口。 但是,有一个细微差别-如果由于某种原因您不能像我一样将音频设备扔到VM中,因为 它包含在具有关键控制器的组中,主机无法使用它们,然后通过USB转发端口/设备可以解决此问题,但是声音可能会在一段时间,嘶嘶声/嗡嗡声和其他声音等之后同时开始下降,例如在本机上一切都会对系统产生好处。 在这种情况下,根据本文中指定的方法,有必要不转发端口/设备,而是转发USB控制器本身作为PCIe设备。 一切都会大大改善。 但是同时,使用这种设置启动VM之后,将不再可能通过主机从该控制器转发其他设备。

3.可以按照本文中指定的方法,通过控制器作为PCIe设备的转发方式来转发硬盘驱动器(我不建议转发集成在主板上的控制器,仅连接到PCIe),也可以直接转发:

## cd / dev / disk / by-id
通过目录,我们看清单...
我们复制格式为ata-WDC_WD40EFRX-68WT0N6_WD-WCC4E1AC9SX9的行,其中已注册硬盘的连接接口,品牌和序列号。 然后打开VM配置文件并编写:
sata1:卷= /开发/磁盘/ by-id / ata-WDC_WD40EFRX-68WT0N6_WD-WCC4E1AC9SX9
并且一切正常,同时请记住sata0-sata5,即 对于一个VM,这样连接的磁盘(包括虚拟磁盘)的数量不能超过6个。

Source: https://habr.com/ru/post/zh-CN437598/


All Articles