VMware 16.1.2 安装 Ubuntu 20.04.3 虚拟机教程
本地跑一台 Linux 虚拟机是我换过好几台电脑之后依然保留的习惯动作。宿主机上装 VMware Workstation 16.1.2虚拟机里跑 Ubuntu 20.04.3 LTS装完就是一台随时能推倒重来的实验机。这套 Linux 虚拟机 VMware 16.1.2 Ubuntu 20.04.3 的安装教程我在 Intel 笔记本、AMD 台式机和公司配的办公本上都完整走过一遍每一步踩过的坑基本都落在下面这些字里了。它解决的问题很直接你不想动主机的系统盘不想为了试一条命令把环境搞崩又需要一个和服务器接近的 Linux 环境。虚拟机的好处是可回滚、可快照、可克隆代价是吃内存和硬盘。选型对不对、装完怎么调直接决定它是顺手的工具还是拖慢你半天的累赘。原题写的是图文步骤这篇我不放截图改用界面位置描述加参数表你对着屏幕找反而更快因为不同系统语言下按钮文字可能会变但位置和选项名几乎不动。这篇适合三类人刚入门 Linux、要在本地练命令和部署服务的新手需要搭隔离测试环境的开发以及被各种带图教程绕晕、想找一份纯文字也能看懂的人。所有步骤以 VMware Workstation 16.1.2 Pro 和 Ubuntu 20.04.3 LTS Desktop 为准其他 16.x 小版本和 20.04.x 后续小版本基本通用。1. 为什么我建议用这套组合而不是别的1.1 这套方案到底适合谁又不适合谁先说实话虚拟机不是万能药。如果你的宿主机只有 8GB 内存还要同时开三四个 IDE 和浏览器几十个标签页那再加一台 4GB 的 Ubuntu 虚拟机体验一定是卡到你想砸键盘的。这种情况下更合理的做法是把虚拟机内存压到 2GB 并只跑命令行或者干脆用容器、远程服务器。虚拟机真正的价值场景是隔离和折腾。比如你要测试一段会改系统配置的脚本、要模拟多台机器组网、要验证某个软件在全新系统上的安装流程虚拟机是成本最低的选择搞坏了直接回滚快照宿主机毫发无伤。反过来如果你只是想要一个能跑 Python 的环境装个 WSL 或者直接用容器比装整套虚拟机轻得多。还有一类人特别适合这篇准备考证、准备面试 Linux 岗位、需要反复练习用户管理、权限、服务配置、日志排查的人。虚拟机的快照机制让你可以放心地rm -rf、放心地改/etc下的文件这才是练手环境该有的样子。1.2 版本为什么定在 Ubuntu 20.04.3 和 VMware 16.1.2Ubuntu 20.04 是 LTS 长期支持版本标准安全维护一直覆盖到 2025 年 4 月后续还能走 ESM 延长。它自带的内核、GCC、glibc、Python 版本组合恰好和大量企业里还在跑的服务端环境对得上。很多公司内部文档、部署脚本、编译教程都是照着 20.04 写的你本地跑 20.04遇到问题去搜答案命中率明显更高。20.04.3 这个点版本还带了 HWE 硬件支持栈内核版本比最初发布的 5.4 更新对新一代网卡和显卡的兼容性更好装在虚拟机里也不容易出现稀奇古怪的驱动问题。如果你手上有国产发行版比如统信 UOS、Deepin 的镜像这套 VMware 的操作流程几乎完全一样只是安装器界面和默认分区策略不同本文的虚拟机创建部分照样能照着抄。VMware Workstation 16.1.2 则是 16.x 系列里修过一轮问题的版本对 Windows 10 和 Windows 11 宿主的兼容性比早期的 15.x 好不少无线网卡、蓝牙、高分辨率屏幕下的缩放问题也少。为什么不用更新的 17.x因为 17 换了新的 UI 布局很多老教程里的菜单位置对不上了反而容易让人找不到配置和打开这两个入口这一点在搜索热词里也有体现。用 16.1.2 跟着本文学你至少不会在菜单里迷路。提示如果宿主机是 Windows 11 并且开了内核隔离、内存完整性这类安全功能老版本 VMware 可能会直接报不兼容。16.1.2 在这方面的兼容性已经改善但仍需要按第 6 章的排查步骤处理。2. 装之前先把主机这边的底摸清楚2.1 主机硬件与虚拟化开关的自检清单这一步很多人跳过结果装到一半才报VT-x 处于禁用状态白折腾半小时。动手前先在宿主机上确认三件事。第一CPU 是否支持并开启了硬件虚拟化。Intel 平台叫 VT-x、VT-dAMD 平台叫 AMD-V、SVM Mode。开机按 Del 或 F2 进 BIOS/UEFI在 CPU Configuration 或者 Advanced 里能找到开关。Windows 用户还有个更快的验证方法打开任务管理器切到性能标签点 CPU右下角会显示虚拟化已启用/已禁用。显示已禁用就别往下装了。第二宿主机上有没有和 VMware 抢底层虚拟化的功能在跑。Windows 自带 Hyper-V、虚拟机平台、Windows 沙盒、WSL2都会占用虚拟化层导致 VMware 要么报错要么慢得像幻灯片。如果你平时要用 WSL2也有共存方案但 VMware 侧的性能会打折这个取舍得你自己定。第三磁盘空间。虚拟机磁盘文件、快照、内存挂起文件都堆在宿主机上一个 40GB 的虚拟机加上两三个快照实际占用轻松超过 80GB。建议放在 SSD 上并且别放在系统盘根目录附近单独建一个D:\VM之类的目录最省心。项目最低能跑比较舒服说明宿主内存8GB16GB 及以上分给虚拟机 4GB 后宿主还要留够用空闲磁盘60GB150GB 及以上含快照和后续扩容余量CPU双核支持虚拟化四核八线程虚拟机分 2 核比较均衡磁盘类型机械盘可用NVMe/SSD机械盘上编译会非常痛苦2.2 安装包和镜像怎么拿、怎么校验VMware Workstation Pro 的安装包从官方渠道获取文件名大致是VMware-workstation-full-16.1.2-xxxxxxx.exe后面那串数字是构建号不同小版本会变。Ubuntu 镜像选ubuntu-20.04.3-desktop-amd64.iso注意必须是amd64也就是 64 位版本体积接近 3GB。下载完一定要校验这一步能帮你排掉镜像下了一半就断导致后面安装到一半报Failed to load ldlinux.c32这类玄学错误。Windows 上打开命令提示符certutil -hashfile ubuntu-20.04.3-desktop-amd64.iso SHA256Linux 或者 macOS 上更简单sha256sum ubuntu-20.04.3-desktop-amd64.iso把输出结果和官方SHA256SUMS文件里对应那一行逐字符对比。只要有一个字符不一样别犹豫重新下载。我见过不止一个人因为镜像损坏把安装失败的原因怀疑到虚拟机配置上来回折腾两小时。2.3 磁盘和内存分配这笔账怎么算分配资源有个简单的经验公式宿主内存减去系统本身占用再减去日常软件占用剩下的才能分给虚拟机。16GB 内存的机器宿主自己吃掉 4 到 5GB留 4GB 给虚拟机跑桌面版 Ubuntu 是比较稳的剩下还能开浏览器和编辑器。8GB 的机器就只给 2GB并且把 Ubuntu 装成最小安装关掉不必要的动画效果。磁盘方面桌面版 Ubuntu 系统本身大概占用 8 到 10GB加上日常装点工具、缓存包、日志40GB 是比较合适的起步值。别一上来就分 100GB虚拟磁盘是动态增长的你给 100GB 实际用多少占多少但快照会随磁盘使用量膨胀盘给得太大快照也大。使用场景vCPU内存磁盘备注纯命令行练手11GB20GB可以不装桌面环境日常开发测试24GB40GB最推荐的配置跑数据库中间件48GB60GB宿主至少 16GB 内存编译大型项目48GB80GB强烈建议放 SSD注意vCPU 数量不要超过宿主的物理核心数超了只会互相抢时间片实际更慢。四核八线程的宿主给虚拟机 2 到 4 核就够了。3. VMware 16.1.2 的安装与首选项调优3.1 安装向导里那几个容易被忽略的勾选项双击安装包一路下一步。安装路径这里有个小细节路径里不要带中文、空格和特殊符号否则后面某些脚本挂载共享目录时会出问题我一般直接改成D:\VMware\。中间会弹出是否安装增强型键盘驱动程序建议勾上它能让虚拟机更好地捕获组合键减少CtrlAlt被宿主机截走的情况。安装向导末尾有几个默认勾选的选项比如启动时检查产品更新和加入客户体验提升计划。想省事可以留着但我更倾向于取消掉原因很实际自动更新会在你不知情的时候把版本换掉而版本一变菜单布局和某些行为可能就跟着变你之前记的操作路径全废了。安装完成后需要重启宿主机这一步别跳过虚拟网卡驱动要等重启才会真正生效。3.2 虚拟网络编辑器三种网络模式到底怎么选这是整套东西里最值得花时间搞懂的一块。打开 VMware 后点菜单编辑→虚拟网络编辑器能看到 VMnet0、VMnet1、VMnet8 这几个虚拟网络。很多人装完虚拟机上不了网十有八九是这里没搞明白。VMnet0 默认走桥接虚拟机会像一台独立设备一样直接从你家里的路由器拿一个局域网 IP局域网里其他设备也能直接访问它。VMnet8 走 NAT虚拟机通过宿主机共享上网对外只有一个宿主机的 IP虚拟机在局域网里是隐形的但自己可以正常上网。VMnet1 是仅主机模式虚拟机和宿主机能互相通信但出不了网适合做纯隔离的测试环境。模式能上网局域网能访问它主机能访问它适合场景桥接能能能需要被别人访问的服务NAT能不能需端口转发日常开发最省心仅主机不能不能能隔离测试、抓包实验选 NAT 是最稳妥的默认方案因为虚拟机的 IP 由 VMware 的 DHCP 分配换网络环境比如从家里到公司虚拟机不用改任何配置照样能上网。但如果你想让同事访问你虚拟机上跑的网站就得改成桥接或者老老实实在 NAT 设置里做端口转发。3.3 首选项里值得改的几处默认值点编辑→首选项有几个地方我每次装完都会改。第一是工作区里的虚拟机默认位置。默认在C:\Users\你的用户名\Documents\Virtual Machines如果你 C 盘本来就紧张赶紧改到 D 盘不然过两个月 C 盘见红你都不知道是谁吃的。第二是更新标签取消启动时检查产品更新和自动更新相关选项理由前面说过保持版本稳定比尝鲜重要。第三是内存标签里的调整所有虚拟机内存使其适应预留的主机 RAM。这个选项打开后VMware 会根据宿主剩余内存动态调整好处是不容易把宿主拖死坏处是虚拟机性能会波动。内存充足的机器我一般关掉它让分配更确定。第四是设备标签可以把软驱、打印机这类根本用不到的设备取消界面更干净虚拟机启动时的检测也快一点。4. 新建虚拟机并安装 Ubuntu 20.04.3 全流程4.1 新建向导里官方没讲清楚的几个关键参数点文件→新建虚拟机或者直接点主界面那个创建新的虚拟机。向导第一步选配置类型一定要选自定义高级别用典型。典型的省事但硬件兼容性版本、控制器类型、磁盘拆分方式这些都被它锁死了后面想改很麻烦。第二步是硬件兼容性选 Workstation 16.x。第三步是安装来源这里有两个分支选安装程序光盘映像文件然后指向你的 ISO或者选稍后安装操作系统。前者方便但如果 VMware 识别不出 ISO 里的发行版就会退化成简易安装帮你自动填一堆默认值反而不好控制。我习惯选稍后安装然后在下一步手动指定客户机操作系统为 Linux、版本为 Ubuntu 64 位。接下来是几个关键参数我列成表方便你对照向导页面推荐值为什么这么选名称与位置自己命名路径不含中文中文路径在挂载共享目录时会出问题固件类型UEFI更接近现代服务器支持安全启动处理器2 核每处理器 1 个超过物理核心数反而更慢内存4096MB桌面版 GNOME 的最低舒适线网络类型NAT换网络环境零配置I/O 控制器LSI Logic兼容性最好磁盘类型SCSI性能和功能都优于 IDE磁盘容量40GB拆分成多个文件拆分后便于移动和备份分配方式不勾选立即分配动态增长省宿主空间磁盘那一步的两个选项值得单独说。将虚拟磁盘拆分成多个文件和存储为单个文件的区别在于拆分后单文件不超过 2GB方便拷到移动硬盘或者在文件系统有限制的环境里传输单个文件读写性能略好一点点但整体差异在实际使用中基本感受不到。我选拆分主要是为了迁移方便。4.2 Ubuntu 安装器里那些让人犹豫的选择虚拟机创建完成后开机会自动从 ISO 引导进入 Ubuntu 安装器。第一屏选语言我的建议是用 English。不是崇洋媚外而是报错信息用英文去搜能搜到的结果多一个量级。你装完系统之后照样可以装中文输入法和中文字体。第二屏是键盘布局默认 English (US) 就行。第三屏是更新和软件会问你要正常安装还是最小安装以及要不要在安装时下载更新。最小安装只装浏览器和基础工具适合资源紧张的机器正常安装会带 LibreOffice 等一堆东西。勾不勾安装时下载更新看你网络网好就勾上省得装完再更新一次。第四屏是关键的分区页面。如果你只是想快速用起来直接选清除整个磁盘并安装 Ubuntu就行这里清的是虚拟磁盘不是你宿主机的硬盘这一点务必放心但也务必看清楚——VMware 窗口里操作的才是虚拟磁盘别在宿主机上对着真实分区表手滑。想练分区的话可以选其他选项手动分参考方案是/分 30GB 用 ext4/home分 8GB 左右swap 给 2 到 4GB20.04 默认用 swapfile但手动分一个 swap 分区对休眠支持更好。分完之后确认引导程序装在/dev/sda别装错到别的设备上。最后是时区和用户创建。时区选 Shanghai用户名的规则要记住不能以大写字母开头不能含空格和特殊符号建议全小写加数字。密码随便设反正是虚拟机但别设成 123456 然后又忘了后面sudo会一直问你。安装过程大概 10 到 20 分钟取决于宿主磁盘速度。装完提示重启重启时如果卡在请移除安装介质在虚拟机里通常会自动处理如果真卡住了在虚拟机设置里把 CD/DVD 改成自动检测或者断开连接即可。4.3 首次开机后立刻要做的三件事第一件装 open-vm-tools。这是 VMware 官方现在推荐的方案比挂载 VMware Tools 的虚拟光盘再手动编译要省事得多而且能跟着系统包管理器一起升级。sudo apt update sudo apt install -y open-vm-tools open-vm-tools-desktop sudo rebootopen-vm-tools提供底层支持open-vm-tools-desktop才带分辨率自适应、剪贴板共享、拖拽这些桌面功能两个都要装很多人只装第一个然后纳闷为什么分辨率还是不能自适应。第二件换软件源并更新。这一步放在 5.1 节详细讲。第三件打第一个快照。系统刚装完、只装了基础工具这是最干净的基线状态值得马上拍一张。以后无论怎么折腾都能一键回到这里。具体操作见 5.2 节。5. 装完只是开始换源、快照与主机互访5.1 把软件源换成国内镜像速度差一个量级默认源在国内访问速度很不稳定有时候apt update要等好几分钟。先把原文件备份这是个好习惯改坏了能立刻还原sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak然后编辑文件把archive.ubuntu.com和security.ubuntu.com替换成国内镜像地址比如阿里云或者清华的地址。用 sed 批量替换最快sudo sed -i s|http://archive.ubuntu.com|https://mirrors.aliyun.com|g /etc/apt/sources.list sudo sed -i s|http://security.ubuntu.com|https://mirrors.aliyun.com|g /etc/apt/sources.list sudo apt update sudo apt upgrade -y执行完apt update看看耗时速度正常的话几秒钟就刷完了。这里有个小坑替换之后如果报 404 或者签名错误多半是镜像站的路径结构和官方不完全一致尤其是不同的 Ubuntu 版本目录名不一样这时候把源文件改回去重新挑一个镜像就行不用怀疑人生。顺手把常用工具装齐后面学命令、拉代码、跑 Python 都要用sudo apt install -y git curl wget vim net-tools build-essential python3-pip5.2 快照策略什么时候该按这个快门快照绝对是虚拟机最值钱的功能但用错方式也会拖垮性能。先说清楚一件事快照不是备份。快照文件依赖原始磁盘文件如果你的 vmdk 被误删或者宿主机硬盘坏了快照一起完蛋。快照的作用是临时回滚点。我一般在这几个时间点打快照系统刚装完的干净状态装完一整套开发环境并验证可用之后做任何有风险的操作之前比如升级内核、改引导配置、测试某个卸载脚本。命名上我会写成20240115-系统基线、20240120-装完python环境这种带日期的格式过一阵回头看能立刻知道哪个是哪个。打快照的操作是选中虚拟机菜单虚拟机→快照→拍摄快照填名称和描述。恢复就是快照管理器里选中目标点点转到。有个细节要注意拍摄快照时虚拟机的状态默认是已开机你可以选已关闭或者已挂起我一般用挂起恢复后能直接回到操作现场省去重新开一堆终端的时间。注意快照链越长读写性能下降越明显而且每次操作都会往增量磁盘里写数据磁盘占用涨得飞快。用完的快照及时删除只保留最近的两三个就够了。5.3 主机和虚拟机怎么互传文件以及主机怎么访问虚拟机里的服务文件互传最常用的方式是在虚拟机设置里开共享文件夹。选中虚拟机→编辑虚拟机设置→选项标签→共享文件夹→选总是启用→添加一条宿主路径选一个目录名称随便起比如share。然后回虚拟机里执行sudo mkdir -p /mnt/hgfs sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid1000 ls /mnt/hgfs看到share目录就成功了。想开机自动挂载把这条命令写进/etc/fstab注意加上fuse相关参数否则开机可能因为挂载超时卡住。拖拽和复制粘贴则需要open-vm-tools-desktop并且在虚拟机设置的选项→客户机隔离里确认启用拖放和启用复制粘贴都勾上。装完 tools 后如果还不生效重启一次虚拟机基本就好。再说主机访问虚拟机里的服务这个在搜索里出现频率很高。假设你在虚拟机上跑了一个 Web 服务python3 -m http.server 8000如果虚拟机是 NAT 模式宿主机直接用浏览器访问localhost:8000是打不开的需要在虚拟网络编辑器里选中 VMnet8点NAT 设置添加一条端口转发主机端口 8000虚拟机 IP 填你虚拟机里ifconfig看到的地址虚拟机端口 8000。保存之后宿主机访问localhost:8000就能通。如果虚拟机是桥接模式更简单直接在宿主机浏览器里输入虚拟机的 IP 加端口比如192.168.1.105:8000。前提是虚拟机的防火墙放行了这个端口sudo ufw allow 8000一句搞定。6. 高频报错与排查速查表6.1 安装和启动阶段最容易撞上的几个问题报此主机支持 Intel VT-x但 Intel VT-x 处于禁用状态。这个不用猜就是 BIOS 里没开。重启进 BIOS找 Intel Virtualization Technology 或者 AMD SVM Mode设成 Enabled保存重启。报VMware Workstation 与 Device/Credential Guard 不兼容。这是 Windows 宿主上的经典冲突。处理方式是在 Windows 功能里关掉 Hyper-V 相关组件同时关掉内核隔离里的内存完整性然后重启。如果你确实需要保留 Hyper-V可以尝试较新的 VMware 版本但要接受性能损失。装完重启卡在黑屏或者只有一个光标在闪。先检查虚拟机设置里的 CD/DVD 是不是还挂着 ISO 并且勾了启动时连接改成自动检测。再不行试试关闭加速 3D 图形或者把固件从 UEFI 改成 BIOS 重新装一遍20.04 在两种固件下都能装但个别显卡驱动和 UEFI 组合会闹脾气。安装时报 Failed to load ldlinux.c32。九成是 ISO 文件损坏回到 2.2 节重新校验下载。6.2 网络相关的排查思路现象最可能的原因处理方式虚拟机拿不到 IPVMware DHCP/NAT 服务未启动服务管理器里启动 VMware DHCP Service 和 NAT Service虚拟网络编辑器里 VMnet8 显示异常虚拟网卡驱动被禁用设备管理器里启用 VMware Virtual Ethernet Adapter主机访问不到虚拟机的服务NAT 模式未做端口转发在 NAT 设置里加端口映射或改桥接虚拟机不能上网但能 ping 通网关DNS 配置问题检查/etc/resolv.conf改 netplan 配置克隆后 IP 冲突复制了 MAC 和 DHCP 记录重新生成 MAC 地址改主机名DNS 这块单独提一下Ubuntu 20.04 用 systemd-resolved 管理 DNS你手动改/etc/resolv.conf重启后会失效。正确的做法是改/etc/netplan/下的 yaml 文件加上nameservers: addresses: [223.5.5.5, 119.29.29.29]然后sudo netplan apply。这个坑几乎每个人都踩过改了 resolv.conf 当时好用重启就废。6.3 显示和体验类的毛病分辨率固定在 800x600 不能自适应装完open-vm-tools-desktop重启一下基本就好。实在不行手动设xrandr --output Virtual1 --mode 1920x1080剪贴板不能复制、鼠标不能自由移动检查两个地方open-vm-tools-desktop是否装了vmtoolsd进程是否在跑以及虚拟机设置里客户机隔离的复制粘贴是否勾选。鼠标被虚拟机吸住出不来按CtrlAlt释放全屏切换是CtrlAltEnter。系统时间越走越偏通常是休眠恢复后出现装完 tools 之后执行一句就行vmware-toolbox-cmd timesync enable7. 用久了才总结出来的几条经验7.1 克隆和迁移过程中那些静默的坑整台虚拟机想复制一份做对照实验有两种方式完整克隆和链接克隆。完整克隆占空间大但完全独立链接克隆依赖父机磁盘省空间但父机一删就废。做长期测试环境我一律用完整克隆省空间的代价是后面可能连着一串麻烦。克隆完不要直接开机就用有三处必须改。第一是 MAC 地址在虚拟机设置里点网络适配器选高级点生成重新来一个否则两台机器 MAC 一样局域网里会互相打架。第二是主机名sudo hostnamectl set-hostname newname顺便把/etc/hosts里的旧名字一起改掉。第三是 machine-idsudo rm /etc/machine-id sudo systemd-machine-id-setup不改的话某些服务和日志系统会把两台机器的标识混在一起。7.2 几个日常用得上的小技巧解压带中文文件名的 zip 包出现乱码是 Linux 上最常见的老问题之一根源是 Windows 打的包用 GBK 编码文件名Linux 默认按 UTF-8 解。一条命令解决unzip -O GBK 中文压缩包.zip -d ./output如果系统自带的 unzip 没有-O参数装p7zip-full用7z x解压它会自动处理编码。磁盘用着用着不够了不用重装。先在宿主机的 VMware 安装目录里执行扩容vmware-vdiskmanager -x 80GB D:\VM\ubuntu20\ubuntu20.vmdk然后在虚拟机里用gparted或者fdisk把新增空间加到分区上。要注意扩容只对拆分或单个 vmdk 都有效但一旦扩容就不能缩回去。最后分享一个提升体验的做法装完虚拟机别老在 VMware 窗口里敲命令用 SSH 连上去更舒服。虚拟机里装好openssh-server然后宿主机用任意 SSH 客户端连虚拟机的 IP字体、复制粘贴、多标签全都有了还能顺手把窗口最小化资源占用也更低。我在自己机器上Ubuntu 虚拟机常年就跑一个 SSH图形界面除了第一次装完看看之外基本不打开。这套东西装完之后接下来装 MySQL、Python、Git、Docker 都是在这个干净基线之上做的事每装完一层打个快照出问题就往回跳比在宿主机上反复重装系统省的时间多得多。