hyper-v虚拟机使用教程

news/2025/1/17 3:36:45/文章来源:https://www.cnblogs.com/kanadeblisst/p/18517001

原文链接: https://mp.weixin.qq.com/s/zNubQcNOePB7Y4AWfou0Yg

前言

从前几年开始,我平时使用的虚拟机就换成了hyper-v,当然PVE也会使用(作为服务器挂机用,后面出个文章说下),VMware是完全抛弃不用了。

至于为什么不用VMware,好像也没啥理由,就感觉hyper-v使用更顺手一点。我现在所有的工作都在虚拟机里操作,主机现在基本没装什么软件,这样方便迁移和备份。

安装

控制面板\程序\程序和功能中的启用或关闭Windows功能里勾选你需要的,说个小技巧,在文件资源管理器输入路径回车后可以直接打开这个界面

如果你只需要使用hyper-v的话勾选红色的即可,我一般是将Linux子系统(WSL)和Windows沙盒一起勾选了。hyper-v用来跑Windows,WSL则是跑Linux(虽然hyper-v也能安装Linux,但是实测下来不如WSL好用)。

勾选后等待安装完成后会提示重启(注意需要开启Windows更新,如果之前禁用了Windows更新会失败),重启后就能在开始菜单栏里搜索到一个Hyper-v管理器

如果是家庭版系统,需要使用powershell脚本安装,百度搜索一下很多文章,基本都是一样的脚本内容。

操作

新建

快速创建这个没用过, 我都用的第二个新建,下面简单截图一下流程:

指定代数这个选项我一般都选第二代,能选最新的就不选旧的。

分配的内存大小可以按需自己填写,这个动态内存的勾我一般是不选的,因为我电脑内存是64G的,不会出现内存不够的情况。

网络的话就选默认创建的网络,后面再细说一下怎么设置网络桥接。

虚拟机磁盘大小的话也是按需填写,默认创建的磁盘是动态扩展的磁盘,也就是有多少文件占用多少空间,但是它有一个问题:当你删除文件时不会自动释放空间,得你手动用powershell命令释放空间。

所以我一般新建完虚拟机后再新建一个固定大小的磁盘,将默认创建的磁盘替换掉,我很少用动态扩展类型的磁盘。

下一步选择需要安装的系统ISO镜像文件

创建完虚拟机后先不着急启动,先右键进入设置页面,将检查点关了,也可以调整一下cpu的核数。检查点类似VMware的快照,可以恢复虚拟机状态。如果你需要的话可以先不关,但我觉得不太好用。

如果是安装的win11则还需要勾选启用受信任的平台模块

接着就是启动虚拟机(右键连接然后点启动),启动的过程中需要按F2,可以狂点直到虚拟机进去转圈页面。如果不按F2就会出现下面的错误界面

后面就跟正常安装系统一样了,就不多说了,没有安装完成的时候是无法全屏显示。这是因为rdp服务还没有正常启动,hyper-v的增强服务其实就是rdp的封装。

导入导出虚拟机

需要先右键某个虚拟机选择导出,然后才能在以后或者其他机器上导入。如果是其他机器的Win11的虚拟机,还需要同时导入相关证书才能启动。不然会出现The key protector could not be unwrapped的错误,这个遇到的时候自己百度下。

Hyper-v设置

这个没什么可说的,就设置下新建虚拟硬盘和虚拟机默认存储位置,其他设置我也没用过。

虚拟网络交换机

这里的外部就是桥接网络(可以选择桥接哪个网卡),内部是Nat网络,专用这个没用过不知道是什么。

要添加网络的话在虚拟机设置里网络适配器切换网络,或者添加硬件在添加一个网络适配器

编辑磁盘

这个编辑磁盘只能扩展磁盘空间,不能用于压缩磁盘空间。如果需要压缩磁盘大小只能用powershell来操作,之前用过已经忘了怎么操作了,到时候用到的时候再看

其他操作

即使没开启检查点,也可以右键在运行的虚拟机选择保存可以将当前运行的虚拟机状态保存到磁盘文件,下次直接启动就会恢复。这个功能还挺好用的,比如我的笔记本中午太吵了,我就会先保存虚拟机,睡完午觉再启动。

显卡共享

直接创建的虚拟机无法使用主机显卡,需要一些特殊的操作才能让虚拟机共享主机显卡。

参考链接: https://blog.shigure.fun/laptop_gpu_hyperv/

总结来说总共就两个步骤:

  1. 设置显卡共享
  2. 复制显卡驱动

设置显卡共享

先用管理员运行powershell执行(设置脚本为宽松模式,不然执行不了脚本):Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

将下面的保存为gpu.ps1

# 虚拟机名称
$vm = "win10"
# 显卡的路径
$gpu_path = "\\?\PCI#VEN_10DE&DEV_249D&SUBSYS_128C1043&REV_A1#4&29f08f2d&0&0009#{064092b3-625e-43bf-9eb5-dc845897dd59}\GPUPARAV"
# 移除原先设置的显卡,如果之前没有设置会报错,可以注释掉
Remove-VMGpuPartitionAdapter -VMName $vm
# 设置显卡路径
Add-VMGpuPartitionAdapter -VMName $vm -InstancePath $gpu_pathSet-VMGpuPartitionAdapter -VMName $vm -MinPartitionVRAM 80000000 -MaxPartitionVRAM 100000000 -OptimalPartitionVRAM 100000000 -MinPartitionEncode 80000000 -MaxPartitionEncode 100000000 -OptimalPartitionEncode 100000000 -MinPartitionDecode 80000000 -MaxPartitionDecode 100000000 -OptimalPartitionDecode 100000000 -MinPartitionCompute 80000000 -MaxPartitionCompute 100000000 -OptimalPartitionCompute 100000000Set-VM -GuestControlledCacheTypes $true -VMName $vm
# 设置虚拟机能使用的最小显存
Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm
# 设置虚拟机能使用的最大显存
Set-VM -HighMemoryMappedIoSpace 32GB –VMName $vm

