kvm直通sata_KVM虚拟化win10显卡直通一例

2023-05-16

一、硬件及需求

联想SR650 2x5218,64G,3x1.2T SAS HDD,显卡RTX2080

因为对系统要求必须是windows,windows server系统没有显卡驱动,win10又没有对应的服务器硬件驱动,尝试安装windows10,使用windows server2019驱动,系统安装安装完成后,驱动问题导致系统蓝屏,重启,无法正常使用

只能使用centos+kvm部署win10虚拟机,显卡采用直通模式,可以正常安装显卡驱动。

二、部署过程

1、安装centos7.8,安装过程省略

英文安装,virt-manager图形界面中文会显示乱码

centos版本:CentOS-7.8-x86_64-DVD-2003

采用的自动分区,不过手动更合适。

[root@localhost ~]# df -h

Filesystem Size Used Avail Use% Mounted on

devtmpfs 32G 0 32G 0% /dev

tmpfs 32G 0 32G 0% /dev/shm

tmpfs 32G 11M 32G 1% /run

tmpfs 32G 0 32G 0% /sys/fs/cgroup

/dev/mapper/centos-root 50G 2.3G 48G 5% /

/dev/sda2 1021M 210M 811M 21% /boot

/dev/sda1 200M 12M 189M 6% /boot/efi

/dev/mapper/centos-home 2.1T 24G 2.1T 2% /home

tmpfs 6.3G 0 6.3G 0% /run/user/0

2、安装kvm

2.1设置桥接网络,名称为br0连接到eno1变为到br0

yum -y install bridge-utils

配置br0的网络参数,对照自己的网卡,配置自己的ip

cat > /etc/sysconfig/network-scripts/ifcfg-br0 << EOF

DEVICE=br0

ONBOOT=yes

BOOTPROTO=static

NM_CONTROLLED=no

IPADDR=192.168.31.88

NETMASK=255.255.255.0

GATEWAY=192.168.31.1

DNS1=114.114.114.114

USERCTL=no

TYPE=Bridge

EOF

修改eno1的网络参数

cat > /etc/sysconfig/network-scripts/ifcfg-eno1 << EOF

DEVICE=eno1

ONBOOT=yes

BRIDGE=br0

EOF

重启网络

systemctl restart network

重启网络后ssh连接新设置的ip

检查主机机是否支持kvm

egrep '(vmx|svm)' /proc/cpuinfo

2.2安装kvm

systemctl start libvirtd

查看kvm版本,UEFI模式安装windows需要升级kvm

virsh # version

Compiled against library: libvirt 3.0.0

Using library: libvirt 3.0.0

Using API: QEMU 3.0.0

Running hypervisor: QEMU 2.8.1

2.3更新qemu-kvm

wget http://rpmfind.net/linux/centos/7.8.2003/extras/x86_64/Packages/centos-release-qemu-ev-1.0-4.el7.centos.noarch.rpm

yum install -y centos-release-qemu-ev-1.0-4.el7.centos.noarch.rpm

wget http://rpmfind.net/linux/centos/7.8.2003/extras/x86_64/Packages/centos-release-virt-common-1-1.el7.centos.noarch.rpm

yum install -y centos-release-virt-common-1-1.el7.centos.noarch.rpm

sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-QEMU-EV.repo

yum --enablerepo=centos-qemu-ev -y install qemu-kvm-ev

systemctl restart libvirtd

查看更新后的kvm版本

virsh # version

Compiled against library: libvirt 4.5.0

Using library: libvirt 4.5.0

Using API: QEMU 4.5.0

Running hypervisor: QEMU 2.12.0

2.4安装OVMF

OVMF“是一个为UEFI支持虚拟机的项目”。

#REPO

vi /etc/yum.repos.d/kraxel.repo

# create new

[qemu-firmware-jenkins]

name=firmware for qemu, built by jenkins, fresh from git repos

baseurl=https://www.kraxel.org/repos/jenkins/

enabled=0

gpgcheck=0

