尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

VM虚拟机全攻略:从安装配置到常见报错排查

VM虚拟机全攻略:从安装配置到常见报错排查 很多朋友在接触虚拟化、学习服务器运维或者想在一台电脑上同时使用多套系统时都会频繁看到“VM”这个缩写。有人以为它是一个软件有人以为它特指 VMware Workstation还有人把它和 Java 虚拟机混为一谈。这篇文章就围绕“VM 虚拟机”展开带你理清 VM 的概念、下载安装、系统部署、网络配置、共享文件、快照备份以及高频报错排查等完整内容帮助你少走弯路。本文适合刚接触虚拟机的新手也适合已经在使用 VMware 但经常碰到配置问题的开发者。无论是安装 Windows、Ubuntu、CentOS还是解决 WSL 与 VMware 冲突、虚拟机无法联网、复制粘贴失效、FinalShell 连接超时等问题这篇文章都会给出明确的解决思路和可复制的操作步骤。1. 背景与核心概念1.1 VM 到底指什么在技术语境中VM 是 Virtual Machine虚拟机的缩写。虚拟机本质上是通过软件模拟出一台具有完整硬件系统功能的计算机它可以运行在物理主机的操作系统之上并且拥有自己独立的虚拟 CPU、虚拟内存、虚拟硬盘、虚拟网卡等设备。你在虚拟机里安装操作系统时体验与在真实电脑上装系统基本相同但它其实只是主机上的一个普通文件和一组进程。常见 VM 产品形态有两类一类是桌面级虚拟化软件比如 VMware Workstation Pro、Oracle VM VirtualBox它们适合开发测试、学习实验另一类是服务器级虚拟化平台例如 VMware vSphere/ESXi适合数据中心和生产环境。本文主要以后者之外的桌面级 VMware Workstation 为主线讲解这也是大多数个人开发者和运维初学者最常接触的“VM”。1.2 虚拟机解决了什么问题虚拟机最大的意义是隔离和复用。你可以在同一台物理电脑上同时运行 Windows、Linux、macOS 等不同操作系统而互不干扰可以在虚拟机中做破坏性实验、测试恶意软件样本、搭建集群、模拟内网环境而不需要担心宿主机崩溃还可以把整套虚拟机文件复制到另一台电脑快速迁移开发环境。对于开发者来说还有一层重要价值是环境一致性。比如你本地是 Windows但代码要部署到 CentOS 服务器上就可以在虚拟机里安装 CentOS保证开发环境与生产环境一致。对于运维人员来说虚拟化还能提高硬件资源利用率降低机房成本这也是云计算的基础技术之一。1.3 容易混淆的几个概念VMware Workstation 与 VMware vSphere前者是装在个人电脑上的软件用于创建和管理本地虚拟机后者是服务器虚拟化平台通过 Web 管理多台物理服务器上的虚拟机。VM 与容器虚拟机包含完整操作系统隔离更强但资源占用更高容器共享宿主机内核启动更快、资源占用更低。JVM 与 VMJVMJava Virtual Machine是运行 Java 字节码的虚拟机它虚拟的不是整个电脑而是 Java 程序的执行环境本文中的 VM 主要指系统级虚拟机。2. 环境准备与下载安装2.1 硬件要求与宿主机建议在开始安装 VMware Workstation 之前建议先确认你的宿主机配置。虚拟机运行时会额外消耗 CPU、内存和磁盘空间如果宿主机内存太小虚拟机体验会非常差。以下配置可以作为一个通用参考实际按需调整项目最低要求推荐配置CPU支持虚拟化技术的双核 CPU四核及以上BIOS 中开启 VT-x/AMD-V内存8 GB16 GB 或更高磁盘40 GB 可用空间建议使用 SSD预留 100 GB 以上操作系统Windows 10 / 11 或主流 Linux 发行版Windows 11 / Ubuntu 22.04 LTS 等如果你的电脑没有开启虚拟化安装虚拟机时会提示“此主机支持 Intel VT-x但 Intel VT-x 处于禁用状态”。解决方法是在开机时进入 BIOS找到 Intel Virtualization Technology 或 SVM Mode 选项设置为 Enabled然后保存重启。2.2 VMware Workstation 的下载与安装VMware Workstation Pro 目前由 Broadcom 收购后推广策略有所调整个人用户可以通过官方站点获取安装包。搜索“VMware Workstation Pro 下载”时请认准官方域名避免从第三方下载站拿到被篡改的安装包。下载完成后安装过程比较简单双击安装程序勾选“我接受许可协议中的条款”路径可以保持默认或自定义。需要注意两个点第一如果网络环境复杂或不需要可以把“启动时检查产品更新”和“加入客户体验提升计划”取消勾选第二安装到最后一步通常需要输入许可证密钥如果你使用的是试用版可以先选择试用但要注意试用期限。安装完成之后建议重启一次电脑确保虚拟网卡驱动被正确加载。2.3 许可证与版本差异VMware Workstation 存在 Pro 和 Player 两个产品线。Player 是免费版功能相对精简适合简单使用Pro 功能完整支持快照、克隆、复杂网络编辑等。很多教程中提到的“许可证密钥”主要针对 Pro。这里需要特别提醒请使用正规渠道获取许可证。尽量不要轻信来路不明的“密钥生成器”既存在法律风险又可能捆绑恶意软件。如果只是学习和试验使用官方提供的试用期即可满足大部分需求。3. 创建第一台虚拟机从镜像到系统安装3.1 准备系统镜像 ISO创建虚拟机之前需要先准备好操作系统的 ISO 安装镜像。以 Windows 和 Linux 为例Windows 10/11 镜像可以从微软官网下载也可以使用媒体创建工具生成 ISO。Ubuntu 镜像从 Ubuntu 官网下载建议选择 LTS长期支持版例如 Ubuntu 22.04 / 24.04。CentOS 镜像可以访问 CentOS 官方镜像站或阿里云、网易等镜像站下载注意选择 DVD ISO 而不是 Minimal ISO如果是在线安装网络不稳Minimal 会比较痛苦。3.2 新建虚拟机向导打开 VMware Workstation点击“创建新的虚拟机”推荐选择“典型推荐”方式。在“安装客户机操作系统”界面选择“稍后安装操作系统”不要直接选择 ISO 或自动检测。这样可以提前设置好磁盘大小、硬件配置避免系统安装过程中按默认配置走完后无法满足需求。接着选择客户机操作系统类型例如选择 Microsoft Windows 和版本 Windows 10 x64或者选择 Linux 和版本 Ubuntu 64 位 / CentOS 7 64 位。虚拟机名称可以随便起比如 win10-dev、ubuntu-server位置建议放在非系统盘且剩余空间较大的目录例如 D:\VMs\ubuntu-server。处理器和内存配置需要根据宿主机资源决定。如果宿主机是 16 GB 内存建议给 Linux 虚拟机分配 2 核 4 GB给 Windows 虚拟机分配 4 核 8 GB注意不要超过宿主机物理内存的一半太多否则宿主机本身会卡顿。磁盘大小默认 20 GB 对 Linux 基本够用但如果你要装图形界面、开发工具和 Docker 镜像建议设成 50 GB 甚至更大。存储方式建议使用“将虚拟磁盘存储为单个文件”方便迁移和备份。3.3 安装 Windows 10 / Ubuntu / CentOS 的通用步骤以 Ubuntu 为例创建好虚拟机后点击“编辑虚拟机设置”在 CD/DVD 选项中选择“使用 ISO 映像文件”浏览到你的 Ubuntu ISO然后开机。虚拟机启动后会进入系统安装界面选择语言为中文简体然后按照引导依次点击“安装 Ubuntu”“最小安装或正常安装”“清除整个磁盘并安装 Ubuntu”等选项。这里要注意虚拟机里面的“清除整个磁盘”只会清除虚拟磁盘不会影响宿主机真实硬盘可以放心操作。Windows 10 的安装也类似启动后从 ISO 引导进入蓝色安装界面接受协议选择“自定义安装”然后选择未分配空间点击“新建”并应用大小系统会自动创建多个分区选择主分区完成安装即可。CentOS 7 的安装稍有不同启动后会出现多个选项选择“Install CentOS 7”进入图形引导语言选中文然后在“安装位置”里选择自动分区配置或手动分区。在“软件选择”中可以选择“带 GUI 的服务器”获得图形界面也可以选择“最小安装”节省资源。3.4 安装 VMware Tools 或 open-vm-tools系统安装完成后第一件事不是急着配置环境而是安装 VMware Tools。它属于虚拟机与宿主机之间的“驱动和增强包”主要作用是提升显卡和鼠标性能让虚拟机界面更流畅。启用宿主机与虚拟机之间的复制粘贴、文件拖拽。动态适应分辨率全屏时自动调整画面大小。在 VMware Workstation 菜单栏点击“虚拟机 - 安装 VMware Tools”虚拟机内会出现一个虚拟光驱。Windows 系统直接运行光驱里的 setup64.exe 安装Linux 系统通常解压 tar.gz 包并运行 vmware-install.pl。现在很多 Linux 发行版默认带了 open-vm-tools作为 VMware Tools 的开源替代品。如果你安装 Ubuntu 或 CentOS 时使用的是较新版本可以先用以下命令检查或安装# Ubuntu / Debian 系 sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop -y # CentOS / RHEL 系 sudo yum install open-vm-tools -y装完之后重启虚拟机复制粘贴和自适应分辨率就会生效。4. 虚拟机核心配置实战网络、文件与快照4.1 理解 VMware 的三种网络模式虚拟机的网络模式是新手最容易搞混的地方。在 VMware 中右键虚拟机进入“虚拟机设置”把网络连接类型切到自定义时可以看到 VMnet0、VMnet1、VMnet8 等虚拟网络。理解它们非常重要。桥接模式Bridged虚拟机像一台独立电脑一样接入宿主机所在局域网拥有独立 IP可以被局域网内其他机器访问。适合需要对外提供服务的场景。NAT 模式Network Address Translation虚拟机和宿主机共用一个 IP 出去访问外网外部无法直接访问虚拟机内部服务。适合仅需要联网下载、访问资源但又不想占用局域网 IP 的场景默认推荐使用。仅主机模式Host-Only虚拟机只能和宿主机以及同网段的其他虚拟机通信无法访问外部网络。适合搭建隔离测试环境。实际开发中最常用的是 NAT 模式配好之后虚拟机既能上网又不干扰局域网还需要注意宿主机防火墙对入站连接的处理。4.2 配置静态 IP 与 FinalShell 连接很多人在用 FinalShell 或 XShell 连接 Linux 虚拟机时遇到“java.net.ConnectException: Connection timed out”根本原因通常是 SSH 服务没装或者网络不通。这里以 CentOS 7 为例演示如何把 NAT 模式的虚拟机改成静态 IP方便后续通过 SSH 固定连接。首先在 VMware 菜单中选择“编辑 - 虚拟网络编辑器”选中 VMnet8点击“NAT 设置”记下 NAT 网关地址通常类似于 192.168.11.2。然后在虚拟机中编辑网卡配置# 查看网卡名称 ip addr # 进入网络脚本目录CentOS 7 的静态配置方式 cd /etc/sysconfig/network-scripts/ ls假设网卡名称是 ens33编辑对应的配置文件sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33修改或添加以下内容TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic DEFROUTEyes NAMEens33 DEVICEens33 ONBOOTyes IPADDR192.168.11.100 NETMASK255.255.255.0 GATEWAY192.168.11.2 DNS18.8.8.8 DNS2223.5.5.5然后重启网络服务sudo systemctl restart network ping -c 4 www.baidu.com如果能 ping 通说明 NAT 网络正常。接着确认 SSH 服务是否启动sudo systemctl status sshd # 如果未安装 sudo yum install openssh-server -y sudo systemctl start sshd sudo systemctl enable sshd最后在 FinalShell 中新建连接主机 IP 填 192.168.11.100端口 22用户名和密码使用虚拟机中的账号。只要宿主机防火墙没有禁用 VMnet8 的出站规则FinalShell 连接超时问题基本可以解决。如果你使用的是 Ubuntu 22.04 等新版本网卡配置可能使用 Netplan# 文件路径/etc/netplan/01-network-manager-all.yaml network: version: 2 ethernets: ens33: dhcp4: no addresses: - 192.168.11.100/24 routes: - to: default via: 192.168.11.2 nameservers: addresses: - 8.8.8.8 - 223.5.5.5应用配置sudo netplan apply4.3 共享文件夹配置宿主机与虚拟机之间传输文件有几种方式复制粘贴、拖拽、FTP、共享文件夹。其中共享文件夹是 VMware 提供的原生方案配置一次后非常方便。在虚拟机运行状态下点击“虚拟机 - 设置 - 选项 - 共享文件夹”选择“总是启用”点击“添加”把宿主机中的某个目录例如 D:\share添加进来并启用“在此虚拟机中映射为网络驱动器”Windows 客户机或挂载到 /mnt/hgfsLinux 客户机。在 Linux 虚拟机中查看共享目录ls /mnt/hgfs/如果看不到共享文件夹常见原因是没有安装 open-vm-tools或者版本与宿主机不匹配。可以重新安装 VMware Tools 并重启。部分情况下需要手动挂载sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid1000如果遇到“vmhgfs-fuse 命令不存在”说明还需要安装 open-vm-tools-desktop 或 fusesudo apt install open-vm-tools open-vm-tools-desktop fuse -y4.4 快照与克隆快照是虚拟机极其好用的功能。在系统稳定、部署完环境、准备做危险实验之前拍一个快照之后如果系统崩了或者配置改出问题可以直接恢复到快照状态。在 VM 工具栏点击“虚拟机 - 快照 - 拍摄快照”输入名称即可。恢复时点击“快照管理器”选中某个快照点击“转到”。克隆功能适合需要快速复制出多台相同环境的虚拟机。使用克隆时选择“创建链接克隆”可以节省磁盘空间但原始虚拟机不能移动位置选择“创建完整克隆”更独立但会占用更多磁盘空间。克隆出的机器和原机器有完全一样的系统和软件但需要注意修改主机名、IP、SSH Key避免冲突。5. 常见问题与排查思路5.1 安装卡在“正在安装虚拟网络”很多用户在安装 VMware Workstation 时进度条停在“正在安装虚拟网络”很久甚至直接卡死。常见原因包括电脑上安装了旧的 VMware 版本或安全软件拦截了虚拟网卡驱动Windows 系统本身的网络驱动出现问题。排查建议先打开任务管理器看 VMware 安装进程是否长期占用 CPU如果是则等待一段时间如果长时间无进展可以取消安装使用“VMware 清理工具”或 Windows 卸载程序彻底卸载旧版本重启后再重新安装。安装前最好退出 360、腾讯电脑管家、火绒等安全软件。5.2 虚拟机无法打开提示“无法打开虚拟机”下载了别人的虚拟机文件夹或者从别的电脑拷贝虚拟机后点击打开提示“无法打开虚拟机”一般原因包括文件路径包含中文或空格过多vmx 配置文件损坏虚拟机是从更高版本 Workstation 创建的。建议把虚拟机文件夹放到纯英文路径下用记事本打开 .vmx 文件检查 version、displayName 等字段如果版本过高可以安装更高版本的 Workstation或者在允许范围内降级配置。还有一点目录权限不足也可能导致打不开可以右键管理员身份运行 VMware。5.3 WSL 与 VMware 冲突Windows 系统的 WSLWindows Subsystem for Linux和 VMware Workstation 冲突通常是 Hyper-V 功能导致的。启用 WSL2 需要打开 Windows 虚拟机监控程序平台和 Hyper-V而 VMware Workstation 依赖虚拟化技术时可能发生冲突表现为创建虚拟机后无法启动或者在 WSL 完全退出后 VMware 也只能以超慢速度运行。解决思路有两个一是在 Windows 功能中关闭“虚拟机平台”和“Windows Hypervisor Platform”但这样 WSL2 将无法使用二是升级到较新的 VMware Workstation 15.5.5 或 16 及以上版本这些版本通过 Windows Hypervisor Platform API 与 Hyper-V 共存。近几年 VMware 和 WSL2 的兼容性已经有了明显改善建议优先使用新版 Workstation。5.4 Java VM 相关报错与 IDEA 启动问题和 VM 相关的报错不一定都来自 VMware很多开发者遇到的其实是 Java 虚拟机参数错误。例如“Error occurred during initialization of VM java.lang.Error: java.lang.ClassNotFoundException”“Cannot convert VM option -XX:ErrorFile to int”这类报错和 VMware 无关是 JVM 启动参数不对或者 JDK/JRE 版本不匹配。如果 IDEA 启动时报这种错可以查看 IDEA 安装目录下 bin 目录中的 idea64.exe.vmoptions 文件确认没有写错参数。参数中的-XX:ErrorFile后面需要拼接一个文件路径而不能只写等号或留空格。修改 vmoptions 前建议先备份原文件改完后重启 IDEA。5.5 虚拟机没有界面或开机自启动看不到界面有些用户把 VMware 配成了开机自动启动虚拟机结果发现虚拟机没有界面以为是启动失败。实际上那可能只是将 WMware 的后台服务设为了自动启动但 Workstation 的图形界面未打开。如果想开机自动运行某个虚拟机可以在菜单栏点击“虚拟机 - 选项 - 高级 - 开机时启动该虚拟机”或者通过 VMware 的 vmrun 命令结合 Windows 计划任务实现。注意无界面启动意味着你将看不到虚拟机窗口如果系统没有使用模板化配置后续维护会比较麻烦。5.6 虚拟机显示 DX11 或图形性能差在虚拟机中玩游戏或运行图形软件时常见提示是“需要 DirectX 11 支持”但虚拟机默认的显卡性能很弱。VMware Workstation 对 DirectX 的支持有限且与宿主机显卡驱动、虚拟机显存设置有关。可以尝试在虚拟机设置中把“显示器”选项里的“3D 加速”勾选上并增加显存大小。如果图形应用仍然无法运行建议考虑 GPU 直通或换用其他虚拟化方案。对于日常开发虚拟机并不是为 3D 渲染设计的性能差是正常的。5.7 虚拟化无法勾选在开启嵌套虚拟化或者运行 Docker、KVM 等需要虚拟化支持的软件时你可能会发现虚拟机设置中的“虚拟化引擎”选项无法勾选或提示“此平台不支持虚拟化”。原因通常是 VMware 默认没有开启向虚拟机暴露 CPU 虚拟化指令的能力。解决办法是关闭虚拟机在“虚拟机设置 - 处理器 - 虚拟化引擎”中勾选“虚拟化 Intel VT-x/EPT 或 AMD-V/RVI”同时确保宿主机 BIOS 已开启全虚拟化。6. 最佳实践与工程建议6.1 合理规划磁盘与存储虚拟机的好处是可移植但如果管理不当磁盘占用会越来越大。建议不要把所有虚拟机文件堆在 C 盘而是在一个独立目录下按项目分类管理例如D:\VMs\ ├── win-dev\ ├── centos-7\ └── ubuntu-22.04\每台虚拟机创建时都使用独立文件夹。不要把 vmdk 虚拟磁盘和快照文件混放到同一个目录避免误删。虚拟磁盘尽量使用单个文件便于复制迁移。定期清理无用的快照因为快照会持续占用物理磁盘空间。6.2 账号、密码与权限管理虚拟机内的账号密码建议与宿主机区分不要使用相同的弱口令。生产环境如果用到虚拟机应该遵循最小权限原则普通用户使用普通账号只有需要提权时才使用 sudo。不要随意给虚拟机开放公网访问尤其是 SSH 端口。如果在本地测试环境中可以只使用仅主机模式或 NAT 模式避免虚拟机被局域网内其他设备扫描到。6.3 配置变更前先拍快照无论是安装软件、更新内核、修改网络配置还是清理系统操作前先拍一个快照。如果系统被破坏几分钟内就可以恢复到原状态。快照不是备份的替代品重要的数据还是要通过共享文件夹、Git 仓库、对象存储等多种方式同步出来。6.4 安全与合规提醒虚拟机技术本身是合规的开发运维工具但在使用时需要有边界意识。不要用虚拟机做任何绕过安全限制、破坏系统、窃取数据的事情。在企业环境中创建虚拟机要遵循公司的审批与合规流程连接公网前要评估安全风险不要把带有敏感数据的系统随意对外开放。6.5 资源规划与性能优化一台宿主机上不要开太多虚拟机特别是内存资源要控制好。推荐为每台虚拟机分配合适的内存而不是越大越好。如果虚拟机长时间不用可以挂起而不是关闭挂起可以保存内存状态且恢复很快但会占用宿主机的内存盘文件。日常开发中建议把虚拟机的硬盘类型选择为 NVMe如果 VMware 版本支持会比 SATA 性能更好。7. 总结与学习路线通过这篇文章你已经了解了 VM 虚拟机的基本概念、VMware Workstation 环境的搭建、Windows/Linux 系统在虚拟机中的安装过程、NAT 网络与静态 IP 的配置方法、共享文件夹的设置、快照和克隆的使用以及常见的报错排查思路。接下来的学习可以从三个方向深入如果你偏向开发方向可以继续学习容器化技术理解虚拟机与容器的适用边界再结合 Docker、Kubernetes 构建整套本地开发环境。如果你偏向运维方向可以研究 VMware vSphere/ESXi、Proxmox VE 等开源虚拟化平台学习如何管理多台物理服务器上的虚拟机。如果你想深入虚拟化底层可以学习 KVM/QEMU 以及云主机的实现原理这些都是现代云计算最核心的基础设施技术。在实际项目中优先关注的不是一味追求“最新版本”而是稳定性和可维护性。每次系统配置、网络改动、软件升级都留有记录按照本文中的排错顺序逐步定位问题就能把虚拟机从“能用”提升到“好用”。如果本文对你有帮助可以收藏备用。你在使用 vm 虚拟机时遇到过哪些令人抓狂的问题欢迎在评论区留言分享你的排查经验。
返回列表