ARTICLE DETAIL

资讯详情

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

虚拟机从选型到排障:VMware/VirtualBox/Hyper-V全攻略

虚拟机从选型到排障:VMware/VirtualBox/Hyper-V全攻略 最近热搜里全是vmware虚拟机安装教程虚拟机安装linux蓝屏无法启用虚拟机平台这类关键词说明很多人正在被虚拟机这件事折腾。我折腾虚拟机这些年踩过的坑不比你们少从VMware到VirtualBox再到Hyper-V都试过在Ubuntu和Windows之间来回切换还给朋友的物理机做过磁盘迁移。这篇就把我积累的完整经验一次讲清楚——从选软件到装系统从网络配置到故障排查尽量让你看完就能自己动手不用再到处搜教程。1. 选型这步没做好后面全是坑三类虚拟机软件的取舍逻辑很多人上来就问哪个虚拟机软件好其实这个问题要拆成两层看一是你的电脑是什么配置二是你要拿来跑什么系统。不同的组合最优解完全不同。1.1 VMware Workstation Pro新手和进阶用户最稳妥的选择如果你问我的个人偏好我首选VMware Workstation Pro。原因不复杂它对Windows和Linux两大宿主的兼容性最成熟装好之后很少出现莫名其妙的问题而且现在对个人用户已经免费了使用成本为零。它的快照功能很好用——我日常做实验改配置文件之前先拍个快照改坏了直接回滚几秒钟的事这个体验是VirtualBox比不了的。再说一个细节VMware对USB设备、显卡3D加速的支持比VirtualBox好一截。比如你想在虚拟机里跑个带图形界面的Linux发行版用VMware的体验会流畅很多。对初学者来说它默认就帮你配好了虚拟硬件你不用去纠结虚拟网卡型号、声卡型号这些东西默认设置基本能跑。1.2 VirtualBox轻量免费但有几个钉子户问题VirtualBox最大的优势是开源免费、体积小三四百MB的安装包老电脑也能带得动。但它的坑也很固定3D图形性能弱USB设备穿透偶尔会断虚拟机硬盘文件容易越用越大而且压缩麻烦。另外它在高版本Windows上有Hyper-V冲突问题如果你电脑开了内核隔离或Hyper-VVirtualBox会直接报错打不开虚拟机。我的建议是如果你的电脑配置比较低8GB内存以下或者你只是偶尔用一下虚拟机做个实验VirtualBox够了但如果你想认真拿虚拟机当开发或测试环境还是选VMware更省心。1.3 Hyper-VWindows自带但学习曲线陡峭Hyper-V是微软的虚拟化方案Win10/11专业版和工作站版自带虚拟化性能是最好的因为它用的是Type-1型Hypervisor架构。但问题也出在这——它对Linux桌面的兼容性一般很多Linux发行版跑在Hyper-V上会有图形驱动不完整的现象。而且Hyper-V的网络配置逻辑跟VMware完全不同它用的是虚拟交换机新手理解起来比较费劲。如果只是想装个虚拟机玩不建议从Hyper-V入门。对比项VMware Workstation ProVirtualBoxHyper-V费用个人用户免费开源免费Windows自带性能好中最好新手友好度高中低快照功能强大有但易出问题有但需命令行操作常见兼容问题少Hyper-V冲突、USB穿透Linux图形兼容一句话总结Windows电脑选VMware老电脑资源紧张选VirtualBox你是企业级用户要跑大量服务器虚拟机去学Hyper-V。2. 从镜像到能开机完整装出一台Windows虚拟机的七个关键细节选好软件下一步就是安装。这一节我以VMware Workstation Pro 17为例讲清楚从下载镜像到装完系统的完整流程同时把最容易翻车的几个环节单独拿出来说。2.1 BIOS你确定开了虚拟化这一步很多人漏了装虚拟机最常见的翻车点不是软件本身而是宿主机根本没开启CPU虚拟化功能。怎么检查按CtrlShiftEsc打开任务管理器切到性能页看CPU那一栏如果虚拟化后面显示已启用说明没问题显示已禁用就得重启电脑进BIOS。进BIOS的方式各品牌不一样通常是开机按Del或F2然后找Intel Virtualization Technology或AMD-V这个选项把它设为Enabled。注意有些主板BIOS里这选项藏在Advanced或CPU Configuration子菜单里。不开虚拟化VMware创建虚拟机时CPU核心数和内存分配都会受限启动系统时会非常卡甚至直接提示虚拟化功能不可用。2.2 镜像下载和虚拟机的创建流程系统镜像方面Windows 10/11直接去官网下载ISO文件就行。这里我建议下64位版本32位系统连4GB以上内存都用不满没有任何实用价值。Ubuntu的话去官网下载LTS版本稳定性好社区资料多。打开VMware点创建新的虚拟机选典型安装路径然后关键是这两步安装来源选稍后安装操作系统不要选安装程序光盘映像文件。原因是我们需要先建好虚拟机再手动挂载ISO这样能顺便检查虚拟硬件配置是否合理。选择操作系统类型时Windows 10 x64对应选Microsoft WindowsLinux对应选Ubuntu 64位。后面会让你分配CPU和内存。内存分配原则很简单虚拟机内存不要超过宿主机物理内存的一半留够给宿主机系统运行的空间。比如宿主机16GB内存虚拟机给4GB就够用要跑大型软件可以给6GB再多就容易卡。磁盘大小Windows系统建议至少60GB实际占用空间会逐渐涨Windows更新和软件安装都会吃空间Linux桌面系统40GB也够。磁盘类型选择时VMware会问你用NVMe还是SATA默认SATA完全够用除非你跑数据库等I/O密集型应用才需要NVMe。2.3 安装系统和VMware Tools别跳过这步虚拟机创建完成后打开虚拟机设置在CD/DVD选项里挂载下载好的ISO镜像然后启动虚拟机就会进入正常的系统安装流程跟实体机装系统一模一样。装完系统你会立刻发现一个严重问题界面分辨率贼小鼠标移入移出虚拟机很迟滞宿主机和虚拟机之间不能复制粘贴文件。这时候需要装VMware Tools它的作用就是补齐这些交互能力——自动适应分辨率、共享剪贴板、拖放文件、更好的网络驱动等。在VMware菜单栏虚拟机里点安装VMware Tools系统里会弹出一个虚拟光驱运行里面的安装程序一路下一步然后重启虚拟机一切就顺畅了。这个Tools是很多人装完系统忘记的步骤但恰恰是虚拟机体验的关键。提示如果你是给Ubuntu这样的Linux虚拟机装Tools命令行里执行sudo apt install open-vm-tools比挂载光盘更省事效果一样。2.4 装完先拍快照这是你以后保命用的我刚接触虚拟机那会不懂快照的重要性结果有一次配环境配到一半把系统搞崩了只能重装大半天时间就这么没了。现在我的习惯是每完成一个阶段的配置就拍一张快照。快照就像游戏存档系统被弄坏了直接读档不用重来。VMware的快照在虚拟机菜单里点快照-拍摄快照起个名字方便认。建议第一个快照拍在系统刚装完、打好所有驱动和Tools的时候这个时间点的系统最干净以后想回到纯净状态随时可以恢复。3. 网络是虚拟机最绕的坎联网、固定IP、域名访问一次理清热搜词里有安卓虚拟机怎么联网修改虚拟机ip地址主机访问虚拟机网站这些都指向同一个核心问题虚拟机的网络模式。这一节是整篇的重头戏我会把三种网络模式讲透再给两个真实场景的配置案例。3.1 NAT、桥接、仅主机三种模式分别解决什么问题VMware给虚拟网络分了三种常见模式你可以把它们理解成三种身份NAT模式默认虚拟机躲在宿主机身后上网对外只有一个本体。宿主机像一个路由器虚拟机通过它访问外网外部设备不直接可见虚拟机。这种模式的好处是配置简单虚拟机自动获取IP就能上网且不会占用局域网IP坏处是外部设备要访问虚拟机需要做端口转发。桥接模式虚拟机直接插在局域网里跟宿主机平级有自己的内网IP局域网里其他设备可以直接访问它。适合需要对外提供服务的场景比如在虚拟机里搭个网站让同事访问。坏处是它会占用一个局域网IP且如果网络环境变化比如换Wi-FiIP会变。仅主机模式宿主机和虚拟机之间组成一个封闭网络虚拟机无法访问外网。适合安全测试、离线实验或者让多个虚拟机之间互相通信但不影响物理网络。3.2 场景一宿主机用浏览器访问虚拟机里的网站你有一个网站跑在虚拟机里宿主机的浏览器想访问它怎么做如果虚拟机选的是NAT模式可以在VMware的虚拟网络编辑器里加一条端口转发规则。比如虚拟机的Nginx监听80端口宿主机访问http://localhost:8080就想映射到虚拟机的80端口那就把规则配置为宿主机端口8080- 虚拟机IP的80端口。端口转发配好之后宿主机浏览器直接打开http://localhost:8080就能看到虚拟机的网站了。这种方式的好处是安全因为外部设备无法直接渗透到你虚拟机内部。3.3 场景二桥接模式下手动固定IP桥接模式下虚拟机默认会通过DHCP获取IP但DHCP的IP不稳定路由器重启可能就变了导致你配置好的服务突然掉线。手动固定IP的方法Windows系统去控制面板改IPv4设置Linux系统比如Ubuntu 22.04及以上用Netplan方式sudo nano /etc/netplan/01-network-manager-all.yaml把内容改成这样注意缩进格式network: version: 2 ethernets: ens33: dhcp4: false addresses: - 192.168.1.120/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: - 223.5.5.5 - 8.8.8.8然后执行sudo netplan apply生效ens33要替换成你虚拟机实际的网卡名ip addr命令可以查看。IP这里建议选一个跟主路由器同一网段、且不在DHCP分配范围内的地址比如主路由器分配范围是192.168.1.100-199你就用192.168.1.120边上那些地址段自己挑一个。3.4 场景三本地虚拟机多端口Nginx开发环境自定义域名这个场景在热搜里出现了完整描述本地虚拟机 多端口nginx 开发环境多站点自定义域名配置。我理解你要实现的效果应该是本地开发机上通过不同的自定义域名访问虚拟机里的多个站点比如a.local和b.local分别指向虚拟机里两个不同服务端口。实现思路分三步。第一步在虚拟机里装好Nginx配置好不同的服务站点让它们监听不同端口比如一个监听8081一个监听8082。第二步在宿主机上改hosts文件Windows路径是C:\Windows\System32\drivers\etc\hostsLinux是/etc/hosts把域名映射到虚拟机IP。假设虚拟机固定IP是192.168.1.120192.168.1.120 a.local 192.168.1.120 b.local第三步在虚拟机Nginx里配置反向代理让不同域名跳转到对应端口。一个典型的配置写法类似server { listen 80; server_name a.local; location / { proxy_pass http://127.0.0.1:8081; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } server { listen 80; server_name b.local; location / { proxy_pass http://127.0.0.1:8082; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }改完sudo nginx -s reload宿主机浏览器打开http://a.local就能访问虚拟机的8081端口服务了。这个方案的好处是开发的时候域名固定不会因为端口变动把前端联调搞乱。4. 能开机能上网只是开始Linux虚拟机和磁盘迁移的进阶玩法Windows装好了网络也通了下一步就该玩点更实用或者更折腾的。这一节讲三件事Ubuntu虚拟机的安装要点、用DiskGenius把物理机转成虚拟机、以及国产系统在虚拟机里的运行情况。4.1 Ubuntu虚拟机安装的几个实用取舍Ubuntu是Linux发行版里在虚拟机里跑得最顺的之一跟VMware的兼容性很好。安装时重点注意三点安装类型选最小安装不要选完整安装。完整安装带一堆游戏、办公软件占空间又没用最小安装干净后面缺什么再装什么。分区时直接用默认的使用整个磁盘除非你知道自己在干嘛。新手手动分区容易把/boot分区分太小后面内核升级就报错。如果电脑配置允许给虚拟机开2个以上的CPU核心分配4GB以上内存不然打开浏览器都卡。这个在虚拟机设置里随时能改不用重装系统。装完Ubuntu之后跟Windows一样先装好VMware Tools或者open-vm-tools然后配置好软件源——国内用户建议换成阿里云或清华镜像源sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list再sudo apt update速度会明显提升。4.2 用DiskGenius把物理机磁盘转成虚拟机U盘热搜词里有一条diskgenius转虚拟机为u盘这个场景我猜是你在实体机上有一整套环境想把它原封不动搬进虚拟机里跑。DiskGenius确实能做到原理是把物理磁盘的分区做成镜像再转成虚拟机磁盘格式或者把系统做到U盘里当启动盘用。大致流程是先用DiskGenius给物理机磁盘做分区备份保存为.pmf镜像文件然后在DiskGenius里用虚拟机磁盘功能把它转换成.vmdk文件VMware的磁盘格式最后在VMware里新建虚拟机时磁盘类型选使用现有虚拟磁盘指向这个.vmdk文件。注意转换后的虚拟机第一次启动时Windows系统大概率会提示激活失效或者蓝屏因为磁盘控制器驱动不匹配。处理方式是进入安全模式给系统打上通用的SATA/SCSI驱动再正常重启。如果是Linux系统相对简单一点因为内核自带驱动比较多。实在不想折腾也可以把物理机系统做成U盘启动盘DiskGenius直接有这功能然后把U盘插到宿主机上VMware里建虚拟机时选择物理磁盘启动这样相当于用U盘里的系统引导虚拟机但性能会比VMDK模式差。4.3 银河麒麟虚拟机的运行情况热搜里有银河麒麟虚拟机管理系统这是国产Linux发行版里比较多人用的。它在VMware里安装没有太大障碍内核自带virtio驱动装完系统后装好open-vm-tools基本功能都能用。需要注意的地方是银河麒麟基于Debian系软件安装走apt但部分软件源需要单独配置否则装软件会提示找不到包。在虚拟机里跑银河麒麟我测试下来比较稳的是用仅主机模式因为它的网络管理工具跟Ubuntu不太一样NAT模式下偶尔会出现网卡不认的情况。如果你要用桥接模式记得手动配置静态IP避免DHCP分配之后无法正常连接。5. 热搜里的那些报错五个高频虚拟机故障的定位与处置最后一部分把热搜词里出现的几个典型报错集中拆一遍。这些报错如果你都遇过恭喜你虚拟机生涯的基本功就算掌握得差不多了。5.1 VMware启动虚拟机直接蓝屏无法启用虚拟机平台这个报错在Win10/11上非常常见问题根源在于微软的Hyper-V或内核隔离与VMware的虚拟化层冲突。Windows开启基于虚拟化的安全功能后会抢占CPU虚拟化指令VMware起不来系统就蓝屏。排查思路打开启用或关闭Windows功能把Hyper-V、Windows虚拟机监控程序平台、适用于Linux的Windows子系统这三项全部取消勾选然后重启系统问题通常就解决了。如果还不行检查内核隔离里的内存完整性是否开启把它关掉再试。注意这个操作会关闭Windows沙盒和WSL2功能如果你日常依赖WSL2就别用VMware了改用Hyper-V或者VirtualBox的兼容模式。5.2 VMware Workstation无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用这个提示看起来很别扭像个权限问题。常见原因是VMware的授权服务VMware Authorization Service被禁用或崩溃了。右键此电脑-管理-服务找到VMware Authorization Service把它设为自动启动然后手动启动一次再打开VMware就正常了。另一个隐蔽原因是你的Windows用户名是中文VMware的临时授权目录识别不了中文路径。解决办法是新建一个英文用户迁过去用或者在C:\ProgramData\VMware下重建授权文件但后者操作复杂建议直接换账号。5.3 VNC Viewer连接虚拟机后鼠标变成一个点没反应这个一般是VNC协议在传输鼠标指针图像时出错特别是虚拟机里装的是Linux桌面且没有正确安装桌面环境的鼠标主题时最常见。解决思路不是死磕VNC设置而是调整虚拟机桌面本身的指针。在Linux虚拟机里执行sudo update-alternatives --config x-cursor-theme选一个合适的指针主题然后重启VNC服务。如果无效卸载重装VNC服务端如sudo apt remove tigervnc-standalone-server再重装多半能解决。在Windows虚拟机里鼠标变点优先检查VMware Tools是否完好重新运行一次Tools安装包的选择修复模式就好。5.4 VM创建虚拟机闪退创建虚拟机界面一打开就闪退明显是图形渲染异常跟虚拟机本身没关系。先去VMware官网更新显卡驱动相关组件或者把VMware的硬件加速关掉打开VMware主程序编辑-首选项-显示把加速图形选项取消勾选。这步之后基本能恢复正常。如果还闪退检查是否安装了不兼容的美化主题或第三方输入法这类程序有时会注入到VMware进程里导致崩溃卸掉就干净了。5.5 Win11虚拟机安装出现Boot失败装Win11时提示Boot失败大概率是虚拟机的引导固件设置不对。Win11要求UEFI引导和安全启动而默认虚拟机有时用的是旧式BIOS。处理方式关闭虚拟机打开虚拟机设置在选项页里把固件类型改为UEFI同时勾选启用安全引导。这两步设置完再启动安装程序就能顺利进引导界面了。另外Win11还要求TPM模块VMware里在虚拟机设置的可信平台模块里勾选添加虚拟TPM就能满足系统检测要求。最后分享一个我自己踩过之后的习惯虚拟机这工具属于用得越久越觉得它值。我现在不管装什么系统环境一配完就拍快照这种习惯帮我避免了很多次原地重来的痛苦。如果你是第一次玩虚拟机我建议你按顺序走一遍装软件、开虚拟化、建机、装系统、装Tools、配网络、拍快照——这一套流程走通之后你会发现虚拟机的逻辑跟实体机其实没什么两样无非是多了一层层抽象。真正拉开差距的是你对网络模式的理解以及遇到报错时先看Windows功能开关和BIOS设置这个排查思维。以后碰到相关报错翻回这篇里面对照一下应该能省不少搜帖子的时间。
返回列表