#RPM Install

yum --enablerepo=qemu-firmware-jenkins -y install OVMF

#check ovmf directory

ls /usr/share/OVMF/

#QEMU配置以启用UEF

vim /etc/libvirt/qemu.conf

nvram = [

"/usr/share/OVMF/OVMF_CODE.secboot.fd:/usr/share/OVMF/OVMF_VARS.fd",

]

#重启libvirtd服务

service libvirtd restart

2.5安装win10

使用图形界面安装,xshell的xmanager工具

virt-manager

2.5.1选择UEFI模式,暂不配置显卡直通

2.5.2如果硬盘或者CD/ROM报错不支持IDE模式不支持,请更改成SATA模式

2.5.3网卡桥接模式

2.5.4vnc连接配置,选择vncserver,否则可能看不到虚拟机画面,vnc客户端配置raw模式,否则可能很卡

2.6显卡直通

2.6.1开启iommu

IOMMU(i/o memory management unit)。iommu有两大功能:控制设备dma地址映射到机器物理地址(dmar),中断重映射(intremap)(可选)

确认内核是否支持iommu

cat /proc/cmdline | grep iommu有输出则正常

如果没有输出,将intel_iommu=on添加到grub启动文件当中

编辑grub文件 :

vim /etc/default/grub

GRUB_TIMEOUT=5

GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"

GRUB_DEFAULT=saved

GRUB_DISABLE_SUBMENU=true

GRUB_TERMINAL_OUTPUT="console"

GRUB_CMDLINE_LINUX="intel_iommu=on crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"

GRUB_DISABLE_RECOVERY="true"

重新生成内核

grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

再次验证内核支持iommu

[root@localhost ~]# cat /proc/cmdline | grep iommu

BOOT_IMAGE=/vmlinuz-3.10.0-1127.19.1.el7.x86_64 root=/dev/mapper/centos-root ro intel_iommu=on crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=zh_CN.UTF-8

有输出即正常

验证VT-D是否启用

dmesg |grep -e DMAR -e IOMMU

ps:如果没有的开启的解决办法

2.6.2禁用服务器上的RTX2080显卡驱动

#查看NVIDIA显卡设备

[root@localhost ~]# lspci -nnk | grep -i nvidia

86:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU104 [GeForce RTX 2080 SUPER] [10de:1e81] (rev a1)

Subsystem: NVIDIA Corporation Device [10de:13a0]

86:00.1 Audio device [0403]: NVIDIA Corporation TU104 HD Audio Controller [10de:10f8] (rev a1)

Subsystem: NVIDIA Corporation Device [10de:13a0]

86:00.2 USB controller [0c03]: NVIDIA Corporation TU104 USB 3.1 Host Controller [10de:1ad8] (rev a1)

Subsystem: NVIDIA Corporation Device [10de:13a0]

86:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU104 USB Type-C UCSI Controller [10de:1ad9] (rev a1)

Subsystem: NVIDIA Corporation Device [10de:13a0]

#根据上面显示的显卡设备编号,查看显卡驱动

lspci -vv -s 86:00.0 | grep driver

lspci -vv -s 86:00.1 | grep driver

lspci -vv -s 86:00.2 | grep driver

lspci -vv -s 86:00.3 | grep driver

#显示有3个驱动nouveau,snd_hda_intel,xhci_hcd

在服务器主机上禁用显卡设备

vi /etc/modprobe.d/blacklist.conf

添加

blacklist nouveau

blacklist snd_hda_intel

blacklist xhci_hcd

vim /usr/lib/modprobe.d/dist-blacklist.conf

加上一行options nouveau modeset=0

PS:其他情况可能还需要去掉禁用另外一张显卡,我这里没有去掉

备份原来的 initramfs nouveau image镜像

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img

创建新的 initramfs image镜像

dracut /boot/initramfs-$(uname -r).img $(uname -r)

2.6.3显卡加载vfio驱动

加载vfio模块

modprobe vfio

modprobe vfio-pci

