资讯动态

VMware 安装 Ubuntu 20.04 虚拟机:从零配置到快照避坑指南

发布时间:2026/9/30 19:48:51 来源:尧图企业网站定制
Ubuntu 20.04 这个版本到今天依然有大量人在装尤其是做机器人、视觉、嵌入式开发的同学很多工具链的官方文档还停在 Focal Fossa 这一代。我自己的主力机器是 Windows每次要快速搭一个干净的 Linux 环境第一反应永远是打开 VMware 建个虚拟机装 Ubuntu 20.04而不是去折腾双系统。原因很实在虚拟机可以随时拍快照、随时删掉重来分区搞坏了不用拿 U 盘救砖宿主机上的微信、浏览器、Office 一个都不用关。这篇就按我自己的实操顺序把从零建虚拟机到系统跑起来的完整过程拆开讲包括那些填参数时容易懵的选项、装完之后必须补的几个动作以及我踩过的几类坑。不管你是第一次碰 Linux 虚拟机还是装过好几次但总有小毛病没解决应该都能从里面捞到点东西。1. 先想清楚为什么用虚拟机而不是双系统1.1 虚拟机与双系统在真实使用中的取舍很多人一上来就问虚拟机性能是不是很差这个问题的答案取决于你要干什么。如果你的目标是跑深度学习训练、编译大型 C 工程、做视频渲染那虚拟机确实会吃亏因为 CPU 指令要经过一层虚拟化转换磁盘 IO 也要过虚拟磁盘文件性能损失通常在 5% 到 20% 之间具体看负载类型。但如果你的目标是跑 ROS 节点、写 Python 脚本、调试一个 Web 服务、跟着教程学 Linux 命令虚拟机完全够用甚至比双系统更舒服。双系统的优势是性能无损、能直接访问全部硬件但代价也很明显切换要走重启流程两个系统共享磁盘空间需要提前规划好装错了引导项还可能把 Windows 弄得起不来。我自己早年给一台笔记本装过 Ubuntu 20.04 双系统结果一次内核更新之后 GRUB 引导顺序乱了折腾了一晚上才恢复。从那之后除非客户明确要求物理机环境我都是用虚拟机先做验证。虚拟机还有两个双系统给不了的能力快照和克隆。快照相当于游戏存档装驱动装崩了、改配置把网络搞没了回滚一下十秒钟解决。克隆可以复制出一台一模一样的机器我做分布式测试的时候经常一次克隆三台改改 IP 就能组个小集群。这两个能力在实际排查问题和做实验的时候价值极高。提示如果你的工作涉及需要直接访问 USB 加密狗、串口硬件、PCIe 采集卡虚拟机的透传虽然有方案但稳定性不如物理机这种情况建议老老实实装双系统或者单独备一台机器。1.2 版本怎么选Workstation Pro 还是 Player桌面版还是 ServerVMware 这边的产品线现在比较清爽了Workstation Pro 是完整版支持快照、克隆、多虚拟机同时运行、虚拟网络编辑器这些高级功能Workstation Player 是精简版个人使用免费但没有快照和克隆虚拟网络的可定制程度也低。我的建议是直接用 Workstation Pro因为现在官方对个人使用场景提供了免费的授权路径去官网注册个账号按引导走就行。这里要特别强调一句不要去网上搜所谓密钥生成器或者来路不明的序列号。这类东西一是可能带木马二是版本对不上会导致激活失败甚至软件异常退出为了省几分钟埋个雷不划算。正规渠道拿到的授权用起来心里踏实。Ubuntu 这边要区分 Desktop 版和 Server 版。Desktop 版带图形界面适合日常开发、跑 IDE、看仿真窗口Server 版没有图形界面占用资源少适合当服务器练手。新手我强烈建议从 Desktop 版开始因为图形界面能帮你确认很多状态比如网络连没连上、磁盘挂没挂上命令行搞不定的时候还能开个浏览器搜一下。另外提醒一句Ubuntu 20.04 LTS 的标准维护期已经走完了现在处于扩展安全维护阶段。如果你只是本地学习、跑跑实验不暴露在公网继续用没什么问题如果是长期跑的服务器建议认真评估一下是不是直接上 22.04 或 24.04。我写这篇还是以 20.04 为主因为大量机器人相关的教程和依赖包都是针对它的。2. 动手前的准备工作别急着点下一步2.1 镜像下载与完整性校验Ubuntu 20.04 的桌面版镜像文件大概 2.5GB 左右官方发布页面上会同时提供 SHA256 校验值。下载完之后一定要校验一遍尤其是用某些下载工具断点续传过的文件看着下完了实际上尾部可能缺字节装到一半报无法读取介质就是这个原因。Windows 上校验可以用 PowerShell 里的命令Get-FileHash .\ubuntu-20.04.6-desktop-amd64.iso -Algorithm SHA256Linux 或者 macOS 下更简单sha256sum ubuntu-20.04.6-desktop-amd64.iso把输出的哈希值和官网公布的值逐位比对一致就说明文件没问题。这一步花不了三十秒但能省掉后面最难排查的一类故障。2.2 硬盘空间与内存该怎么算虚拟机的资源分配不是越多越好要给宿主机留足余量。我的经验公式是这样的宿主机内存 16GB 的话虚拟机给 4GB 到 6GB宿主机 32GB 的话虚拟机给 8GB宿主机只有 8GB那虚拟机最多给 2GB 到 3GB再多宿主机自己就开始疯狂读盘了。CPU 核心数同理不要把所有核心都分给虚拟机。假设宿主机是 8 核 16 线程虚拟机给 2 核或者 4 核就够日常开发用。分太多的后果是宿主机响应变慢而且虚拟机内部调度反而容易抖动。磁盘空间的估算要分两块看。系统本身加上常用开发工具40GB 是起步线如果你还要装 ROS、编译大型工程、下载数据集建议直接给 80GB 到 100GB。虚拟磁盘的精简置备模式意味着你给 100GB 不代表立刻占用 100GB 物理空间它是用多少占多少所以放心给大一点。注意虚拟机磁盘文件必须放在有足够剩余空间的物理盘上。很多人把虚拟机放在 C 盘结果系统盘剩 10GB 就红了虚拟机一开就报磁盘空间不足。养成习惯单独建一个目录比如D:\VMs\所有虚拟机都放这里。2.3 宿主机必须打开的硬件虚拟化开关这一步是新手最容易漏掉的。VMware 要跑得动 64 位虚拟机宿主机 CPU 的虚拟化扩展必须打开。Intel 平台叫 VT-xAMD 平台叫 AMD-V需要在 BIOS 或 UEFI 里手动开启。判断有没有开任务管理器性能标签页里看 CPU 那一栏会有一行虚拟化已启用/已禁用。还有一类情况是开关打开了但还是不行原因是 Windows 上开启了 Hyper-V 相关的功能包括 WSL2、Windows 沙盒、内核隔离里的内存完整性检查、设备防护这些。这些功能会抢占虚拟化层导致 VMware 报错或者性能大幅下降。我遇到过一台机器虚拟机跑起来像幻灯片查了半天发现是开了内存完整性。关掉重启之后流畅得完全不像同一台机器。判断方法也简单如果 VMware 启动时弹窗提示此平台不支持虚拟化的 Intel VT-x/EPT或者运行起来特别卡先去检查这几项。Windows 专业版可以在启用或关闭 Windows 功能里看到 Hyper-V 是否被勾选家庭版则重点看内核隔离设置。3. 新建虚拟机的参数怎么填才不返工3.1 新建向导里每一项背后的含义打开 Workstation选创建新的虚拟机我一般选自定义高级因为典型模式给的默认值往往偏小后面还是要改。硬件兼容性保持最新版本就行除非你要把虚拟机文件拷到低版本 VMware 上用。客户机操作系统这一页选Linux版本选Ubuntu 64 位。虚拟机名称建议用有意义的名字比如ubuntu2004-ros-dev别用默认的Ubuntu 64 位不然克隆几台之后你根本分不清哪台是哪台。位置就是前面说的D:\VMs\这样的独立目录。处理器配置页按前面算的给。内存页同样。网络类型这一页很关键三个选项的区别值得说清楚网络模式工作方式适用场景主要坑点桥接Bridged虚拟机和宿主机同处一个物理网段向路由器要 IP需要局域网内其他设备访问虚拟机比如手机测页面公司网络可能限制每个设备的 MAC 地址容易拿不到 IPNAT虚拟机借宿主机 IP 出去宿主机做路由日常上网、下载包、做实验外部设备默认访问不到虚拟机需要手动做端口转发仅主机Host-only只能和宿主机通信出不了网做纯隔离的渗透测试实验、断网环境验证完全没法更新软件包日常开发我选 NAT省心。需要局域网访问的时候临时加一块桥接网卡比一开始就选桥接然后发现拿不到 IP 要舒服得多。磁盘页选创建新虚拟磁盘容量按前面估算给不要勾选立即分配所有磁盘空间勾了会立刻占满物理磁盘。磁盘存储为单个文件还是拆成多个文件单个文件性能略好但单文件超过 4GB 之后没法直接拷到 FAT32 的移动硬盘上。现在基本都是 NTFS 或者 exFAT单文件没问题我一般选单个文件。3.2 生成之后值得手动改的几处配置虚拟机建好但还没开机的时候进编辑虚拟机设置再检查一遍。有几个地方向导里没提但很有用。USB 控制器默认是 USB 2.0如果你要用 USB 3.0 的移动硬盘或者高速调试器改成 USB 3.1。改了之后虚拟机里的 Ubuntu 才能识别到 USB 3.0 设备。声卡如果虚拟机只当开发环境用声卡可以直接移除或者取消启动时连接能省一点资源也避免宿主机音频设备被抢占。共享文件夹这个可以在装完系统后再配也可以在设置里先加上。先加的时候记得勾选在 Windows 客户机中映射为网络驱动器是不需要的那是给 Windows 虚拟机用的。显示器默认使用主机设置最多支持 1 台显示器。如果你打算给虚拟机双屏这里要改成指定监视器设置把数量调上去。配置文件的细节如果感兴趣可以在虚拟机目录里找到扩展名为.vmx的文本文件用记事本打开就能看到所有硬件参数。比如memsize 8192是内存大小单位 MBnumvcpus 4是 CPU 核心数。改这个文件必须在虚拟机关机状态下进行改完保存再开机才生效。这是排查一些诡异问题的好入口比如虚拟机莫名只认到 1 个核心很可能就是这里写死了。4. Ubuntu 20.04 安装过程实操记录4.1 引导启动与安装模式选择虚拟机设置里选中CD/DVD指向前面下载好的 ISO 文件勾上启动时连接。点开启此虚拟机会先看到 VMware 的启动画面然后进入 GRUB 菜单。这里有个细节如果几秒内不操作它会自动进入默认项如果宿主机性能一般建议用方向键选中Ubuntu再按回车不要等它自动跳。进入之后会有一段自检和加载过程屏幕左下角有个键盘图标和一个无障碍图标。想省事可以直接等它进安装界面想自定义语言和辅助功能就先点一下。安装界面第一步选语言选中文或者英文都行。我习惯选英文原因是命令行下的报错信息、日志、搜索结果全是英文中文界面下遇到问题去搜反而要多翻译一层。如果你习惯中文选中文完全没问题只是注意某些老教程里的菜单路径可能对不上。第二步是更新和其他软件选正常安装。这里有个选项叫安装 Ubuntu 时下载更新我建议第一次装的时候取消勾选因为安装过程本身就要读写大量文件再叠加下载更新会明显变慢还容易在网速不稳的时候卡住。等系统跑起来之后再统一更新可控得多。第三方软件那个勾也可以先不打后面需要什么装什么。4.2 分区方案怎么定别用默认的整盘这一步是虚机和双系统最容易出分歧的地方。虚拟机里因为整块虚拟磁盘都归 Ubuntu 用选清除整个磁盘并安装 Ubuntu是不会影响宿主机的安全性上没有任何问题。但我还是建议选其他选项手动分区理由有两个一是手动分区能让你彻底搞清楚 Linux 的目录结构二是后面要做磁盘扩容或者迁移的时候知道分区布局会省很多事。针对一块 100GB 的虚拟磁盘我通常这么分挂载点建议大小文件系统说明EFI 系统分区512MBfat32仅 UEFI 启动时需要传统 BIOS 可跳过/boot2GBext4存放内核和引导文件独立出来避免根分区满了开不了机/根40GBext4系统和软件包都在这给大点留余量swap4GBswap内存 8GB 以下建议与内存等大或略大8GB 以上给 4GB 够用/home剩余全部ext4个人数据和配置都在这里重装系统时可以保留swap 分区的争议一直很大。现在的观点是内存足够大的话不需要太大 swap甚至可以用 swapfile 代替分区。但虚拟机有个特殊场景挂起和恢复对 swap 有一定依赖而且做实验的时候经常要跑一堆进程吃内存所以我习惯留一个 4GB 的 swap 兜底。分区的时候要特别注意安装启动引导器的设备这个下拉框。UEFI 模式下应该指向 efi 分区对应的磁盘比如/dev/sda千万不要指到某个具体分区上指错了会导致引导装不上重启之后直接进 BIOS。4.3 用户设置与安装完成后的第一轮操作分区确认之后会提示将以下分区格式化核对一遍没问题就继续。接下来选时区国内选 Shanghai。然后是用户信息这里有几个点值得说。用户名建议全小写、不带特殊字符因为很多脚本和路径拼接都假设用户名是纯小写字母。密码设一个你记得住的但别用 123456因为后面sudo要频繁输密码。计算机名同理全小写加短横线比较稳妥比如ubuntu-dev。安装过程大概十几分钟取决于宿主机磁盘速度。装完提示重启重启时如果卡在黑屏或者一直转圈先等一两分钟虚拟机首次启动有时候要做文件系统检查。如果超过三分钟还是没动静强制关机检查一下是不是引导装错了位置。进入桌面之后我固定做这几件事第一件打开终端跑一次全面更新sudo apt update sudo apt upgrade -y sudo apt autoremove -y第二件装 open-vm-tools 的桌面版。这是 Ubuntu 官方维护的虚拟机工具包比手动挂载 VMware Tools 的 ISO 要省事而且更新走 apt 流程sudo apt install -y open-vm-tools open-vm-tools-desktop装完之后重启分辨率能自动跟随 VMware 窗口大小剪贴板双向复制和文件拖拽也都能用了。第三件换软件源。默认源在国内速度不理想换成国内镜像站会快很多。编辑之前先备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i s|http://archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g /etc/apt/sources.list sudo sed -i s|http://security.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g /etc/apt/sources.list sudo apt update改完跑一次apt update如果没报错就说明源可用。第四件拍第一个快照。这是整个流程里我最看重的一步。快照名字用base-clean-install这种格式一眼就能看出状态。后面不管装什么搞崩了回滚到这个点都是干净环境。5. 装完之后那些容易卡住的问题5.1 网络类问题没有适配器、拿不到 IP、访问不到宿主机服务虚拟机没有网络适配器是我被问得最多的一个问题。表现是ifconfig或者ip addr里只有 lo没有 ens33 之类的网卡。绝大多数情况下不是系统问题而是虚拟机设置的网络适配器那一栏被取消了勾选或者选了仅主机模式而宿主机上对应的虚拟网卡被禁用了。排查顺序是这样先在 VMware 的编辑虚拟机设置里确认网络适配器存在且勾选了启动时连接然后看 VMware 菜单里编辑 - 虚拟网络编辑器中对应模式的虚拟网卡VMnet0/VMnet1/VMnet8是不是正常工作最后再进系统里看网卡有没有被识别。如果是 NAT 模式下能上网但访问不了宿主机上的服务这是因为 NAT 网络里宿主机通常是被屏蔽的需要在 VMware 的 NAT 设置里加端口转发规则。反过来如果你希望从宿主机直接访问虚拟机上的 Web 服务最简单的方式是给虚拟机加一块仅主机网卡然后用那个网段的 IP 访问。还有一个很隐蔽的坑克隆虚拟机之后 MAC 地址冲突。VMware 在克隆的时候会询问是否重新生成 MAC 地址如果选了否两台虚拟机在同一个网络里就会出现 IP 争抢表现为网络时通时断。遇到这种情况在虚拟机设置里点生成新的 MAC 地址重启网卡就好了。5.2 显示与虚拟机工具相关的问题关于继续运行脚本未能在虚拟机中成功运行这个提示一般出现在你手动挂载 VMware Tools 的 ISO 然后执行安装脚本的时候。原因是 VMware 自带的那套工具安装脚本对新版本内核的适配经常滞后编译内核模块失败。解决思路很直接别用 ISO 里的老版本改用 apt 里的 open-vm-tools。如果已经装了 ISO 版先卸载再装 apt 版。sudo apt purge -y open-vm-tools open-vm-tools-desktop vmware-tools sudo apt install -y open-vm-tools open-vm-tools-desktop sudo reboot分辨率不能自动调整通常也是 open-vm-tools-desktop 没装或者没生效。可以先确认服务状态systemctl status open-vm-tools systemctl status vmtoolsd如果服务是 active 但分辨率还是不对试试手动设置xrandr --output Virtual1 --mode 1920x1080关于显卡驱动这里必须澄清一个常见的误区。热词里有ubuntu20.04安装显卡驱动 apt install nvidia-driver-535这条命令在物理机上确实很常用但在 VMware 虚拟机里跑是没有意义的。虚拟机看到的显卡是 VMware 模拟出来的 SVGA 设备lspci | grep -i vga出来的是 VMware 自己的标识NVIDIA 的闭源驱动根本不认识它。强行装上去轻则报错重则 X 服务起不来直接黑屏。虚拟机里真正的图形加速走的是 open-vm-tools 里的 3D 驱动通道需要在虚拟机设置里勾选加速 3D 图形注意这个选项一旦勾选内存分配会受一定限制。如果你确实需要用到物理显卡的算力那要靠 PCI 直通把独显整个透给虚拟机这需要宿主机支持 IOMMU、主板和显卡都有一定要求完全是另一个话题了。如果你装 Ubuntu 20.04 的最终目的是部署 ORB-SLAM3 这类视觉项目那显卡驱动的问题在虚拟机里基本无解因为这类项目很多环节依赖 CUDA而 CUDA 要求真实的 NVIDIA 驱动栈。我的建议是虚拟机里先把代码编译通过、流程跑通用 CPU 模式验证逻辑等真要跑实时性能测试的时候再上物理机。这样能省掉大量在虚拟机里折腾驱动的无效时间。5.3 其他高频故障排查速查现象可能原因处理方式开机直接进 BIOS 或报 no bootable device引导安装位置选错重新安装引导器指向磁盘而非分区界面卡死、鼠标动不了3D 加速与显卡驱动冲突虚拟机设置里关闭 3D 加速或在 GRUB 里加 nomodeset 参数系统时间每次都慢几个小时挂起恢复后时钟漂移安装 open-vm-tools 后执行sudo timedatectl set-ntp true虚拟机整体卡顿严重宿主机开启了 Hyper-V 或内存完整性关闭相关功能并重启宿主机磁盘写满但看着还有空间虚拟机磁盘快照占用过多在快照管理器里删除旧快照注意删除快照本身也耗时剪贴板无法双向复制缺少 open-vm-tools-desktop安装后重启确认 vmtoolsd 进程在跑宿主机访问不到虚拟机内的网站NAT 模式默认隔离加仅主机网卡或配置 NAT 端口转发复制进来的文件没有执行权限共享文件夹挂载参数限制改用 scp 传输或在挂载参数里调整权限选项最后一行说的共享文件夹有个细节值得展开。Ubuntu 20.04 下共享文件夹默认挂载在/mnt/hgfs但新版内核里这个挂载不再自动完成需要手动执行sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid1000 -o gid1000allow_other让普通用户也能访问uid和gid指定文件归属这样复制进去的文件权限才正常。要做成开机自动挂载把这行写进/etc/fstab.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid1000,gid1000,defaults 0 06. 我从这些年的虚拟机使用里攒下的几点经验6.1 快照要有策略别当成无限存档快照很好用但滥用会出问题。快照的原理是把当前磁盘状态冻结后续写入全部记到增量文件里所以快照开得越多磁盘 IO 越慢占用的空间也越大。我见过有人开着七八个快照跑了大半年虚拟机磁盘文件从 40GB 涨到了 200GB卡得没法用。我的做法是装完干净系统拍一个叫base装完主要开发环境拍一个叫dev-ready做某个有风险的实验之前临时拍一个名字带上日期实验做完确认没问题立刻删掉。删除快照的时候要留意VMware 需要把增量数据和基础磁盘合并这个过程可能持续十几分钟期间千万别强行关虚拟机。另外拍快照之前最好把虚拟机关机而不是在运行状态下拍。运行状态快照会连同内存一起保存文件体积大恢复之后网络状态有时候也会异常。6.2 克隆与磁盘扩容的取舍需要多台机器做实验的时候克隆比重新装一遍快得多。这里要区分完整克隆和链接克隆完整克隆是彻底复制一份占用完整的磁盘空间但独立性强删掉母盘也不影响链接克隆共享母盘的只读数据省空间但母盘一旦损坏所有链接克隆全部报废。日常用完整克隆更省心。克隆完第一件事是改主机名和 IP不然几台机器重名会在网络里出乱子sudo hostnamectl set-hostname ubuntu-node2 sudo sed -i s/ubuntu-dev/ubuntu-node2/g /etc/hosts磁盘空间不够用的时候扩容流程分两步。先在 VMware 设置里把磁盘容量调大这一步只是改了大小的声明虚拟机内部还没感知到然后进系统用gparted或者命令行扩分区和文件系统。如果有快照存在扩容操作会被拒绝必须先删掉所有快照。这也是我建议平时别留太多快照的原因之一关键时刻它会挡路。6.3 后续可以怎么接着折腾环境跑起来之后往哪个方向走取决于你的目标。做机器人的话Ubuntu 20.04 对应的是 ROS Noetic这是 ROS1 的最后一个长期支持版本安装流程比较成熟sudo sh -c echo deb http://packages.ros.org/ros/ubuntu focal main /etc/apt/sources.list.d/ros-latest.list sudo apt install -y ros-noetic-desktop-full装完记得source /opt/ros/noetic/setup.bash并且写进.bashrc。做通用开发的话把 zsh、oh-my-zsh、tmux、docker 这套配起来虚拟机基本就变成一个随时能带走的工作站。Docker 在虚拟机里跑还有一个额外好处外层的虚拟机本身就是一层隔离你可以在里面随便折腾容器而不用担心影响宿主机。我个人最后的体会是虚拟机最大的价值不是省钱而是它把试错成本压到了最低。随便改、随便装、随便搞崩回滚一次就回到原点。这台 20.04 的虚拟机我用了很久前后回滚过十几次里面装过 ROS、编译过大型工程、也跑过 Web 服务每次搞坏了都不心疼。如果你正准备开始建议就在第一次装完、更新完、确认网络和显示都正常的那一刻老老实实拍下一个快照——这个动作会在此后无数次救你的命。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