显卡的路径可以通过Get-VMPartitionableGpuGet-VMHostPartitionableGpu查看(Name字段),如果有多个显卡,不知道是哪个的话可以在设备管理器里硬件Id看,

显卡共享

显卡的驱动路径也在设备管理器里的驱动程序详细信息里看

主机驱动路径(驱动大小大概1G多): C:\WINDOWS\System32\DriverStore\FileRepository\nvcvi.inf_amd64_3fb1ec653d065ff1

虚拟机目录(需要自己创建): C:\WINDOWS\System32\HostDriverStore\FileRepository

先将虚拟机关机,然后双击虚拟机的磁盘文件将磁盘挂载到主机。将主机驱动整个文件夹复制到虚拟机目录里,接下来复制宿主机中的 C:\Windows\System32\nvapi64.dll 到虚拟机中的C:\Windows\System32

然后将挂载的磁盘分离后开启虚拟机就能在虚拟机的设备管理器看到显卡是正常工作的。这个在任务管理器不会显示。

之前按其他文章设置出现显卡43错误,应该是没有设置显卡路径的原因。按上面给的那个文章的话显卡就正常工作。

本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/824497.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作炒股两不误!这款 IDEA 插件帮助你关注股票基金!

leeks —— 一款 IDEA 插件,支持在 IDEA 中查看股票(A股,港股,美股)、基金、加密货币!大家好,我是 Java陈序员。 之前给大家安利过一款 VS Code 插件来实时查看股票&基金! 韭菜盒子!VSCode 也可以看股票&基金了! 今天,给大家介绍一款同款的 IDEA 插件,在写…

项目进度计划中的任务如何优先排序

项目进度计划中的任务优先排序取决于多个因素:任务的紧迫性、依赖关系、资源可用性、项目关键路径以及潜在风险。通常,在确定任务优先级时,应首先考虑关键路径上的任务,因为这些任务直接影响项目完成的总时长。接着,考虑那些有着严格截止日期或是对项目成败至关重要的任务…

PbootCMS后台ueditor编辑器上传图片如何去掉自动添加的title和alt属性

修改 ueditor.all.min.js 文件:打开 \core\extend\ueditor\ueditor.all.min.js 文件 搜索 "imageUrlPrefix",找到以下代码:javascriptg.setAttribute("title", f.title || ""); g.setAttribute("alt", f.original || "")…

『玩转Streamlit』--页面布局

一个优秀的数据应用不仅仅是功能的强大,更在于其用户体验的打造。 而良好的页面布局,作为用户体验的重要组成部分,不仅能够提升信息的可读性,还能引导用户高效地完成操作。 反之,混乱的布局会让人感到困惑和挫败,甚至导致用户放弃使用应用。 在Streamlit中,Sidebar(侧边…

# 20222322 2024-2025-1 《网络与系统攻防技术》实验三实验报告

1.实验内容 1.1实验内容 (1) 使用msfvenom和msf编码器生成文件使用msfvenom生成exe文件,并进行编码。 生成jar文件,用于Java环境下的攻击。 生成PHP文件,用于Web服务器上的攻击。(2) 使用Veil工具生成恶意代码下载并安装Veil-Evasion,使用Veil生成恶意代码。(3) 使用C+shel…

高级程序语言课程第五次作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/2024C/ 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/2024C/homework/13298 姓名:刘嘉奕 学号:102400204停止输入进行运算用ctrl+z打印\n用\n8.5语句循环逻辑错误8.7用字符代替数字选项,用q代替5结束…

SQL Server创建用户只能访问指定数据库和视图

我们在给数据库用户赋予权限时,有时候不想让该用户看到太多过程表和过程视图,这时就需要限定用户的访问权限 第一步:创建用户 创建数据库连接后,进入安全性——登录名,单击右键,新建登录名,并设置默认数据库第二步:设置用户映射 点击用户映射,勾选指定要访问的数据库,…

更安全高效的文件传输工具,Ftrans国产FTP替代方案可以了解!

文件传输协议(FTP),诞生于1971年,自20世纪70年代发明以来,FTP已成为传输大文件的不二之选。内置有操作系统的 FTP 可提供一个相对简便、看似免费的文件交换方法,因此得到广泛使用。 随着企业发展过程中新增的文件传输需求,FTP的局限性开始凸显,企业都在寻求国产FTP替代…

CentOS查看磁盘IO使用率

Linux命令iostat -x 1最后一列%util为磁盘IO使用百分比

AI绘画漫谈——从AI网页生成说起

1. 又说“前端已死” 为什么说“又”呢?因为前两年我在一些博客网站三天两头就能看到这个标题,虽然今年好像换话题了,但感觉前端每年都要死个七八次,当然这里面还是标题党偏多,不过也体现了有一些开发者对自己当前所做的工作内容的忧虑,尤其是这一次冲击的浪潮是来自于 A…

对象一定分配在堆中吗?聊聊TLAB和逃逸分析技术

TLAB TLAB是虚拟机在堆内存的eden划分出来的一块专用空间,是线程专属的。在虚拟机的TLAB功能启动的情况下,在线程初始化时,虚拟机会为每个线程分配一块TLAB空间(包含在 Eden 空间内),只给当前线程使用,这样每个线程都单独拥有一个空间,如果需要分配内存,就在自己的空间…