从服务器卸载4个显卡设备

virsh nodedev-detach pci_0000_86_00_0

virsh nodedev-detach pci_0000_86_00_1

virsh nodedev-detach pci_0000_86_00_2

virsh nodedev-detach pci_0000_86_00_3

验证显卡设备是否加载vfio-pci驱动,加载成功

[root@localhost ~]# lspci -vv -s 86:00.0 | grep driver

Kernel driver in use: vfio-pci

[root@localhost ~]# lspci -vv -s 86:00.1 | grep driver

Kernel driver in use: vfio-pci

[root@localhost ~]# lspci -vv -s 86:00.2 | grep driver

Kernel driver in use: vfio-pci

[root@localhost ~]# lspci -vv -s 86:00.3 | grep driver

Kernel driver in use: vfio-pci

2.6.4 win10虚拟机添加NVDIA显卡

同时可以添加服务器的USB设备直通

ps:需要另外配置下,参考链接

添加后,关机重启

三、显卡驱动安装

要安装显卡驱动,需要修改虚拟机win10的配置文件

否则显卡驱动安装过程中自检会报错ERROR CODE 43,驱动不允许安装在虚拟机上。

#编辑VM XML

virsh edit win 10

#修改第一行

#为

#找到节点,添加内容

...

...

#找到节点,在device后添加内容

#重启VM

virsh destroy win10

virsh start win10

重启即可安装驱动

