ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Windows 10 Hyper-V 安装 Ubuntu 20.04 完整指南与性能优化

2026/8/14 9:01:43 拓冰建站 浏览量
Windows 10 Hyper-V 安装 Ubuntu 20.04 完整指南与性能优化 1. 项目概述为什么选择 Hyper-V 安装 Ubuntu在 Windows 10 上跑 Linux 环境对于开发者、运维或者只是想体验不同系统的用户来说几乎是刚需。过去VMware Workstation 和 VirtualBox 是首选但如果你用的是 Windows 10 Pro、Enterprise 或 Education 版本其实手边就有一个被严重低估的“官方外挂”——Hyper-V。Hyper-V 是微软自家的 Type-1 虚拟机管理程序直接跑在硬件之上性能损耗比 VMware 这类 Type-2 管理程序理论上要低。我选择用它来安装 Ubuntu 20.04 LTS主要基于几个现实考量首先是性能对于需要编译代码、运行多个服务的场景Hyper-V 的硬件直通和内存管理效率更高其次是集成度作为 Windows 组件它与宿主机Win10的兼容性和稳定性通常更好不会出现因驱动冲突导致的蓝屏最后是“零成本”无需额外付费购买或寻找许可证对于个人学习和轻度开发足够友好。当然网上很多教程会提到 WSL2。WSL2 确实轻量、启动快、与 Windows 文件系统互通无缝但它本质上是一个兼容层并非完整的虚拟机。当你需要测试完整的系统服务、使用特定的内核模块或者进行接近生产环境的部署时一个独立的、拥有完整 init 系统和独立内核的 Ubuntu 虚拟机仍然是更稳妥的选择。Hyper-V 正好填补了这个空白它提供了完整的虚拟化能力同时避免了第三方软件可能带来的兼容性问题。2. 前期准备与环境检查在动手之前有几项准备工作必须做扎实这能避免后面 80% 的坑。很多人一上来就创建虚拟机结果卡在“无法启动”或“网络不通”根源往往就在这里。2.1 确认系统版本与启用 Hyper-V首先确认你的 Windows 10 版本。Hyper-V 仅在Windows 10 Pro、Enterprise 或 Education版本中可用。家庭版Home默认不支持。你可以通过Win R输入winver来查看。如果是家庭版网上有通过脚本或修改注册表强行开启的方法但那会破坏系统稳定性且后续更新可能出问题我个人极度不推荐。对于正经用途升级到专业版是唯一正道。确认版本支持后需要启用 Hyper-V 功能。它默认是关闭的。有两种主流方法方法一通过“启用或关闭 Windows 功能”这是最推荐的方式。在 Windows 搜索框输入“启用或关闭 Windows 功能”打开对话框。在列表中找到“Hyper-V”。注意这里有两个子项“Hyper-V 管理工具”和“Hyper-V 平台”。为了完整功能建议两者都勾选。点击确定后系统会提示重启。这个操作会安装必要的虚拟化驱动和管理组件。方法二使用 PowerShell管理员权限如果你喜欢命令行可以更高效地完成。以管理员身份打开 PowerShell输入以下命令Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All执行后同样需要重启。注意启用 Hyper-V 后一些依赖 VT-x 或 AMD-V 完全独占的软件可能会受影响例如某些安卓模拟器如旧版雷电模拟器或 VMware Workstation 的某些功能。它们与 Hyper-V 的兼容模式可能存在冲突。如果你需要同时使用可能需要根据具体软件调整 BIOS 中的虚拟化设置或使用bcdedit命令在启动时切换。2.2 解决 Hyper-V 与 Device Guard/Credential Guard 冲突这是最经典的错误之一提示“您的主机不满足在启用 Hyper-V 或 Device/Credential Guard 的情况下运行”。这通常是因为 Windows Defender 的系统防护功能“内存完整性”核心隔离或基于虚拟化的安全VBS被开启它们与 Hyper-V 的某些旧式虚拟化模式冲突。排查与解决步骤检查内存完整性进入“Windows 安全中心” - “设备安全性” - “核心隔离详细信息”查看“内存完整性”是否开启。如果开启尝试将其关闭并重启。这通常能解决大部分问题。检查组策略按Win R输入gpedit.msc家庭版没有组策略编辑器需用其他方法。导航到“计算机配置”-“管理模板”-“系统”-“Device Guard”。检查“启用基于虚拟化的安全”是否被启用。如果启用将其设置为“已禁用”。使用命令行工具以管理员身份运行 PowerShell输入msinfo32打开系统信息。查看“基于虚拟化的安全性”一项。如果显示“正在运行”则表明 VBS 已启用。可以尝试使用命令禁用bcdedit /set hypervisorlaunchtype auto然后重启。如果问题依旧可能需要彻底禁用 Hyper-V 和 VBS再重新启用 Hyper-V。这是一个比较麻烦的过程涉及修改 BIOS/UEFI 中的安全启动等设置具体需根据主板型号操作。我的经验是对于个人开发机除非有极高的安全需求否则关闭“内存完整性”和 VBS 能省去很多麻烦而且对 Hyper-V 运行 Ubuntu 没有任何负面影响。2.3 下载 Ubuntu 20.04 LTS 镜像前往 Ubuntu 官网的下载页面选择20.04.6 LTS版本。我推荐下载Desktop image而非 Server。对于大多数人桌面版带有图形界面操作更直观而且同样可以完成所有服务器端的操作。文件格式为.iso大小约 3GB。下载完成后建议校验一下 SHA256 值确保文件完整无误。可以将镜像文件放在一个路径简单、没有中文和空格的目录下比如D:\VM_Images\方便后续在 Hyper-V 管理器中选择。3. Hyper-V 管理器基础配置详解第一次打开 Hyper-V 管理器可以在开始菜单直接搜索界面可能略显简陋但功能都藏在右键菜单和操作面板里。我们先进行一些基础设置让后续管理更顺畅。3.1 配置虚拟硬盘和虚拟机存储路径默认情况下Hyper-V 的虚拟硬盘和虚拟机配置文件会保存在 C 盘的用户目录下。为了不挤占宝贵的系统盘空间第一步就是修改默认存储位置。在 Hyper-V 管理器的右侧“操作”面板中点击“Hyper-V 设置”。在左侧你会看到“虚拟硬盘”和“虚拟机”两个路径。分别点击然后将路径修改到一个空间充足的磁盘分区例如D:\Hyper-V\目录下。你可以预先创建好Virtual Hard Disks和Virtual Machines子文件夹方便管理。点击“应用”并“确定”。这个设置是全局性的之后创建的所有新虚拟机默认都会使用这个新路径。对于已经存在的虚拟机需要手动移动其文件才能改变位置。3.2 创建虚拟交换机配置网络虚拟机没有网络就是信息孤岛。Hyper-V 的网络通过“虚拟交换机”来实现。我们需要创建一个让 Ubuntu 能够上网也能和宿主机通信。在 Hyper-V 管理器的右侧“操作”面板点击“虚拟交换机管理器”。选择“新建虚拟网络交换机”类型选择“外部”。这是最常用的类型它让虚拟机像一台真实电脑一样连接到你的物理网络通过你的真实网卡可以访问互联网和局域网内的其他设备。点击“创建虚拟交换机”。给它起个名字比如“External Switch”。在“连接类型”下确保选择了你正在使用的物理网络适配器比如“Realtek PCIe GbE Family Controller”或你的无线网卡。这里有个关键点如果你选择了无线网卡创建的外部交换机类型将是“外部网络”但 Hyper-V 对无线网卡的支持有限虚拟机可能无法获取 IP 地址。对于笔记本用户最稳定的方案是使用有线网卡创建外部交换机。如果只能用无线可能需要尝试“内部网络”或“专用网络”然后通过宿主机共享网络配置起来更复杂。务必勾选“允许管理操作系统共享此网络适配器”。这个选项允许宿主机在创建虚拟交换机后依然能通过这个物理网卡上网。如果不勾选宿主机可能会断网。点击“应用”和“确定”。系统会提示网络中断点击“是”即可。创建完成后你可以在 Windows 的“网络连接”设置里看到一个新的网络适配器名字类似于“vEthernet (External Switch)”这就是虚拟交换机的宿主机端接口。4. 创建并配置 Ubuntu 20.04 虚拟机核心环节来了。我们将一步步创建一台为 Ubuntu 20.04 量身定制的虚拟机。4.1 新建虚拟机向导的关键参数解析在 Hyper-V 管理器右侧点击“新建”-“虚拟机”启动向导。指定名称和位置名称起一个有意义的名字如“Ubuntu-20.04-Dev”。位置这里会默认使用我们之前设置的“虚拟机”路径如D:\Hyper-V\Virtual Machines\。我建议不要勾选“将虚拟机存储在其他位置”。保持默认让配置文件也放在统一路径下便于管理。指定代数选择“第二代”。第二代虚拟机支持 UEFI 固件、安全启动、更快的启动速度以及 SCSI 控制器引导是现代操作系统的标准。Ubuntu 20.04 完全支持第二代。除非你要安装非常古老的系统如 XP否则一律选第二代。分配内存这是性能的关键。对于 Ubuntu 20.04 桌面版至少分配 2048 MB (2GB)。如果只是跑跑终端2GB 勉强够用。但如果你想流畅使用 GNOME 桌面、开浏览器、运行开发工具我建议分配4096 MB (4GB) 或更多。这里可以勾选“为此虚拟机使用动态内存”。动态内存允许 Hyper-V 在虚拟机需要时分配更多内存闲置时回收非常灵活。设置“启动内存”为 2048 MB“最小内存”为 512 MB“最大内存”为 8192 MB根据你宿主机总内存来定一般不超过宿主机内存的50%。配置网络在网络连接下拉列表中选择我们刚才创建的“External Switch”。这样虚拟机一启动就能联网。连接虚拟硬盘选择“创建虚拟硬盘”。名称会自动填充位置也是我们设置好的默认虚拟硬盘路径。大小默认是 127 GB。对于 Ubuntu 桌面版如果你打算安装较多软件和开发环境建议直接设置为 50 GB 或以上。虚拟硬盘是动态扩展的 VHDX 格式一开始不会占用 50GB 的物理空间而是随着你往虚拟机里存文件慢慢变大所以设大点没坏处。VHDX 格式比旧的 VHD 性能更好支持更大容量。安装选项这是最重要的一步。选择“从可启动的映像文件安装操作系统”然后点击“浏览”找到你之前下载的ubuntu-20.04.6-desktop-amd64.iso文件。挂载 ISO 镜像相当于给虚拟机插上了一张安装光盘。点击“完成”虚拟机就创建好了。但在启动之前我们还需要进行一些精细化的调整。4.2 虚拟机设置优化启动前必调在 Hyper-V 管理器中右键点击新建的虚拟机选择“设置”。安全在“固件”下方确保“启用安全启动”是勾选的。这能保证系统完整性。模板选择“Microsoft UEFI 证书颁发机构”。Ubuntu 对此有良好支持。处理器根据宿主机 CPU 的核心数为虚拟机分配处理器数量。对于双核四线程的宿主机可以分配 2 个虚拟处理器。对于四核八线程或更多分配 4 个是安全的起点。不要分配超过宿主机逻辑处理器总数的数量否则会导致宿主机和虚拟机都卡顿。强烈建议勾选“兼容性”下的“迁移到具有不同处理器版本的物理计算机”。这增加了虚拟机的可移植性即使将来把虚拟机文件拷贝到另一台不同型号 CPU 的电脑上也有可能正常运行。SCSI 控制器在“硬件”列表中找到“SCSI 控制器”点击“添加”选择“硬盘驱动器”。这会在 SCSI 控制器下添加一个新的虚拟硬盘。先不要操作我们后面会用到这个功能来方便地挂载宿主机文件夹。集成服务确保所有选项特别是“操作系统关闭”、“时间同步”、“检测信号”、“备份卷影复制”都是勾选的。这些集成服务是 Hyper-V 虚拟机与宿主机高效协作的关键能实现时间同步、优雅关机、性能计数器集成等功能。Ubuntu 安装完成后我们需要在虚拟机内安装 Linux 集成服务 (LIS) 来启用它们。检查点快照在“管理”下找到“检查点”。建议选择“生产检查点”。它使用 Windows 的“卷影复制服务”来创建文件系统一致的快照比标准检查点内存状态更可靠尤其对于数据库类应用。5. 安装 Ubuntu 20.04 桌面版实操记录配置妥当现在可以启动虚拟机了。在 Hyper-V 管理器中右键虚拟机点击“连接”然后在新窗口点击“启动”。5.1 安装过程分步详解虚拟机启动后会从 ISO 镜像引导进入 Ubuntu 安装界面。选择语言选择“中文简体”或你偏好的语言点击“安装 Ubuntu”。键盘布局保持“Chinese”即可。更新和其他软件正常安装vs最小安装我推荐选择“正常安装”它会包含网页浏览器、办公套件、游戏等软件更适合桌面使用。如果你追求极简可以选“最小安装”。“为图形或无线硬件以及 MP3 和其他媒体安装第三方软件”务必勾选这个选项。这会安装一些闭源的驱动如 NVIDIA 驱动和媒体编解码器对于硬件兼容性和日常使用如播放 MP3至关重要。不用担心这不会影响系统开源的本质。安装类型这是磁盘分区步骤。对于新手最安全的选择是“清除整个磁盘并安装 Ubuntu”。虚拟机的磁盘是独立的 VHDX 文件这个操作只会清空这个虚拟硬盘对你宿主机硬盘上的其他数据绝对安全。Hyper-V 的第二代虚拟机使用 GPT 分区表Ubuntu 安装程序会自动处理。如果你想手动分区可以选择“其他选项”。但在虚拟机环境下自动分区完全够用。安装程序会创建 EFI 系统分区、交换空间swap和根分区/。时区在地图上点击上海或输入“Shanghai”来设置时区。创建用户输入你的姓名、计算机名会作为主机名、用户名和密码。计算机名建议用英文避免后续在网络中发现或 SSH 连接时出现乱码。密码设置一个安全的密码。你可以选择“自动登录”但出于安全习惯我建议每次启动都输入密码。“加密我的主目录”在虚拟机环境中如果你非常在意虚拟机内文件的安全比如虚拟机文件可能被拷贝走可以勾选。但这会增加一点复杂性日常使用可以不选。点击“继续”安装程序开始复制文件。这个过程大概需要10-20分钟取决于你的磁盘速度。安装完成后会提示“安装完成需要重启计算机”。点击“现在重启”。5.2 首次启动与基本配置重启后虚拟机可能会再次从 ISO 镜像启动。这时需要在 Hyper-V 连接窗口的菜单栏点击“媒体”-“DVD 驱动器”-“弹出”断开 ISO 镜像的连接。然后再次在虚拟机内重启或关闭虚拟机电源再启动它就会从虚拟硬盘正常引导了。登录系统后首先做几件事检查更新打开“软件和更新”在“更新”选项卡里将“通知我新的 Ubuntu 版本”改为“对于长期支持版本”。然后打开终端执行sudo apt update sudo apt upgrade -y这会让系统更新到最新的软件包和安全补丁。安装 Hyper-V Linux 集成服务 (LIS)虽然 Ubuntu 内核已经包含了很多 Hyper-V 驱动但安装完整的linux-tools-virtual和linux-cloud-tools-virtual包能确保最佳性能和功能集成如动态内存调整、时间同步、检测信号。sudo apt install -y linux-tools-virtual linux-cloud-tools-virtual安装后重启虚拟机。安装增强功能可选但推荐为了获得更好的显示体验如调整分辨率、鼠标无缝移动可以安装xrdp或使用 Hyper-V 的“增强会话模式”。但 Ubuntu 20.04 对 Hyper-V 增强会话的原生支持不如 Windows 客户端系统。一个更通用的方案是安装开源虚拟化工具spice-vdagentsudo apt install -y spice-vdagent安装后在 Hyper-V 管理器中设置虚拟机的“增强会话模式策略”为“允许”然后重新连接虚拟机可能会获得更好的集成体验。6. 核心功能配置与集成技巧虚拟机安装好了但要让它成为一个高效的生产力工具还需要进行一些深度配置。6.1 配置共享文件夹宿主机与虚拟机文件互通Hyper-V 不像 VMware 那样有直接的“共享文件夹”功能但我们可以通过配置 SMB/CIFS 共享或者使用开源工具来实现。方法一使用 SMB 共享推荐跨平台通用这是在 Linux 和 Windows 之间共享文件最标准的方式。在宿主机Win10上创建共享文件夹比如在 D 盘创建D:\ShareWithUbuntu。右键文件夹 - “属性” - “共享”选项卡 - 点击“共享...”按钮添加“Everyone”用户并给予“读取/写入”权限。记下共享路径通常是\\你的电脑名\ShareWithUbuntu。在 Ubuntu 虚拟机中挂载共享首先安装必要的客户端工具sudo apt install -y cifs-utils创建一个本地挂载点sudo mkdir /mnt/win_share获取你的 Windows 用户名和密码。然后编辑/etc/fstab文件实现开机自动挂载sudo nano /etc/fstab在文件末尾添加一行替换YOUR_WINDOWS_USERNAME和YOUR_PASSWORD//你的电脑名/ShareWithUbuntu /mnt/win_share cifs usernameYOUR_WINDOWS_USERNAME,passwordYOUR_PASSWORD,uid1000,gid1000,iocharsetutf8,file_mode0777,dir_mode0777 0 0uid和gid设置为你 Ubuntu 用户的 ID通常都是1000这样你就有读写权限了。保存文件。测试挂载sudo mount -a。如果没有报错ls /mnt/win_share就能看到宿主机共享的文件了。方法二使用 9p 文件系统实验性性能可能更好这是 Hyper-V 自带的共享机制但配置稍复杂且 Ubuntu 20.04 内核需要额外模块。这里不展开因为它不如 SMB 共享稳定和通用。6.2 配置 SSH 服务实现远程终端访问通过 Hyper-V 连接窗口操作虚拟机毕竟不方便。配置 SSH 后你可以用宿主机上的终端工具如 PowerShell、Windows Terminal、MobaXterm直接 SSH 到虚拟机复制粘贴文本也更方便。在 Ubuntu 虚拟机中安装 SSH 服务器sudo apt install -y openssh-server检查服务状态并确保开机启动sudo systemctl status ssh # 查看状态 sudo systemctl enable ssh # 设置开机自启获取虚拟机的 IP 地址ip addr show找到eth0或ens160这样的网卡查看inet后面的地址例如192.168.1.105。从宿主机连接打开 PowerShell输入ssh your_ubuntu_username192.168.1.105输入密码即可登录。注意虚拟机的 IP 地址可能是动态获取的DHCP重启后可能会变。为了解决这个问题你可以在宿主机路由器或 Hyper-V 的虚拟交换机管理器中为虚拟机的 MAC 地址设置静态 IP 分配或者在 Ubuntu 内部配置静态 IP。后者更可控编辑/etc/netplan/00-installer-config.yaml文件进行配置。6.3 性能调优与资源管理为了让虚拟机运行更流畅可以做一些调优。动态内存监控在 Hyper-V 管理器中虚拟机的“内存”设置里启用了动态内存。你可以在虚拟机运行时在“内存”设置中查看“当前分配”、“需求”、“状态”等指标了解内存使用情况。如果“状态”经常显示“低”说明分配的内存可能不足可以考虑提高“最大内存”限制。虚拟处理器拓扑在“处理器”设置中除了数量还可以设置“虚拟机保留”保证给虚拟机的 CPU 资源百分比和“相对权重”当多个虚拟机竞争资源时的优先级。对于单虚拟机场景通常不用调整。虚拟硬盘优化定期对动态扩展的 VHDX 文件进行压缩可以回收未使用的空间。首先在 Ubuntu 内部用sudo fstrim /命令如果文件系统支持 trim然后在 Hyper-V 管理器中对虚拟机关机右键选择“编辑磁盘”使用“压缩”功能。关闭不必要的视觉效果在 Ubuntu 桌面中可以进入“设置”-“外观”关闭动画、减少特效能释放一些 GPU 和 CPU 资源给应用。7. 常见问题与故障排查实录即使按照步骤操作也难免会遇到问题。这里记录了几个我亲自踩过的坑和解决方案。7.1 安装启动阶段问题问题1虚拟机启动后黑屏只有光标闪烁无法进入安装界面。可能原因最常见的是“安全启动”与显卡驱动问题。Hyper-V 第二代虚拟机的默认显卡是“Hyper-V 视频”某些 Linux 发行版的 Live 环境驱动可能初始化有问题。解决方案关闭虚拟机。在 Hyper-V 设置中找到“安全”-“启用安全启动”取消勾选。启动虚拟机。通常可以正常进入安装界面。安装完成后在 Ubuntu 内安装linux-tools-virtual包然后可以尝试重新在 Hyper-V 设置中启用安全启动有时就能正常工作了。问题2安装过程中在“安装类型”分区时看不到虚拟硬盘。可能原因虚拟机代数选错了。Ubuntu 20.04 需要第二代虚拟机才能正确识别其虚拟硬盘控制器SCSI。解决方案删除当前虚拟机注意是删除虚拟机配置不是删除虚拟硬盘文件重新创建在“指定代数”步骤务必选择“第二代”。7.2 系统运行与网络问题问题3Ubuntu 能 ping 通外网如 8.8.8.8但无法解析域名ping www.baidu.com 失败。可能原因DNS 配置错误。Hyper-V 的外部交换机有时不会正确传递 DNS 服务器地址。解决方案在 Ubuntu 中手动编辑 DNS 配置。编辑 Netplan 配置文件sudo nano /etc/netplan/00-installer-config.yaml在对应的网络接口如eth0下添加nameservers部分使用公共 DNS例如network: ethernets: eth0: dhcp4: yes dhcp4-overrides: use-dns: no nameservers: addresses: [8.8.8.8, 114.114.114.114] version: 2应用配置sudo netplan apply问题4宿主机和虚拟机之间网络延迟高或者拷贝文件速度慢。可能原因虚拟交换机的配置或物理网卡性能瓶颈。排查与解决在 Hyper-V 的虚拟交换机管理器中检查为外部交换机选择的物理网卡是否是千兆或更高速率的。如果是老旧的有线网卡或无线网卡性能会受限。在虚拟机设置中确保“硬件加速”下的“启用虚拟化标识”是开启的。在 Ubuntu 内尝试安装hyperv-daemons包如果可用以优化网络驱动sudo apt install hyperv-daemons。7.3 功能与集成问题问题5虚拟机时间与宿主机不同步。原因虽然安装了集成服务但时间同步服务可能未正常工作。解决确保虚拟机设置中“集成服务”下的“时间同步”已勾选。在 Ubuntu 内强制同步时间sudo systemctl stop systemd-timesyncd sudo systemctl start systemd-timesyncd sudo hwclock --hctosys --verbose也可以安装chrony或ntp进行更精确的时间同步。问题6如何优雅地备份或迁移整个虚拟机最佳实践使用“导出”功能。在 Hyper-V 管理器中关闭目标虚拟机。右键虚拟机选择“导出”。指定一个导出路径需要有足够空间。导出完成后你会得到一个包含虚拟机配置、虚拟硬盘快照等所有文件的文件夹。将这个文件夹拷贝到其他位置或电脑在目标 Hyper-V 管理器上“导入”即可。注意直接拷贝虚拟机运行时的 VHDX 文件和配置文件是不安全的可能导致数据不一致。导出/导入是最可靠的方式。经过以上步骤你应该已经拥有一个运行在 Windows 10 Hyper-V 上性能良好、功能完整、与宿主机紧密集成的 Ubuntu 20.04 开发或学习环境。这个组合的稳定性经过了我多个项目的长期考验无论是用于 Python/Web 开发、Docker 学习还是作为临时的 Linux 测试服务器都能提供可靠的支撑。关键在于前期把虚拟交换机、虚拟机代数、内存分配这些基础打牢后期在共享文件夹、SSH、性能调优上稍作打磨就能获得非常顺滑的跨平台体验。