ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Windows虚拟机搭建全指南:从VMware选型到网络配置与踩坑修复

Windows虚拟机搭建全指南:从VMware选型到网络配置与踩坑修复 前阵子刚帮朋友在Windows笔记本上折腾了一套虚拟机环境从软件选型到系统安装再到网络配置中间踩了不少坑也总结了不少实用技巧。这里把这套完整过程整理出来给准备在Windows上装虚拟机、又不想走弯路的朋友一份能直接照着操作的参考资料。无论你是想体验Linux系统、搭个开发环境隔离项目还是单纯想在系统里再跑一个系统做测试这篇内容基本都能覆盖到。1. 先决定用哪款虚拟机三种主流方案怎么选不后悔这一步很多人上来就跳过结果装到一半发现功能不够用或者跟系统其他功能起冲突最后只能推倒重来。我在Windows上常用的虚拟机方案主要就三个VMware Workstation、VirtualBox、还有微软自家的Hyper-V。它们各有脾气选对了能省很多事。1.1 三种方案的定位差异先看一张我整理的对比表看完你基本就有数了对比项VMware Workstation ProVirtualBoxHyper-V授权方式付费官方有试用版开源免费Windows专业版/企业版内置易用程度最省心中等上手门槛高系统兼容性Windows/Linux客户机覆盖广覆盖较广偏向Windows/LinuxmacOS支持差3D加速较好有3D加速开关一般3D支持较弱普通和游戏兼容较好一般较差与WSL/Docker共存注意VT冲突注意VT冲突本身就是Hypervisor适合人群追求稳定省事预算有限、轻量使用纯Windows环境、不想装第三方软件先说结论如果你只是偶尔在Windows里跑个Ubuntu或者测试用Win10VirtualBox完全够用免费还轻量如果你要跑多个虚拟机、长期做开发测试、或者需要让虚拟机里跑GUI程序比较流畅别犹豫直接上VMware Workstation Pro它的整体稳定性和性能调度在Windows平台上确实老道如果你正好是Windows专业版用户又懒得装额外软件Hyper-V也能用但对个人使用来说配置链路长虚拟化嵌套也比较折腾。我自己主力用VMware。为什么因为它对USB设备直通、分屏分辨率适配、磁盘性能的管理做得最细尤其在Windows上跑Linux虚拟机时体验特别好。VirtualBox我也用过好几年说句公道话免费软件里它已经很强了但偶发的VM卡顿和USB兼容问题确实比VMware多一点。1.2 网络上的主流热词也值得参考搜“vmware虚拟机安装教程”“虚拟机安装linux系统”的网友特别多这也侧面说明大家在Windows上装虚拟机最常见的目的就是跑Linux。如果你也是这个目的我再给你一个补充建议先想清楚你是要“完整桌面环境”还是“命令行开发环境”。要完整桌面VMware或VirtualBox只要命令行和跑服务可以先看看Windows自带的WSLWindows Subsystem for Linux它比虚拟机轻得多启动速度也快但隔离性弱于虚拟机。两个工具不冲突很多人是同时装的日常小任务用WSL需要完整系统隔离时再开虚拟机。2. 从下载到系统开机整个安装链路最容易出错的地方选好方案后最关键的环节就是安装了。这一步看似简单但我见过太多人卡在“下载完双击安装下一步一步到最后新建虚拟机时却一脸懵”。这里我把VMware Workstation Pro的完整流程走一遍同时把别人容易出错的地方标出来。2.1 VMware Workstation Pro的安装过程去官网下载安装包现在VMware Workstation Pro对个人用户已经很友好了官网有试用版可以正常安装使用。安装过程没什么特殊选项一路下一步就行。但有两个细节建议你别跳过安装路径建议不要装在C盘系统盘尤其你以后要建多个虚拟机、每个虚拟机动辄几十GB放D盘或独立数据盘更从容。组件勾选安装时默认会选“增强型键盘驱动程序”这个建议保留。它能改善虚拟机里键盘映射问题尤其是你用笔记本外接键盘时。安装完成后第一次打开有可能提示“需要安装Microsoft Visual C运行库”去微软官网下载最新的Visual C Redistributable装上就行。这不是什么异常是VMware依赖这些运行库。2.2 新建虚拟机时最容易出错的配置项新建虚拟机时很多人喜欢直接“典型安装”然后一路下一步结果后面卡在“系统起不来”或者“屏幕分辨率奇怪”之类的问题上。我建议选“自定义”模式有几个配置项值得多看一眼兼容性选VMware Workstation当前最新版本对应的选项即可不用刻意往低版本调。如果你是拿旧版本创建的虚拟机文件用新版本打开时它会提示升级这时需要注意升级后旧版本可能打不开如果有需要回退的情况提前备份.vmx文件。客户机操作系统这里要选对。安装Ubuntu就选Linux子版本选Ubuntu 64位安装Windows就选Microsoft Windows再选对应的系统版本。选错会导致后面引导方式不匹配最典型的表现就是装完系统进不去桌面。固件类型如果虚拟机要装Windows 11或较新的Ubuntu版本建议选UEFI并勾选“安全引导”如果装老系统比如Windows 7或旧Linux发行版保持默认的BIOS反而更稳妥。这个点很小但直接决定你能不能顺利过启动这一关。2.3 系统镜像和安装引导装系统需要先准备ISO镜像文件。这里务必记住所有系统镜像都从官方渠道下载不要下不明来源的“精简版”“Ghost版”虚拟机上装这类镜像出问题的概率非常高而且来源不可控没人知道里面被塞了什么。Windows镜像微软官网有下载工具Ubuntu从官网下载桌面版或服务器版ISO即可。安装时的引导过程跟物理机装系统很像。以Ubuntu为例虚拟机启动后选择“Install Ubuntu”一路选语言、键盘布局、联网更新分区部分如果只是体验或轻量开发选“Erase disk and install Ubuntu”让安装器自动分区就好。注意这里虚拟机里看到的“disk”就是虚拟磁盘不会动到你Windows里真实的数据但也要避免误操作把真实硬盘挂进虚拟机导致数据被清不熟悉的用户不要在虚拟机里手动挂载宿主机的物理磁盘。2.4 安装VMware Tools系统装完后第一件事不是东点西点而是安装VMware Tools。这一步很多人直接忽略然后抱怨“怎么全屏分辨率那么低”“怎么从Windows拖文件到虚拟机拖不进去”“怎么剪贴板不能共享”。其实这些问题的根源都指向同一个东西——VMware Tools没装。在VMware菜单栏选“虚拟机” - “安装VMware Tools”虚拟机里会弹出一个虚拟光驱里面跑一下安装脚本就行。装完重启虚拟机分辨率自动适配、拖拽文件、共享剪贴板都生效。VirtualBox里对应的功能叫“增强功能包”Guest Additions也是装完系统后第一件事就要装。3. 网络模式与文件共享虚拟机真正“能用”的分水岭虚拟机装完了系统也能进了但很多人到这一步还是会蒙为什么虚拟机里上不了网为什么我Windows上的文件在虚拟机里看不着为什么宿主机访问不了虚拟机里跑的服务这些问题的核心都是网络模式和文件共享的配置没搞明白。3.1 三种网络模式的区别和选型VMware和VirtualBox都提供三种常见的网络模式名字略有不同但原理一样网络模式一句话理解虚拟机能否访问外网宿主机能否访问虚拟机局域网其他设备能否访问虚拟机NAT虚拟机借宿主机“出门”上网能能通过网关IP或端口转发不能桥接虚拟机和宿主机平级像局域网里一台独立设备能能能仅主机虚拟机和宿主机单独组了一个小局域网不通外网不能除非额外配置能不能先说NAT这是虚拟机的默认配置。它的原理就是宿主机当网关虚拟机往外发的网络请求都由宿主机转发出去。这种方式最省心虚拟机里直接就能上网也不占用外部局域网IP适合绝大多数普通使用场景。桥接模式更像是把虚拟机伪装成一台真实主机。比如你家里路由器分配IP虚拟机桥接后会直接从路由器拿到一个和宿主机同网段的IP局域网里其他设备可以直接访问它。这个模式适合做服务器测试、多设备联调。仅主机模式用得较少适合完全隔离的环境测试但很多初学者不知道怎么让它上网。如果你只想虚拟机访问宿主机上的服务NAT模式也能做到并不需要切到仅主机。3.2 宿主机和虚拟机互访的配置细节实际使用中最常见的一个需求是我在Windows宿主机上用浏览器访问虚拟机里跑的服务比如Ubuntu里开了个Nginx监听80端口宿主机要怎么访问如果是NAT模式VMware默认给虚拟机分配的网段通常是192.168.x.0/24虚拟机的IP可能是192.168.x.128之类的。宿主机访问虚拟机直接用这个IP就能通不需要额外配置。如果你的虚拟机开的是Web服务默认监听的是80端口在宿主机浏览器直接敲虚拟机IP就能访问。前提是虚拟机里防火墙放行了该端口Ubuntu里Ufw防火墙没放行时会拦掉流量遇到“宿主机能ping通虚拟机但浏览器访问不了”的情况多半是防火墙的问题。如果是Hyper-V或VirtualBox原理类似NAT模式下宿主机也能通过虚拟机的IP直接访问。但要注意VirtualBox的NAT模式下默认网段往往和VMware不一样查看一下虚拟机的实际IP即可。宿主机访问虚拟机里的服务还有一种更精细的方式端口转发。比如你想在宿主机上用 localhost:8080 访问虚拟机里的80端口可以在VMware的NAT设置里加一条转发规则。这不复杂但很多人不知道具体在哪里配。VMware里路径是编辑 - 虚拟网络编辑器 - 选择NAT模式对应的网卡 - NAT设置然后把宿主机端口和虚拟机IP端口对应起来。3.3 文件共享与拖拽传输文件共享有几个层次。最简单的就是拖拽。装好VMware Tools或VirtualBox增强功能包后直接从Windows窗口里把文件拖到虚拟机桌面或反向拖回来。这个方法适合传小文件传大文件容易卡。大文件还是用共享文件夹。VMware里在“虚拟机设置” - “选项” - “共享文件夹”中添加一个Windows目录虚拟机里通常挂载在 /mnt/hgfs 下可以直接访问。VirtualBox则是在“共享文件夹”里配置然后虚拟机里手动执行挂载命令。还有一种做法是走网络共享。把虚拟机设为桥接模式然后在Windows里开共享文件夹虚拟机里通过SMB协议访问。这个方法适合虚拟机跑服务器、需要稳定大数据交换的场景。4. 性能、显卡与磁盘让虚拟机少卡顿的调优细节很多人对虚拟机的印象是“又慢又卡”。其实虚拟机卡不卡很大程度上取决于你前期的资源分配和几个关键开关有没有开对。这里讲几个直接影响性能的细节。4.1 CPU与内存分配的原则给虚拟机分配CPU和内存不是“越多越好”。如果你是个人的Windows笔记本总内存16GB那给虚拟机分4GB~6GB比较合适如果总内存8GB虚拟机顶多分3GB分再多Windows宿主机自己就要开始卡了最后虚拟机再流畅也白搭。CPU同理不要一股脑把8个核全给虚拟机留一半给宿主机用。分配完之后还有一个容易被忽略的开关虚拟化引擎。在虚拟机设置的“处理器”选项里有一项目前是“虚拟化Intel VT-x/EPT”或“AMD-V/RVI”相关的选项。如果你要在虚拟机里再跑Docker、再嵌套跑别的虚拟机这个必须有。但要注意它和Windows的Hyper-V功能存在冲突如果你开启了Hyper-VVMware和VirtualBox里的这类虚拟化选项反而可能导致虚拟机启动蓝屏或异常这也是一个很经典的坑后文会说。4.2 显卡与3D加速虚拟机玩游戏的具体情况先给个实在的建议如果你是想在虚拟机里玩大型3D游戏还是趁早打消这个念头。虚拟机里的显卡是虚拟出来的性能跟物理机差距很大。但是像一些轻量级游戏、老游戏、模拟器游戏或者2D游戏虚拟机完全能跑。关键是打开3D加速。VMware里在“虚拟机设置” - “显示器”里勾选“加速3D图形”显存大小尽量调高。VirtualBox也有类似选项但在3D支持上偏弱。一旦从虚拟机里看3D画面有闪烁、颜色异常先检查显卡驱动。Linux虚拟机里需要装开源的Mesa驱动Windows虚拟机里则需要装对应的虚拟显卡驱动这些驱动通常都包含在VMware Tools或增强功能包里。另一个和性能体感相关的点是“显示分辨率”。很多人在虚拟机里安装完系统发现分辨率最高只能到800x600或者1024x768怎么调都上不去这大概率就是VMware Tools没装。装好工具后分辨率就能自适应Windows窗口大小这也是为什么前文特意强调第一步装VMware Tools。4.3 磁盘扩容和瘦身虚拟机的磁盘是一个文件或多个分卷文件它会随着你安装软件、复制数据而越来越大。即使你删除了虚拟机里的文件这个磁盘文件也不会自动缩小。这时可以留意两个操作第一个是手动压缩磁盘。以VMware为例确保虚拟机里把不需要的大文件删掉最好再执行一次磁盘清理然后关闭虚拟机。在VMware里打开“虚拟机设置” - “硬盘” - “磁盘实用工具”用“压缩”功能释放空间。VirtualBox的虚拟盘VHD/VBOX文件后面是VDI在管理界面里也有“压缩”入口。第二个是磁盘扩容。如果你的虚拟磁盘当初分太小后期不用重建虚拟机VMware里同样在“虚拟机设置” - “硬盘”里调大容量扩容后在Linux虚拟机里用growpart、resize2fs等命令扩展分区和文件系统即可。这个操作要说明一点扩容是对虚拟磁盘文件本身做处理建议先备份虚拟机文件避免误操作导致数据异常。5. 高频踩坑复盘与三个真实使用场景写到这里我觉得只是把功能和步骤讲清楚还是不够真正让人崩溃的往往是在实际操作中遇到的那些“不是教程里会写”的坑。这一章我把这些年见过的、自己踩过的高频问题列出来再结合热词里大家关心的几个使用场景把过程完整走一遍。5.1 启动即蓝屏Hyper-V冲突这是Windows上装VMware或VirtualBox最经典的问题。你高高兴兴启动虚拟机结果Windows直接蓝屏或者虚拟机启动时报错“不能为该虚拟机打开一个新任务”“VMware Workstation和Device/Credential Guard不兼容”等。根因是Windows的Hyper-V相关组件占了VT-x虚拟化能力其他虚拟机软件拿不到硬件虚拟化权限。解决方式不止一种但方向很明确二选一别让两者同时抢VT-x。如果你不用Hyper-V就把Windows功能里的“Hyper-V”“Windows虚拟机监控程序平台”“适用于Linux的Windows子系统”“虚拟机平台”全部关掉然后重启。如果还有问题可能是Device Guard或Credential Guard在起作用需要通过关闭基于虚拟化的安全性VBS来解决这个在Windows安全中心里可以找到相关设置也可以直接用系统信息工具检查“基于虚拟化的安全性”是否处于运行状态如果运行中就按官方指引关闭。这项改动涉及系统安全设置建议确认自己不需要该功能后再操作而且改完一定重启两三次观察稳定性。反过来如果你主要用WSL或Docker需要Hyper-V保持开启那平时就不要用VMware和VirtualBox用Hyper-V管理虚拟机就行。5.2 虚拟机里“没有64位选项”新建虚拟机时客户机操作系统类型列表里看不到64位选项这也非常常见。原因基本就是硬件虚拟化没开。进BIOS/UEFI把Intel Virtualization Technology或AMD SVM Mode打开。不同品牌笔记本的BIOS入口不一样一般是开机按F2、F10、Del或Esc找到带有Virtualization或SVM字样的选项设为Enabled保存重启就好。不少品牌笔记本默认是关闭的这也是为什么虚拟机软件装好了但死活找不到64位Linux或Windows版本选项的原因。5.3 虚拟机Linux的IP怎么确认导入别人做好的虚拟机镜像或者克隆了虚拟机很常见的情况是不知道当前Linux虚拟机的IP地址。登录进去后执行 ip addr 查看找到类似 192.168.x.x 或 172.x.x.x 的地址就是当前IP。如果IP是动态获取的重启后可能变化开发环境建议在虚拟机里配置静态IP尤其是在NAT模式下把IP固定下来后面做端口转发和宿主机访问都更稳定。5.4 场景一在Windows虚拟机里跑Ubuntu做开发环境这是最典型的使用方式。比如你想在Windows笔记本上运行一套Linux开发环境隔离掉宿主机里的各种环境变量冲突这时虚拟机开一个Ubuntu服务器版就够了。建议分配2核4G、磁盘40G安装完系统后第一时间装OpenSSH Server然后用宿主机终端连接SSH操作体验比在虚拟机窗口里强很多。在Ubuntu虚拟机里跑Docker时有一个特别容易踩的坑执行 docker run 后发现容器一直退出查看日志报的是“failed to start containerd”或iptables相关错误大概率是内核模块和网络规则问题。更常见的其实是运行Elasticsearch时报虚拟内存区域不足。这个问题的标准解法是在Linux虚拟机里执行sudo sysctl -w vm.max_map_count262144想永久生效编辑 /etc/sysctl.conf加入一行 vm.max_map_count262144 然后执行 sysctl -p。如果你在虚拟机里跑ES经常莫名其妙退出检一下这个参数大概率能解决。5.5 场景二本地加虚拟机组合配置Nginx多站点多域名热搜词里有一条很具体“本地虚拟机 多端口nginx 开发环境多站点自定义域名配置”。这个场景我实际搭过把流程拆给你。思路是Windows宿主机上用浏览器访问自定义域名虚拟机里Nginx提供服务。要实现这个需要两段配置。第一段DNS解析。本地没有DNS服务器最简单的方式是改Windows的hosts文件C:\Windows\System32\drivers\etc\hosts把自定义域名指向虚拟机IP。比如虚拟机的IP是需要在hosts里加两个条目site1.test site2.test第二段Nginx多站点配置。在Ubuntu虚拟机里安装Nginx然后在 /etc/nginx/conf.d/ 下分别建立 site1.test.conf 和 site2.test.conf每个配置文件里用 server_name 区分不同域名listen监听不同端口或者统一用80端口靠 server_name 区分。然后让不同项目跑在不同端口上比如:server { listen 80; server_name site1.test; root /var/www/site1; } server { listen 80; server_name site2.test; root /var/www/site2; }配置完之后 reload Nginx宿主机浏览器直接访问 http://site1.test 和 http://site2.test 就能分别到两个站点。这个方法特别适合本地多项目开发的场景项目之间完全隔离还不用开一堆端口和进程。同样的思路如果你想用“多端口”就把Nginx里 listen 从80改成8081、8082等但宿主机访问时就要加端口号。混合玩法也很常见一个站点用80端口配好自定义域名另一个站点用8081端口各自用途不同互不干扰。这套配置我自己的经验是优先用“80端口 server_name”方式看起来最干净端口方式适合临时小程序或者不方便改hosts的场景。5.6 场景三磁盘镜像反向操作还有一个热搜词“diskgenius转虚拟机为u盘”这属于逆向操作就是从虚拟机磁盘生成一个物理U盘启动盘用来把虚拟机里的系统搬回物理机。这个操作比较进阶我提一个安全提醒把虚拟机磁盘直接写入U盘前务必确认U盘里没有重要数据因为全程会完全覆盖U盘同时要在虚拟机磁盘关闭状态下操作避免数据不一致。DiskGenius这类工具处理的是虚拟磁盘文件操作前最好把虚拟机磁盘文件复制一份出来做备份万一操作失误不至于影响到虚拟机本体。写在最后的实际操作体会折腾虚拟机这件事理论说得再多都不如亲手建一个来得快。我的建议是拿到这篇文章后先按选型思路定一个方向如果是第一次装就用VirtualBox装一个Ubuntu Desktop把拖拽、剪贴板共享、NAT上网这些基础功能挨个试一遍整个过程不会超过半小时。跑通之后再考虑VMware、Hyper-V的进阶玩法。我在实际使用中感受最深的一点是虚拟机这东西最怕的就是“硬件虚拟化开关没开”和“Tools没装”这两个问题能解释大半的启动异常和性能问题。遇到问题先检查这两项比在网上反复搜索有效得多。最后再分享一个小技巧虚拟机文件千万别只放在C盘。我见过太多人C盘爆红后发现虚拟机目录占了100多GB又不敢直接删最后只能花一下午迁移。从建虚拟机的第一天起就把工作目录设置到数据盘这是最省心的习惯。硬盘这一关过了后续安装系统、配置网络、跑服务都会顺很多。
返回列表