AID64测试

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kvm直通sata_KVM虚拟化win10显卡直通一例 的相关文章

  • cmd命令查看笔记本电池状况

    1 以管理员身份运行 打开 命令提示符 exe 2 在命令提示符输入 powercfg batteryreport output D battery report html 其中 引号内的电池使用报告文件的保存路径可以自定义 你也可以保存到
  • WIN10超级终端下载链接及使用教程

    地址见文末 1 直接运行 随便命名 2选择连接的COM口 3 选择对应的波特率 我的是115200 数据流控制选择无 4点击应用 给开发板上电即可 链接一 https pan baidu com s 1iDf16H8BsZ53lOVqmQO
  • 59 KVM Skylark虚拟机混部-概述、架构及特性

    文章目录 59 KVM Skylark虚拟机混部 概述 架构及特性 59 1 Skylark概述 59 1 1 问题背景 59 1 2 总体介绍 59 2 架构及特性 59 2 1 总体实现框架 59 2 2 功耗干扰控制 59 2 3 L
  • KVM添加文件夹存储

    创建基于文件夹的存储池 1 定义一个存储池 virsh pool define as kvm images dir kvm images 2 查看创建的存储池信息 virsh pool list all 3 建立基于文件夹的存储池 virs
  • 详解KVM虚拟化原理

    详解KVM虚拟化原理 KVM架构 KVM Kernel based Virtual Machine 包含一个为处理器提供底层虚拟化 可加载的核心 模块kvm ko kvm intel ko或kvm amd ko 使用QEMU QEMU KV
  • 29 KVM管理系统资源-调整虚拟CPU绑定关系

    文章目录 29 KVM管理系统资源 调整虚拟CPU绑定关系 29 1 概述 29 2 操作步骤 29 KVM管理系统资源 调整虚拟CPU绑定关系 29 1 概述 把虚拟机的vCPU绑定在物理CPU上 即vCPU只在绑定的物理CPU上调度 在
  • kvm-ovirt-vdsm安装记录

    小技巧 1 fedaro 19自动查找最快yum源 yum install yum fastestmirror 2 libvirt启动sasl添加用户 saslpasswd2 c a libvirt admin 3 查看kvm模块 lsmo
  • 解决win10中无法打开CHM文件的方法

    CHM文件是非常常见的帮助文件格式 由于其便携性 很多语言的API会采用chm格式 win7 win8 1 win10系统 由于采用了UAC 致使原本在xp里浏览正常的chm文件出现空白而无法正常显示 解决方法 右键选择需要打开的文件 选择
  • win10上安装python3.9.0+robotframework

    win10上安装python3 9 robotframework python3 9 0下载安装 robotframework安装 wxpython安装 ride安装 python3 9 0下载安装 下载地址 python3 9 0下载地址
  • 60 KVM Skylark虚拟机混部-安装和配置

    文章目录 60 KVM Skylark虚拟机混部 安装和配置 60 1 安装Skylark 60 1 1 硬件要求 60 1 2 软件要求 60 1 3 安装方法 60 2 配置Skylark 60 2 1 日志 60 2 2 功耗干扰控制
  • windows10下安装kali子系统

    写在前面 为什么我会想到在窗下装一个卡利 作为一个小白 平时做CTF题的时候 有时会用到python2 7环境 比如一些脚本需要 还有窗户下用的SqlMap的话 好像只支持在python2 7 之前被这个坑了好久 想用它的时候突然发现我的S
  • WIN10 修改用户下文件夹的名称

    转载note 我是为了解决正当防卫3不能存档 我的用户名当初设置的数字 转载的原因是 走了很多百度知道和经验的弯路 如果有人看到就别走了 我因为走了弯路前弄后弄导致原先的个人数据文件还丢失 只得跳出步骤新建用户 在PE下复制还有的数据 所以
  • kvm之多网卡队列开启设置

    背景 目前基于dpdk数据平面开发套件的应用越来越多 而dpdk对于上层应用运行时 服务的进程数多于1时 要求网卡支持多队列 否则项nginx这种多进程应用程序只能再默认配置下运行 只能启动一个worker 要求 在kvm虚机中将网卡设置支
  • Win10 64bit系统中VS2015与OpenCV3.2配置开发环境

    1 将OpenCV解压到D盘根目录 个人认为纯英文目录比较保险 2 VS2015建立控制台工程 设置为64位debug开发环境 3 配置工程属性 在可执行目录 executable directories 中 确认已包含opencv包里的b
  • KVM热迁移

    KVM热迁移 介绍 KVM热迁移的前提是拥有共享存储 以下通过NFS实现KVM热迁移 迁移过程 将一处于运行状态的KVM虚拟机从节点kvm 01迁移到kvm 02后继续运行 准备 主机准备 hostname IP地址 系统 配置 kvm 0
  • 2020最新版KVM虚拟机安装详解

    VMware Workstation Pro15 5下 1 操作环境 CentOS Linux release 7 7 1908 Core 2 需要用到的工具 XSHELL Centos任意版本镜像 3 必须安装的软件 Xmanager p
  • Qemu-KVM基本工作原理分析

    1 理解KVM与Qemu的关系 我们都知道开源虚拟机KVM 并且知道它总是跟Qemu结合出现 那这两者之间有什么关系呢 首先 Qemu本身并不是KVM的一部分 而是一整套完整的虚拟化解决方案 它是纯软件实现的 包括处理器虚拟化 内存虚拟化以
  • KVM/桥接器:没有到主机的路由

    我已经在 Fedora 17 上使用 KVM 设置了虚拟机 并为 KVM 配置了桥接网络 主机和虚拟机均采用手动IP配置 主机IP为192 168 0 2 虚拟机IP为192 168 0 10 从虚拟机我可以毫无问题地连接到主机 但从主机我
  • x86 PIC,QEMU 在所有 CPU 上引发中断是否正确?

    我最近不得不解决 x86 PIC 的专有操作系统问题 其中操作系统预期定时器中断仅在 CPU0 上 我启用了 IO APIC 来解决这个问题并进行了 CPU 控制 因此中断仅到达 CPU0 问题解决了 有人告诉我 我们的硬件已经损坏 无法做
  • 虚拟机上奇怪的程序延迟行为

    我编写了一个程序来读取 256KB 数组以获得 1 毫秒的延迟 该程序非常简单并附带 然而 当我在Xen上的VM上运行它时 我发现延迟不稳定 它具有以下模式 时间单位是ms totalCycle CyclePerLine totalms 2

随机推荐