1. 为什么推荐用VMware跑Ubuntu 20.04先说清楚这条路值不值得走我在自己的学习过程中发现很多朋友第一次接触Linux都不是在物理机上完成的而是在Windows系统里开一个虚拟机。原因很简单Linux的学习成本不低如果在物理机上直接装双系统一旦遇到引导崩溃、分区表损坏、驱动不兼容的情况处理起来会让人非常崩溃。而在虚拟机里折腾最多就是删掉虚拟机文件重来Windows本体毫发无损这种安全感对新手极其重要。选择VMware而不是其他虚拟机软件主要考虑三点。第一是VMware Workstation Pro对Ubuntu的硬件兼容性做得成熟显卡、网卡、USB设备的虚拟化方案稳定尤其是在拖拽文件、复制粘贴、剪贴板共享这些日常操作上安装好VMware Tools之后基本是无感的。第二是它的快照功能实在好用安装完系统、配置好环境之后拍一个快照后续不管怎么折腾都能一键恢复这个体验是VirtualBox给不了的。第三是性能调度策略VMware的多核分配、内存预留机制比我用过的其他方案更稳定跑编译任务的时候不容易出现卡死或者宿主系统响应变慢的情况。至于为什么是Ubuntu 20.04而不是22.04或者24.04这一点要结合实际使用场景来说。20.04是LTS版本五年支持周期到2025年目前国内高校、科研机构、工业界使用的很多软件包和工具链都是基于20.04适配的。比如做机器人相关开发的ROS Noetic、做视觉SLAM的ORB-SLAM3、各种深度学习框架的预编译包在20.04上的兼容性验证是最充分的。很多教材、论文的复现代码也都是基于20.04写的跟着教程走不容易踩版本坑。另外用旧版的另一个实际原因是模板代码和SDK版本往往没那么新新版本反而容易出现某个依赖装不上的问题。即便你不是做学术研究的只是想在Linux环境里学命令行、跑Python、部署服务20.04也完全够用而且它的GNOME桌面环境在虚拟机里跑起来比22.04更轻快默认不开启动画效果的前提下2核4G的虚拟机分配跑20.04是比较流畅的。这一点在后来测试的时候跟22.04做了对比20.04的桌面响应明显更跟手。这篇文章接下来的内容是完整的可复现流程覆盖从VMware安装、许可证获取、Ubuntu镜像下载、虚拟机创建配置、系统安装、VMware Tools修复、网络配置到安装后的基础环境调优。按照这个步骤走即使是第一次接触虚拟机的人也能在两小时内得到一个能正常上网、能共享文件、能跑开发工具链的Ubuntu 20.04环境。2. VMware Workstation Pro 17的下载、安装与许可证获取这些细节决定后续顺不顺2.1 从官网获取安装包的正确姿势VMware Workstation Pro目前已经面向所有用户免费但官方的下载入口很隐蔽直接搜“VMware下载官网”可能会进到各种第三方下载站下载到的安装包带有捆绑软件安装时还会附带乱七八糟的浏览器插件。这一点我踩过一次坑下载站版本装完以后每次启动VMware都会弹出广告卸载还卸不干净。正确入口是打开浏览器访问VMware的官方站点在产品页面找到Workstation Pro的下载链接选择Windows版本下载。下载的文件名类似VMware-workstation-full-17.x.x-xxxxxx.exe体积大概在600MB左右。如果在官网找不到入口可以直接搜索“VMware Workstation Pro download”认准域名带vmware.com的页面。下载时有个容易忽略的地方官网会根据你的系统版本自动推荐安装包但如果你用的是Windows 10或Windows 11的64位系统直接选择最新的17.x版本即可。32位系统就不要考虑了Ubuntu 20.04的镜像和VMware 17本身都只支持64位。2.2 安装过程的三个关键选项安装过程本身很傻瓜双击exe选择安装路径一路Next就能完成。但有几个选项值得多看一眼。第一个是安装类型选择“典型”即可不需要自定义因为VMware Workstation的组件都是固定的自定义并不能精简多少体积。第二个是“安装Windows Hyper-V组件”这个选项如果你的系统已经开启Windows功能里的Hyper-V或者WSL2这个选项建议勾选否则VMware启动虚拟机时会和Hyper-V产生冲突报错信息是“VMware Workstation and Hyper-V are not compatible”。反过来如果你平时不用Hyper-V就没必要勾选保持默认即可。第三个是“自动更新”和“客户体验提升计划”这两个勾选框可以直接取消掉一个是后台下载更新包占带宽一个是往VMware发匿名数据对实际使用没有任何帮助。安装完成以后第一次启动VMware Workstation会要求输入许可证密钥。VMware被Broadcom收购之后个人用户免费授权的方式已经变成登录账号自动激活不再需要手动填之前的共享许可证密钥。具体操作是第一次启动时选择“个人使用”选项注册或登录一个个人账号然后选择“继续”就会自动激活。如果这里卡住了确认网络能访问外网还是不行的话就换个时间段再试官方服务器偶尔会有延迟。注意不要相信任何“VMware 17密钥生成器”“一键永久激活工具”这类东西捆绑风险极高而且现在个人版免费后完全没有必要。2.3 为什么建议直接用17版本VMware Workstation Pro 16和17其实都不算新了但17的界面、性能调度和虚拟机硬件兼容性在16的基础上做了升级。最直观的感受是17版本对Windows 11宿主的支持更完善全屏切换动画更顺畅而且在分配4核CPU给虚拟机时宿主机的响应速度比16版本要好。另外一个很现实的原因是17版本创建的虚拟机配置文件.vmx格式更干净虚拟机硬件版本是19后续如果你要把虚拟机迁移到其他设备或者升级到更高版本的VMware兼容性更好。用16版本创建的虚拟机也能被17打开但反过来就不行既然从头开始装没必要给自己埋这个坑。3. Ubuntu 20.04镜像下载渠道选择决定你安装到一半会不会心态崩塌3.1 镜像站的正确选择Ubuntu 20.04的官方镜像文件可以从Ubuntu官网直接下载但国内访问官网的速度非常不稳定一个2.9GB左右的ISO文件经常要下载好几个小时中途断了还得重新来。强烈建议优先使用国内正规镜像站速度能达到十几MB每秒两三分钟就能下完。推荐下面这几个稳定可靠的源都是高校或官方机构运营的清华大学开源软件镜像站全平台通用更新及时支持HTTPS阿里云开源镜像站带宽充足速度快适合运营商网络中国科学技术大学镜像站稳定靠谱历史版本保留完整进入镜像站后找到Ubuntu的目录进入releases目录找到20.04.6版本这是20.04的最终维护版本包含了之前所有的安全补丁和更新下载ubuntu-20.04.6-desktop-amd64.iso这个文件。3.2 为什么选desktop版而不是server版很多朋友看到server版体积更小大概1GB左右就会想装server版然后自己装桌面环境。但对初学者来说没有必要desktop版自带完整的GNOME桌面、文件管理器、浏览器、图形化设置界面安装过程也是图形化的体验更友好。如果你之后确实用不到桌面环境再手动改启动模式到multi-user.target也不难。另外在某些项目部署环境里比如ORB-SLAM3它需要依赖g2o、Sophus、Pangolin这些图形化库如果没有桌面环境Pangolin的显示窗口根本跑不起来调试三维重建结果的时候会很痛苦。所以哪怕你最终的目标是服务器端开发第一台虚拟机也建议用desktop版。3.3 镜像校验不是形式主义镜像下载完成后建议校验一下文件完整性。下载站偶尔会出现数据损坏的情况如果ISO文件损坏安装过程中会在格式化分区或者复制文件阶段报错有些报错信息还很迷惑让人以为是硬件问题。校验方式很简单在Windows的PowerShell里切换到下载目录执行下面的命令计算SHA256值Get-FileHash .\ubuntu-20.04.6-desktop-amd64.iso -Algorithm SHA256然后把计算出来的哈希值和镜像站页面上标注的SHA256值对比一下一致就说明文件完整。如果不一致重新下载不要省这一步我之前因为跳过了校验安装到一半出现了“The installer encountered an error copying files to the hard disk”的报错排查了很久才发现是镜像文件本身损坏。4. 新建虚拟机的关键配置参数逐项讲解硬件怎么分、网络怎么选、磁盘怎么设4.1 自定义配置还是典型配置打开VMware Workstation点击“创建新的虚拟机”这里建议选择“自定义高级”而不是默认的“典型”。原因在于典型配置给虚拟机分配的硬件参数经常不贴合实际需求——默认磁盘容量是20GB但Ubuntu 20.04装完系统加上开发工具链20GB很快就见底了默认的虚拟硬件版本也可能过高或过低。自定义配置可以逐项把关不浪费资源也避免后续出现“磁盘满了、虚拟化不支持”这类问题。4.2 虚拟机硬件参数怎么定在自定义配置向导里关键步骤集中在下面几个地方。固件类型选择UEFI而不是BIOS。Ubuntu 20.04对UEFI的支持很完善而且UEFI引导比传统的BIOS方式更快、更稳。以后如果你想在这个虚拟机上用rEFInd做多系统引导UEFI方式也更灵活。处理器配置这里有几个容易混淆的点。处理器数量指的是虚拟机里CPU的个数socket数每个处理器的内核数量指的是每个CPU的核数。对大多数使用场景来说设置“处理器数量1”、“每个处理器的内核数量2”或“4”就足够了不需要设置成多路CPU。因为操作系统调度多路CPU的开销比单路多核更大性能反而可能下降。具体分配多少核心取决于宿主机的物理核心数建议分配给虚拟机的核心数不超过物理机总核心数的一半这样可以保证宿主机的流畅度。我自己的配置习惯是宿主机是6核12线程的CPU给虚拟机分配4个核心宿主机是8核16线程给虚拟机分配4个核心编译大型项目时再临时调高。分配太高会导致宿主机卡顿尤其是内存和CPU同时在跑的时候宿主机的鼠标移动都会变慢。内存Ubuntu 20.04桌面版空闲状态下占用大概1.2GB到1.5GB加上浏览器和编译任务4GB是一个够用的起步配置。如果你宿主机内存是16GB给虚拟机分4GB到6GB比较合适如果宿主机只有8GB那给虚拟机2GB都可以只是编译大项目会吃力一些。内存这里宁多勿少因为内存不足会导致系统频繁使用swap磁盘读写压力剧增整个虚拟机卡到无法操作。网络类型这个是最值得讲清楚的地方。VMware默认的NAT模式是“住在老板家路由器后面的租客”——虚拟机通过宿主机的IP地址访问外网外部网络无法直接访问虚拟机。桥接模式则像是“申请了独立宽带”——虚拟机和宿主机在同一个局域网里拥有自己的IP地址其他设备可以直接访问它。对于最开始的用途来说NAT就够了不需要纠结桥接。NAT能上网、能装软件包、能访问宿主机唯一的问题是局域网里的其他电脑访问不到这台虚拟机。如果你以后要跑一些需要局域网联调的项目比如ROS多机通信再切换成桥接模式即可切换时注意重新设置虚拟机的网络IP。其实有不少朋友装完虚拟机发现上不了网十有八九是网络设置这一步选错了模式或者在安装Ubuntu的过程中没有选择正确的网络连接方式这个后面会提到。磁盘建议选“创建新虚拟磁盘”磁盘类型选NVMe。NVMe虚拟磁盘在VMware里对应的性能比默认的SATA模式好尤其是虚拟机里跑数据库、编译缓存、Docker镜像这些大量小文件读写的场景差距能明显感觉到。磁盘容量设置建议最低40GB如果之后有GPU相关、SLAM数据集、深度学习模型等需求建议直接给60GB反正虚拟磁盘是动态分配的也就是说创建的时候不管容量设多大都不会真的占用物理空间只有虚拟机里文件写入了才会慢慢增长。4.3 ISO镜像的加载和启动方式创建向导到“选择磁盘容量”之后接下来就是“自定义硬件”界面在CD/DVD选项里选择“使用ISO镜像文件”把下载的ubuntu-20.04.6-desktop-amd64.iso挂载上去。注意这里不要选“启动时连接”以外的选项保持默认即可。启动虚拟机之后屏幕会显示Ubuntu的GRUB菜单这时候按下回车选择“Install Ubuntu”就会进入安装向导。如果出现“A start job is running for wait for network”之类长时间卡住的情况不用慌张这是网卡等待超时的表现一般在等待一两分钟后会自动跳过。5. 安装过程中的常见坑与问题排查链路从分区到安装完成逐个阶段拆解5.1 安装界面里最容易犹豫的几个选项进入Ubuntu安装界面之后第一步是选择语言建议直接选English或者中文都可以安装系统本身对语言没有硬性要求。我一般选English原因是后续装软件时如果遇到错误报错信息英文原文和网上搜索到的解决方案能直接对应上减少翻译带来的误解。这是细节但确实影响排查问题的效率。当然如果你对英文界面不熟悉选中文也完全可以。接下来会看到两个勾选“Install third-party software for graphics and Wi-Fi hardware”——这个建议勾选。它安装的是闭源驱动和额外的固件包对Wi-Fi适配、显卡渲染都有帮助。在虚拟机上可能没什么明显区别但如果你以后把系统迁移到物理机或者实机上这个选项会省掉很多驱动上的麻烦。“Download updates while installing Ubuntu”——这个建议不勾选。安装系统期间下载更新会拖慢安装速度而且安装过程中如果网络不稳定可能出现等待时间过长甚至安装中断的情况。系统装好之后用apt命令更新是一样的效果时间还会更快。5.2 分区策略不手动分区也不会出问题Ubuntu安装器会询问“Install Ubuntu alongside Windows”还是“Erase disk”或者“Something else”。在虚拟机里磁盘是从零开始的、干净的直接选择“Erase disk and install Ubuntu”即可安装器会自动完成整个磁盘的分区。有些教程会让你手动分区分成/boot、/、/home、swap等独立分区但在虚拟机的场景下完全没必要。自动分区会把整个虚拟磁盘用LVM管理后续磁盘扩容、快照恢复都更简单。手动分区反而容易因为分区大小设置不合理导致某个挂载点空间不足。一个常见的坑是系统装好之后发现/目录只剩几个G的空间而宿主机分配给虚拟机的磁盘看着还有很多空闲。这种情况多半是安装时选择了“Erase disk”没有展开LVM卷组或者安装完系统之后没有扩展LVM。如果遇到这个问题不要急着重建虚拟机先用下面的命令查看空间使用情况df -h如果发现LVM卷组里还有空闲空间但逻辑卷没有扩展可以用lvextend和resize2fs把空间分配过去。这个操作在之后的“磁盘空间不足”问题排查中属于高频操作。5.3 “VMware Tools不能运行脚本”的完整排查链路系统安装完成、重启进入桌面之后VMware Workstation会弹出一个提示“VMware Tools 继续运行脚本未能在虚拟机中成功运行。如果您在此虚拟机中配置了自定义 VMware Tools 解决方案请自行解决该问题。否则请重新安装 VMware Tools。”这个问题非常常见尤其在Ubuntu 20.04配合VMware 17时出现频率很高。它的本质原因是VMware内置的vmware-tools脚本是为特定内核模块编译的Ubuntu 20.04的内核版本更新之后预编译的模块没有同步更新导致安装脚本执行失败。不要直接去旧版本VMware的安装目录里找linux.iso里的压缩包重装那样等于原地踏步。正确的处理方式分两步走。第一步卸载之前安装失败的VMware Tools遗留组件sudo vmware-uninstall-tools.pl如果提示找不到这个脚本说明之前没有成功安装过直接跳过。第二步安装开源的open-vm-tools替代方案。open-vm-tools是VMware官方和开源社区共同维护的组件功能和原版VMware Tools完全一致而且会跟随Ubuntu的软件源持续更新不再有内核版本不匹配的问题sudo apt update sudo apt install open-vm-tools-open-vm-tools-desktopopen-vm-tools-desktop这个包负责的是桌面环境相关的增强功能——复制粘贴、拖拽文件、分辨率自适应。如果只装open-vm-tools命令行里确实没什么问题但桌面端的双向拖拽会失效所以要两条命令一起执行或者直接安装desktop包它会自动拉取基础包。安装完成后重启虚拟机sudo reboot重启后剪贴板共享就能用了。如果还不行检查两个地方第一VMware菜单栏的“虚拟机”-“设置”-“选项”-“客户机隔离”确认“启用复制粘贴”和“启用拖放”都处于勾选状态第二确认系统服务的状态systemctl status open-vm-tools5.4 安装过程中网络断连的排查链路安装Ubuntu的时候一切正常重启之后却发现无法上网这个问题排在“安装Ubuntu20.04常见问题”里的前列。出现这个问题的原因有很多但排查链路是固定的按顺序走就能定位。第一检查虚拟机网络模式是否被改动过。VMware界面右下角的网络适配器图标右键点击确认仍在“NAT模式”或“桥接模式”下。第二检查网络服务配置。Ubuntu 20.04默认使用netplan管理网络不是传统的老式/etc/network/interfaces方式。查看当前配置cat /etc/netplan/01-network-manager-all.yaml确保文件中包含了NetworkManager或不受到禁用。如果安装时手动改动过网络配置文件可能会导致网络服务没起来。第三检查NetworkManager服务状态sudo systemctl status NetworkManager如果显示服务不存在或者已经停止启动它sudo systemctl enable NetworkManager NetworkManager-dispatcher sudo systemctl start NetworkManager第四检查DHCP客户端是否能正常获取IPip addr如果能看到eth0或ens33网卡分配了192.168.x.x的地址说明获得了IP。如果没有手动重新获取sudo dhclient eth0第五如果以上都正常尝试ping网关和外部地址来确认DNSping 1.1.1.1如果1.1.1.1通了但解析不了域名检查/etc/resolv.conf里的nameserver改成nameserver 8.8.8.8或者你的局域网网关地址。我遇到过一次很诡异的情况虚拟机可以ping通网关但无法解析域名后来发现是网络配置里DNS被写成了IPv6地址系统优先走了IPv6的DNS解析路径但虚拟机的NAT模式本身不支持IPv6路由。把这个DNS改成IPv4地址后问题解决。6. 虚拟机装好之后的第一件事软件源替换、VMware Tools增强与共享目录配置6.1 换掉默认源是第一次开机后最优先做的事Ubuntu默认的软件源是archive.ubuntu.com在国内访问速度极不稳定执行apt update经常卡在“Connecting to archive.ubuntu.com”或者在下载软件包的时候速度只有几KB每秒。这一步不解决后面什么操作都体会不到行云流水的感觉。换源的操作是修改/etc/apt/sources.list但在修改之前先备份一份。sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak然后编辑文件把archive.ubuntu.com和security.ubuntu.com全部替换成清华源或阿里源。以下是清华源对应的20.04版本内容deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse替换完成后执行sudo apt update如果速度还是慢就不要手动改了直接用tsinghua的镜像配置工具或者换用阿里云的mirrors。阿里云源的配置文本结构相同把域名换掉即可。提示不要在apt源里混着用多个镜像站的条目会导致索引不一致、软件包校验失败出现“The following packages have unmet dependencies”这类问题。6.2 验证VMware Tools增强功能是否完整生效在5.3节里已经安装好了open-vm-tools但现在值得花两分钟验证一下所有增强功能是否真正生效避免用的时候发现这才发现不能复制文件。验证清单包括从Windows拖拽一个文件到Ubuntu桌面在Ubuntu里复制一段文字切到Windows看是否能直接粘贴全屏虚拟机看桌面分辨率是否自动填满屏幕在Windows和Ubuntu之间拖拽一个大文件大于1GB确认速度稳定如果第一项和第二项失败执行sudo apt install --reinstall open-vm-tools-desktop sudo reboot如果只有拖拽失败、复制粘贴正常选择“虚拟机”菜单里的“重新安装VMware Tools”时不要再装了把它忽略掉因为open-vm-tools-dekstop里已经把拖拽支持做进去了。之前遇到一个情况是直接装官方VMware Tools和open-vm-tools冲突拖拽反而失效卸载掉其中一个后恢复正常。6.3 共享文件夹的配置与权限坑共享文件夹让Windows和虚拟机之间直接互传文件比拖拽更适合大量小文件、代码仓库之类的场景。配置方法是VMware菜单栏“虚拟机”-“设置”-“选项”-“共享文件夹”选择“总是启用”然后添加一个Windows目录比如D:\share。勾选“启用此共享”。在Ubuntu里共享文件夹默认挂载在/mnt/hgfs/目录下。如果打开这个目录发现是空的执行sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid1000把当前用户uid1000映射成共享目录的属主之后读写文件就不需要sudo了。如果你希望每次开机自动挂载把这条命令加入到/etc/rc.local或者写一个systemd服务单元。这个过程踩过一个坑共享目录里中文文件名在Ubuntu端显示为乱码或问号。这是因为挂载选项里没有指定编码方式。在挂载命令里加上-o iocharsetutf8参数可以解决。如果你用的共享目录名包含空格Windows端的共享文件夹设置里要允许带空格的名称否则挂载时会报“invalid argument”错误。6.4 安装VMware Tools增强前先调整显示驱动虚拟机里的Ubuntu桌面分辨率默认可能是800x600或者1024x768看着很局促。安装了open-vm-tools-desktop之后分辨率会自动调整为VMware窗口的大小。但是有个别机器上分辨率不会自适应需要手动开启“自动调整大小”方法VMware菜单栏“查看”-“自动调整大小”-“自动适应客户机”。如果自动调整以后分辨率没有变化检查系统设置里的“显示器”手动切换一个分辨率然后设置“缩放”为100%或125%系统会重新生成模式通常就能唤醒了。如果你装了Windows版VMware Tools但没有装open-vm-tools-desktop也会遇到分辨率死板不跟随窗口的情况这类问题一旦出现直接补装open-vm-tools-desktop即可。7. 从安装到可用的最后一片拼图显卡驱动、开发工具链与快照时机建议7.1 虚拟机的显卡驱动到底要不要单独装关于网上高频搜索的“Ubuntu 20.04 安装显卡驱动 apt install nvidia-driver-535”这个问题必须分清楚物理机和虚拟机的区别。在VMware虚拟机里显卡是虚拟出来的标识可能是SVGA或VMware SVGA 3D不是NVIDIA或AMD的物理显卡。所以如果你在虚拟机里安装“nvidia-driver-535”它不会加载因为虚拟机的PCI设备列表里压根没有NVIDIA GPU硬装的话大概率会出现“NVIDIA-SMI has failed because it couldnt communicate with the NVIDIA driver”这样的报错。正确的做法是在虚拟机里Ubuntu默认的显卡驱动基于Xorg的vesa驱动或vmwgfx驱动就是最合适的不需要额外动。如果你需要GPU加速计算正确路径是在Windows宿主机上安装NVIDIA或AMD官方驱动然后在VMware里开启“加速3D图形”选项虚拟机里的OpenGL渲染会转发给宿主机GPU执行。这个组合方式能满足大部分仿真可视化需求比如RViz、Gazebo在Ubuntu 20.04里的流畅度已经有了明显保障。如果你以后确实有CUDA训练的需求就不要用VMware了转为物理双系统或者直接使用带独显的Linux主机。这一步提前想清楚可以省掉折腾驱动的一整天。7.2 开发环境的最小套件gcc、make、git、curl、vim虚拟机装好之后除了系统自带的东西我建议第一时间把编译和开发基础工具装好后面不管装什么软件都不会再遇到“缺这个依赖缺那个编译器的尴尬”sudo apt update sudo apt install gcc g make cmake git curl wget vim net-tools dkms build-essential这些包加起来大概400MB左右在清华源下几分钟就能装完。这套环境是绝大多数开源项目的编译基础也是ROS、ORB-SLAM3、OpenCV这些大型框架安装的前置依赖。有些朋友会为了节省空间不装build-essential结果等编译某个项目的时候报“gcc: command not found”或“make: command not found”临时再补装浪费时间。一次性装好让你后续的流程顺畅很多。7.3 快照的时机选择别在最干净的时候打很多教程会建议“装完系统之后立刻打快照”但我不完全同意。因为刚装完的虚拟机只是“干净”还谈不上“好用”。你接下来要装软件源、基础工具、IDE、字体、输入法这些日常生活必备的组件如果你刚装完系统就打了快照之后每一样配置都会增加快照的体积和恢复时的复杂度。我的建议是分两次快照。第一次安装完系统重启进入桌面确认网络、鼠标键盘、分辨率都正常之后马上打一个快照命名为“clean-system”。这个快照是保底用的——不管后续配置怎么折腾只要这一张保底快照在系统永远能回退到原始状态。第二次完成软件源替换、安装好open-vm-tools、配置好共享文件夹、装完基础编译工具之后再打一个快照命名为“base-with-tools”。这个快照的意义是省事——以后新开一台虚拟机做实验的时候恢复这张快照直接基于基础环境开始不用再重复走一遍换源和装工具的流程。快照本身不备份数据文件所以你的代码、文档、下载的安装包不要只放在虚拟机里定期拖到共享目录和宿主机同步一份这在虚拟机VMDK文件损坏时的恢复效率会更高。7.4 磁盘空间快满了怎么办如果你设置磁盘时选了40GB装完系统、软件源缓存和一些开发库之后可能会发现已经占了一半以上。这里有几个实用的释放空间方法。先查看占用情况sudo apt autoremove sudo apt autoclean sudo journalctl --disk-usagejournalctl日志默认占用的磁盘空间上限是使用磁盘的10%在虚拟机里可能积累到好几个GB。手动限制日志大小sudo journalctl --vacuum-size100M这一步只清理老日志不会影响当前系统运行。如果磁盘空间还是不够就要扩容虚拟磁盘了。关机状态下在VMware的“编辑虚拟机设置”里把磁盘从40GB改到60GB然后启动虚拟机在系统里执行sudo growpart /dev/sda 1 sudo pvresize /dev/sda1 sudo lvextend -l 100%FREE /dev/ubuntu-vg/ubuntu-lv sudo resize2fs /dev/ubuntu-vg/ubuntu-lv注意最后两步的动作顺序——先扩展LVM逻辑卷再调整文件系统大小顺序反了会丢数据。这个扩容流程我在多个VMware虚拟机上跑过很多次从来没出过问题但执行之前保险起见还是打个快照再动毕竟涉及磁盘操作。8. 我再用一阵子之后的几点实际体会写这篇教程的时候我反复在想一个问题为什么很多人照着教程装虚拟机最后却装歪了。大部分情况下不是步骤看不懂而是卡在各种零碎的细节上——要么是镜像下载到了损坏版本要么是网络模式选错导致后面完全没法用要么是装完VMware Tools没重启就以为功能坏了。如果能把这些问题提前规避整条路其实非常顺。我个人在虚拟机使用频率最高的那段时间发现VMware加Ubuntu 20.04这套组合真正稳定的运行状态应该是宿主机开着浏览器、IDE和微信虚拟机开着两个终端窗口和浏览器编译任务同时在进行两边都不会有明显卡顿。这个平衡点的前提是硬件分配别贪心4核4G的配置在大多数场景下已经能跑得很好CPU和内存分配太高反而会拖累宿主机。最后再分享一个小技巧可以把虚拟机默认的磁盘优先级调到High。在VMware的“编辑虚拟机设置”-“选项”-“高级”-“磁盘优先级”里选择High这个设置能让虚拟机里的编译任务在宿主机同时在跑磁盘密集型任务时不至于等太久I/O调度。这是我用了很久之后才发现的一个不起眼的调优项但对体验的提升是实打实的。