ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

VMware虚拟机安装Ubuntu 20.04:开发环境搭建与ROS配置指南

2026/9/30 19:48:49 拓冰建站 浏览量
VMware虚拟机安装Ubuntu 20.04:开发环境搭建与ROS配置指南 1. 虚拟机里跑 Ubuntu 20.04这套方案到底解决什么问题在 VMware 虚拟机中安装 Ubuntu20.04说白了就是在 Windows 或 Linux 主机上开一块软件模拟出来的电脑把 Ubuntu 20.04 这套操作系统装进去。它不碰你的物理硬盘分区表不修改开机引导卸载的时候把文件夹一删就干净了。这套路子最适合三类人一是刚接触 Linux、怕把主力机搞崩的新手二是需要 Ubuntu20.04 这个特定版本跑老项目的人比如做机器人开发、跑 ROS Noetic、复现某些视觉算法的同学三是同时要在 Windows 下办公、又要在 Linux 下敲代码的双机党。我自己前后在四台机器上重复装过这套环境从机械硬盘时代装到现在的 NVMe中间踩过的坑比装成功的次数多。所以这篇不讲教科书式的下一步下一步而是把每一步背后为什么要这么选讲清楚尤其是那些新手照着图文教程点完、重启之后才发现不对劲的地方。装完之后你应该能得到一台开机 30 秒进桌面、能上网、能跟主机互相拖文件、能装 ROS 和各类开发工具的完整 Ubuntu20.04 虚拟机。2. 动手之前先把方案想明白2.1 双系统和虚拟机到底该选哪个很多人一上来就纠结我该装双系统还是虚拟机。这两个方案解决的不是同一件事。双系统是把 Ubuntu 直接装在物理硬盘上开机时选进哪个系统。好处是性能无损显卡、CPU、内存都是实打实的跑深度学习、做 3D 渲染、玩对帧率敏感的东西必须这么干。代价是分区操作有风险一旦引导项写坏Windows 可能进不去切换系统要重启给 Ubuntu 分的磁盘空间是固定的Windows 那边用不了。虚拟机则是在主机系统里跑一个完整的虚拟硬件环境。性能大概有 10% 到 30% 的损耗图形性能损失更大但对绝大多数开发场景完全够用——写代码、跑服务、编译项目、做实验、学生交作业虚拟机开箱即用。而且它能随手打快照装崩了一键回滚这是双系统给不了的。注意如果你的目标是跑大型神经网络训练、做视频剪辑或者需要直接调用物理显卡的 CUDA 算力别在虚拟机里耗时间直接上双系统或者物理机装 Ubuntu。虚拟机里的显卡是模拟出来的装物理显卡驱动没有任何意义这一点第 7 章会详细说。2.2 主机硬件怎么盘算才不至于卡成 PPT虚拟机跑得顺不顺主要看主机的三样东西内存、硬盘、CPU 核心数。内存是硬指标。Ubuntu 20.04 的 GNOME 桌面开机空载大概吃 800MB 到 1.2GB。你要跑 ROS、开浏览器、编译代码4GB 是能跑但难受8GB 是比较舒服的档位。分配原则是给虚拟机留出主机总内存的 40% 到 50%。主机 16GB给虚拟机 6GB 到 8GB主机 8GB最多给 4GB再多主机自己就开始狂读硬盘了。硬盘要分清容量和类型两件事。容量上Ubuntu 系统本体装完大概 8GB 到 10GB加上 ROS 全家桶、各类 SDK、数据集建议虚拟磁盘给 60GB 起步做视觉项目直接给 100GB。类型上机械硬盘装虚拟机会让你怀疑人生固态硬盘是刚需。如果你主机是小容量固态 大容量机械的组合虚拟机文件务必放在固态上哪怕只有 256GB 也要挤一挤。CPU 核心方面虚拟机分配的核心数不要超过主机的物理核心总数。主机是 8 核 16 线程给虚拟机 4 个核心是比较合理的主机是 4 核 8 线程给 2 个就够。分配超过物理核心数反而会因为调度竞争变慢。这个细节很多人不注意以为核越多越快。2.3 版本选型为什么偏偏是 20.04Ubuntu 的版本号是年份.月份20.04 就是 2020 年 4 月发布代号 Focal Fossa属于 LTS 长期支持版本。LTS 每两年发一次标准支持五年。选 20.04 的人绝大多数是被生态绑架的。ROS 的 Noetic 版本官方只支持 Ubuntu 20.04这是最后一个支持 Python 3 的 ROS1 版本大量机器人项目和实验室代码都停在这个组合上。ORB-SLAM3、Cartographer 这类视觉和激光建图项目官方文档和社区教程也基本以 20.04 为基准。另外一些企业内网工具、老版本的编译工具链也是点名要 20.04。如果你没有这些历史包袱纯粹是想学 Linux那建议直接上 22.04 或 24.04桌面更现代软件源里的包更新。但如果你是要复现某个 2021 到 2023 年之间的项目跟着教程走 20.04 会省掉一大堆这个包在新系统上装不上的麻烦。提示Ubuntu 20.04 的标准支持周期是到 2025 年 4 月之后进入 ESM 扩展安全维护阶段普通用户可以通过 Ubuntu Pro 免费订阅个人设备获取后续安全更新。装在虚拟机里做实验这个影响不大但如果是长期在用的开发环境建议规划一次迁移。3. 准备工作镜像、软件与主机环境3.1 镜像下载与完整性校验别省这一步Ubuntu 20.04 的镜像要从官方渠道拿。搜索Ubuntu 官网下载进到 Download 页面选 Desktop 版本20.04 现在在其他下载或者历史版本区域里。文件大概 3.5GB 到 4GB名字类似ubuntu-20.04.6-desktop-amd64.iso。后缀里的6表示这是 20.04 的第 6 个小版本更新包含了截至发布时的所有安全补丁装完能少下一大堆更新。下载页面同时会提供 SHA256 校验值这一步千万别跳过。镜像动辄 4GB中途网络抖动导致文件损坏是很常见的事装到一半报解压失败或者装完系统各种诡异报错八成是镜像坏了。Windows 下校验打开 PowerShell进到镜像所在目录Get-FileHash .\ubuntu-20.04.6-desktop-amd64.iso -Algorithm SHA256Linux 或者 WSL 下sha256sum ubuntu-20.04.6-desktop-amd64.iso把输出的字符串跟官网上那一长串对比只要有一个字符不一样就重新下载别抱侥幸心理。另外建议把镜像顺手再做一个副本——很多人装到一半发现虚拟光驱还挂着 ISO重启后系统又进安装界面就是因为没断开连接。用完之后记得在虚拟机设置里把 CD/DVD 的 ISO 路径清空。3.2 VMware Workstation Pro 的安装与授权怎么处理VMware Workstation Pro 17 是目前的主流版本Broadcom 收购之后官方开放了个人用户免费使用的通道注册一个 Broadcom 账号在支持页面里能找到个人使用的下载链接和对应的授权方式。这比到处找密钥靠谱得多也避免了来源不明的安装包。安装过程本身没什么难度双击 exe 一路下一步中间会让你选安装路径和增强型键盘驱动都保持默认即可。装完重启一次主机。有几个细节值得说。第一安装路径别放在中文目录下VMware 对中文路径的兼容性时好时坏出问题时排查起来很费劲。第二如果主机上装了 WSL2 或者 Docker Desktop它们会启用 Windows 的虚拟化平台功能早期版本的 VMware 会因此报错甚至主机蓝屏17.x 版本已经能较好共存但如果遇到问题优先检查这一块。第三运行 VMware 时如果提示权限不足、修复组件时提示需要管理员权限直接右键以管理员身份运行这是 Windows 权限隔离导致的不是软件坏了。3.3 主机侧的三项检查开启 BIOS 虚拟化。这是虚拟机能不能跑的前提。任务管理器 → 性能 → CPU右下角看虚拟化是不是已启用。如果显示已禁用重启进 BIOS找 Intel VT-x 或 AMD-V 的开关打开。不同主板叫法不一样华硕叫 SVM Mode戴尔叫 Virtualization惠普叫 VT-x/AMD-V翻一翻就找到了。检查磁盘空间和路径。虚拟机文件建议集中放在一个专门目录比如D:\VMs\不要放在桌面或者系统盘。原因有两个一是虚拟机文件会随使用不断长大放系统盘容易撑爆二是桌面目录经常被各种同步软件扫描几万个小文件被反复读取性能会掉得厉害。规划虚拟机命名。建议用系统用途版本的方式比如ubuntu2004-ros-work、ubuntu2004-test。以后机器多了你就知道这个习惯有多重要Ubuntu 64 位、Ubuntu 64 位 副本、Ubuntu 64 位 副本 2这种命名三个月后你自己都不知道哪个是哪个。4. 新建虚拟机参数选择的门道4.1 向导里几个容易点错的选项打开 VMware文件 → 新建虚拟机会问你典型还是自定义。新手直接选典型它能覆盖 90% 的场景。但有两个地方必须手动改。第一个是安装来源这一步。向导默认选安装程序光盘映像文件你选了 ISO 之后它会启用简易安装——自动帮你填用户名密码、自动分区、自动装 VMware Tools。听起来很爽但简易安装经常出问题用户名可能不符合 Ubuntu 的命名规则、自动分区把磁盘切得很奇怪、装完桌面环境是残缺的。所以强烈建议选稍后安装操作系统让它先建好空虚拟机再从 ISO 手动走一遍完整安装流程。第二个是客户机操作系统的选择。选 Linux版本选 Ubuntu 64 位。注意要选 64 位选错成 32 位会导致后面分配内存时上限被卡在 3GB 左右而且装不上 64 位内核。处理器配置数量给 1每个处理器的核心数量给 2 到 4。这个处理器数量对应的是物理 CPU 插槽虚拟机里给 1 就够给多了反而会让 Linux 内核的调度逻辑做一些不必要的判断。内存给 4096MB 起步8GB 主机给 4GB16GB 主机给 6GB 到 8GB32GB 主机可以给 12GB。4.2 磁盘类型、容量与单文件多文件之争磁盘这一步向导会问你三件事磁盘类型、容量、存储方式。磁盘类型默认是 SCSI保持默认就行。SCSI 在 VMware 里的兼容性最好性能也稳。NVMe 虽然理论更快但在老版本 VMware 上需要额外配置收益在开发场景里感知不明显。容量给 60GB 到 100GB。这里有个新手最容易误解的地方——这个容量是虚拟磁盘的上限不是立刻占用。你给 100GB实际装完系统可能只占 12GB剩下的空间跟着你实际写入的数据慢慢涨。存储方式单文件还是多文件。单文件是一个大的 vmdk读写连续性好性能略高但单个文件可能几十上百 GB备份和移动很麻烦。多文件是切成若干 2GB 的小文件方便拷贝和迁移性能差异在现代固态上几乎感知不到。我的建议是选多文件因为虚拟机最大的价值就是可迁移、可备份为了那一点点性能让备份变得痛苦不值当。另外记得勾选将虚拟磁盘存储为单个文件旁边的那个选项不要勾——也就是选拆分成多个文件。还有立即分配所有磁盘空间不要勾选勾了会立刻占满 100GB。4.3 网络模式三选一选错后面全是坑这一步是新手最容易踩坑的地方我单独拎出来说。VMware 提供三种主要网络模式模式虚拟机能不能上网主机能不能访问虚拟机局域网其他机器能不能访问适用场景桥接Bridged能且虚拟机是局域网里的独立设备能直接 ping IP能需要被外部访问的服务、模拟真实服务器NAT能通过主机转发能默认可以 ping反向访问需端口转发不能日常开发、学习最省事仅主机Host-Only不能上外网能不能做隔离实验、断网测试默认选 NAT它能上网主机也能直接连虚拟机路由器不会因为你多出一台设备而分配额外 IP。什么时候用桥接当你的虚拟机要跑一个网站需要让办公室同事或者手机也能访问时桥接是最省事的方案虚拟机会拿到一个和主机同网段的 IP别人直接访问这个 IP 就行。需要提醒的是NAT 模式下主机访问虚拟机的服务默认是通的虚拟机 IP 一般是 192.168.x.x 的私有段主机能直接访问。但如果反过来你想让局域网的另一台电脑访问虚拟机就得在 VMware 的虚拟网络编辑器里配置 NAT 端口映射把主机的某个端口转发到虚拟机的端口上配置项叫添加映射入站端口操作不算复杂但容易忘。5. 安装 Ubuntu 20.04 的完整实操记录5.1 引导界面与分区方案虚拟机建好之后在设置里把 CD/DVD 指向下载好的 ISO 文件勾选启动时连接然后点开启此虚拟机。启动后会先看到 GRUB 菜单直接回车选第一项。接着是语言选择这里建议选English不要选中文。原因很实际中文安装界面的字体渲染在小窗口里经常糊成一团而且安装阶段的报错信息用英文搜索更容易找到答案。装完系统之后再装中文语言包完全可以。键盘布局选 English (US)然后会问你是否更新安装程序选继续跳过或者选现在更新但要等很久通常没必要。分区这一步是新手最紧张的。安装类型界面给几个选项清除整个磁盘并安装 Ubuntu对虚拟机来说这个选项完全安全因为整个磁盘就是那块虚拟出来的 100GB 虚拟磁盘碰不到你的物理硬盘。新手直接选这个最省事。其他选项手动分区适合想练手或者有特定布局需求的人。如果你选手动分区一个比较稳妥的方案是这样的挂载点大小类型说明/40GBext4根目录系统本体和大部分软件swap4GBswap交换分区内存不够时兜底/home剩余全部ext4个人数据重装系统时可以保留再多说一句 swap。如果你的虚拟机内存给到了 8GB 以上swap 可以只给 2GB甚至不单独分区系统会默认创建一个 2GB 的 swapfile。但如果内存只有 4GB还要编译大项目swap 给 4GB 到 8GB 能救命。分区界面的安装启动引导器的设备保持默认的那个磁盘别动。5.2 用户、时区与安装加速分区之后是时区选择地图上点一下中国的位置或者直接搜索 Shanghai。时区选错的影响是系统时间和日志时间全乱后面配置一些对时间敏感的服务会出错。然后是创建用户。这里有几个规则要注意用户名只能是小写字母、数字和连字符不能有大写字母、不能有空格、不能以数字开头。密码建议设一个自己记得住的因为后面 sudo 提权会频繁用到。可以选择自动登录让虚拟机用起来更方便但如果这台虚拟机会存一点敏感数据还是老老实实每次输密码。接下来是关键的一步——安装过程开始前界面上有个安装 Ubuntu 时下载更新和安装第三方软件的勾选框。我的建议是安装 Ubuntu 时下载更新取消勾选。勾选之后安装程序会在装系统的同时去官方源拉更新那个速度在国内可能慢到让你以为死机了。装完之后换国内镜像源再更新速度快十倍。为图形或无线硬件安装第三方软件勾选。这里面包含了显卡、网卡等设备的一些固件和驱动虚拟机虽然用不太上但勾上不影响还能省掉以后手动装的麻烦。点击现在安装确认分区写入然后就是等。固态硬盘上大概 8 到 15 分钟机械硬盘可能 30 分钟往上。装完之后点现在重启同时记得在重启时进入虚拟机设置把 CD/DVD 里的 ISO 取消挂载或者改成自动检测否则重启又会进安装界面很多人会在这里懵住。5.3 首次启动后的收尾动作重启进入桌面后先做三件事。第一换软件源。打开软件和更新Software Updates在Ubuntu 软件标签页里找到下载自点开选择其他站点选一个国内镜像站比如清华的mirrors.tuna.tsinghua.edu.cn、阿里云的mirrors.aliyun.com、中科大的mirrors.ustc.edu.cn。选完会提示重新加载软件列表点确认。以后apt install的速度会从几十 KB 每秒变成几 MB 每秒。如果想用命令行换源直接编辑/etc/apt/sources.listsudo 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先备份再改这是个好习惯。改坏了把备份文件复制回去就行。第二更新系统sudo apt update sudo apt upgrade -y第一次更新可能会有几百个包耐心等。第三装几个基础工具sudo apt install -y build-essential git curl wget vim net-tools openssh-serverbuild-essential是编译工具链后面装任何需要编译的软件都绕不开它openssh-server是让你能从主机用 SSH 连进来比在虚拟机窗口里敲命令舒服得多net-tools提供ifconfig这类老牌网络命令虽然现在推荐用ip命令但很多教程还在用老的。6. 桌面体验补全工具、显示与文件共享6.1 open-vm-tools 和官方 VMware Tools 怎么选装完系统如果不装工具你会立刻感受到三个问题分辨率固定在 800x600 改不了、鼠标滑进滑出虚拟机要按快捷键、主机和虚拟机之间不能复制粘贴。解决这些问题需要装 VMware Tools。它有两条路一条是 VMware 菜单里那个安装 VMware Tools它会挂载一个虚拟光驱里面有个 tar.gz解压出来手动编译另一条是直接用 Ubuntu 官方源里的开源版本sudo apt update sudo apt install -y open-vm-tools open-vm-tools-desktop sudo reboot强烈建议走第二条路。open-vm-tools是 VMware 把这套工具开源之后由各大发行版维护的版本跟系统集成得更好能用 apt 直接升级不需要装内核头文件、不需要手动编译。官方那个手动编译的版本在新内核上经常编译报错网上流传的继续运行脚本未能在虚拟机中成功运行这个报错十有八九就是在手动编译旧版 VMware Tools 时出现的。用 open-vm-tools 根本不会遇到这个问题。open-vm-tools-desktop这个包是关键它负责图形界面的增强自动调整分辨率、剪贴板共享、拖拽文件。只装open-vm-tools是个纯命令行版本桌面用户一定要带上-desktop。如果你用的是 Ubuntu Server 版本没桌面环境只装open-vm-tools就行装 desktop 版会拖进来一堆图形库。6.2 分辨率自适应和主副屏设置装完open-vm-tools-desktop重启你会发现虚拟机的分辨率能跟着窗口大小自动变了窗口拉大桌面跟着变大按 CtrlAltEnter 进全屏模式分辨率会自动切到跟主机屏幕一致。如果没有自动变可以在设置 → 显示里手动选分辨率或者在终端里用xrandr手动添加一个模式xrandr --newmode 1920x1080_60.00 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync vsync xrandr --addmode Virtual1 1920x1080_60.00 xrandr --output Virtual1 --mode 1920x1080_60.00这套命令的原理是先算出一组符合 VESA 标准的时序参数把它注册成一个新模式再挂到虚拟显示器上。看起来有点玄学其实就是告诉虚拟显卡我允许你输出这个分辨率。不过说实话装好 open-vm-tools 之后绝大多数情况下不需要手动折腾这个。至于主副屏虚拟机本身是单显示器的。如果你想让虚拟机也用上主机的双屏在设置 → 显示里把显示器数量从 1 改成 2虚拟机里就会多出一个虚拟显示器然后可以在虚拟机的设置 → 显示里安排哪个在左边哪个在右边。不过虚拟机跨双屏用起来体验一般窗口拖拽的边界处理不如主机原生。6.3 共享文件夹与主机访问虚拟机服务共享文件夹是虚拟机和主机之间传文件最方便的方式。配置位置在虚拟机设置 → 选项 → 共享文件夹选总是启用然后添加一个主机的目录比如D:\share给它起个名字。在虚拟机里共享目录默认挂载在/mnt/hgfs/下面进去就能看到ls /mnt/hgfs/如果目录是空的说明挂载没成功。先确认open-vm-tools-desktop装了、虚拟机重启过。还不行的话手动挂一次sudo mkdir -p /mnt/hgfs/share sudo /usr/bin/vmhgfs-fuse .host:/share /mnt/hgfs/share -o allow_other -o uid1000uid1000是让你这个普通用户有权限读写不加的话目录属性会是 root编辑文件很麻烦。想开机自动挂载把配置写进/etc/fstab.host:/share /mnt/hgfs/share fuse.vmhgfs-fuse allow_other,uid1000,gid1000,defaults 0 0关于主机访问虚拟机的网站这是很常见的需求。搞法分两种NAT 模式下虚拟机 IP 一般是 192.168.x.x 这样的私有地址主机浏览器直接输这个 IP 加端口就能访问比如http://192.168.168.128如果想让局域网其他设备访问就切桥接模式虚拟机拿到路由器分配的 IP别人也能访问。实在不想改网络模式就在虚拟网络编辑器里配 NAT 端口转发。提示虚拟机里跑的 Web 服务如果监听的是127.0.0.1外部是访问不到的必须让它监听0.0.0.0。这个问题 90% 的新手都会遇到以为是网络配置错了其实改一行配置就行。6.4 中文语言环境的正确装法网上经常能看到虚拟机汉化包下载这种说法这是个误区——Ubuntu 根本不需要额外下载什么汉化包中文语言包就在官方的软件源里。正确做法是打开设置 → Region Language在Manage Installed Languages里第一次打开会提示语言支持不完整点安装。装完之后点Install / Remove Languages在列表里找到 Chinese (Simplified)勾选应用。完成后把它拖到语言列表的第一位重启系统。命令行等价的操作是sudo apt install -y language-pack-zh-hans language-pack-gnome-zh-hans sudo apt install -y $(check-language-support)装完之后可能还需要处理中文输入法。Ubuntu 20.04 默认的输入法框架是 IBus可以装ibus-libpinyinsudo apt install -y ibus-libpinyin然后在设置 → Region Language → 输入源里添加汉语智能拼音。顺便提一句中文环境下有个经典坑如果主目录下的目录名也变成了中文桌面下载文档很多命令行操作和脚本会不适应。可以在装完语言包后执行export LANGen_US.UTF-8 xdg-user-dirs-update --force这样目录名会保持英文界面语言仍然是中文两边都不耽误。7. 开发环境落地几个绕不开的高频场景7.1 ROS Noetic 的安装要点ROS Noetic 是 ROS1 的最后一个版本官方支持 Ubuntu 20.04这是很多人死守 20.04 的根本原因。标准安装流程是先配置软件源sudo sh -c echo deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main /etc/apt/sources.list.d/ros-latest.list sudo apt install -y curl curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - sudo apt update sudo apt install -y ros-noetic-desktop-fullros-noetic-desktop-full是个大包包含 rviz、gazebo、导航栈、感知库装完大概 2GB。如果只是做基础的节点通信练习装ros-noetic-desktop就够只写纯计算节点的话ros-noetic-ros-base更精简。装完之后初始化echo source /opt/ros/noetic/setup.bash ~/.bashrc source ~/.bashrc sudo apt install -y python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential sudo rosdep init rosdep updaterosdep init这一步在国内网络环境下大概率会失败报website may be down。解决办法有两个一是换个网络环境重试二是手动创建配置文件。手动方式是sudo mkdir -p /etc/ros/rosdep/sources.list.d sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://mirrors.tuna.tsinghua.edu.cn/rosdistro/rosdep/sources.list.d/20-default.list然后修改/etc/ros/rosdep/sources.list.d/20-default.list里的地址把 github 的域名替换成镜像站的对应路径。改完再执行rosdep update。注意镜像地址会随时间变化如果按上面的方式失败去你使用的镜像站搜索rosdistro找最新的路径。这类配置的通用思路是——官方源慢就换镜像镜像路径变了就重新查别死磕一个过期链接。装完 ROSroscore能启动就是成功了。第一次启动roscore会有点慢正常现象。7.2 显卡驱动虚拟机里的性能天花板在哪这一节是重点因为搜ubuntu20.04 安装显卡驱动的人特别多而在虚拟机里装物理显卡驱动是个典型的坑。在 VMware 虚拟机里你看到的显卡是 VMware SVGA II一块虚拟出来的显示设备走的是 Linux 内核自带的vmwgfx驱动。它没有独立的显存没有 CUDA 核心唯一的任务是把画面渲染出来。如果你在虚拟机里执行sudo apt install nvidia-driver-535运气好的话装完没有任何效果nvidia-smi会报找不到设备运气不好的话重启之后图形界面直接起不来只能进恢复模式卸载驱动。因为这个驱动是给 NVIDIA 物理显卡用的虚拟机上根本没有对应的硬件装了纯属给自己添麻烦。那虚拟机能跑 CUDA 吗默认不能。要让虚拟机用上物理显卡的算力需要做 GPU 直通PCI Passthrough这要求主机 BIOS 支持 IOMMU/VT-d把整块显卡分配给虚拟机独占主机自己就不能再用这块卡输出了。配置过程涉及内核参数、设备绑定、虚拟机 vmx 文件修改属于进阶操作而且笔记本上的独立显卡通常不支持因为输出还连着核显折腾成本很高。所以结论很清楚在虚拟机里做深度学习训练是不现实的。如果你要跑的是 ORB-SLAM3 这类以 CPU 为主的视觉 SLAM 项目虚拟机完全可以胜任它主要吃 CPU 单核性能和内存。如果项目里有基于 TensorRT 或者大规模网络推理的部分要么上双系统要么用云上的算力资源。顺带说一下 ORB-SLAM3 在虚拟机里的部署要点它依赖 Pangolin可视化、OpenCV图像处理、Eigen3线性代数、DBoW2 和 g2o后端优化。这些库在虚拟机里源码编译都没问题唯一要注意的是编译时并行度不要开太高——make -j4就够了开-j8有时会因为内存不足被 OOM Killer 杀掉进程报错信息还特别隐晦表现为cc1plus 被信号 9 终止。遇到这个报错第一个念头就该是内存不够。7.3 快照、克隆和备份给折腾留后路虚拟机最大的优势是能打快照但很多人不用等系统搞崩了才后悔。建立快照的时间点系统刚装完、基础工具装完、开发环境配置完成后各打一个。命名清楚一点比如刚装完系统-未配置、ROS环境就绪-20250101。这样后面无论装什么软件装崩了右键快照管理器恢复到最近一个可用状态两分钟搞定。克隆用于复制环境。如果你要开第二台虚拟机做对比实验选完整克隆它会连同当前快照状态一起复制一份跟原虚拟机完全独立。另一种链接克隆共享父磁盘省空间但父磁盘出问题子机也完蛋我不太推荐在日常使用。备份是另一回事。快照不是备份——快照文件也在同一个磁盘上磁盘坏了快照一起没。真要保险关机之后把整个虚拟机目录.vmx、.vmdk、.nvram这几个文件拷到移动硬盘或者别的地方。有个坑要提一下删除虚拟机目录之前一定要先在 VMware 里把它从库中移除或者至少确认虚拟机已经关机。如果虚拟机还在运行或者处于挂起状态.vmdk文件被进程占用你在资源管理器里怎么删都删不掉提示文件正在使用中。这时候要么在 VMware 里右键 → 管理 → 从磁盘中删除要么彻底关掉 VMware 进程再删。8. 常见问题速查与排查思路虚拟机的报错信息普遍比较模糊同一个现象可能有好几个原因。我把这些年遇到的高频问题整理成一张表方便对着现象找方向。现象常见原因排查与解决开机蓝屏Windows 主机Hyper-V/VBS 与 VMware 冲突VMware 版本过旧关闭内核隔离 → 内存完整性升级 VMware 到最新版必要时执行bcdedit /set hypervisorlaunchtype off会同时关闭 WSL2/Docker Desktop 的虚拟化加速虚拟机里没有网络适配器创建时未添加网卡vmx 配置被改坏关机后在虚拟机设置里添加网络适配器检查.vmx文件里是否有ethernet0.present TRUE能 ping 通 IP 但打不开网页DNS 配置问题检查/etc/resolv.confNAT 模式下确认主机的 VMware NAT Service 和 VMware DHCP Service 正在运行WinR 输services.msc分辨率锁死在 800x600没装 open-vm-tools-desktopsudo apt install open-vm-tools-desktop后重启复制粘贴、文件拖拽失效同上或 hgfs 服务未启动重装 open-vm-tools-desktopsystemctl status vmware-tools查看状态继续运行脚本未能在虚拟机中成功运行手动编译旧版 VMware Tools 失败放弃官方 Tools改用open-vm-toolsopen-vm-tools-desktop虚拟机设置菜单变灰、没有打开选项虚拟机处于运行/挂起状态权限不足先关机右键 VMware 图标以管理员身份运行修复组件时提示需要管理员Windows UAC 权限隔离以管理员身份运行 VMware Workstation主机浏览器访问不了虚拟机的服务服务监听 127.0.0.1防火墙拦截改服务监听0.0.0.0sudo ufw status检查防火墙磁盘空间不足扩容后系统看不到虚拟磁盘扩容后没有扩展分区和文件系统用gparted调整分区再用resize2fs扩展文件系统系统时间总是不对时区设置错误虚拟机时间同步失效sudo timedatectl set-timezone Asia/Shanghai确认 open-vm-tools 的时间同步服务在跑编译大项目时进程莫名被杀内存不足触发 OOM Killer降低编译并行度make -j2增加 swap加大虚拟机内存虚拟机运行一段时间越来越卡磁盘碎片宿主机内存被吃满关闭虚拟机做一次磁盘压缩检查主机内存占用考虑把虚拟机迁到固态盘关于磁盘扩容那条多解释两句因为这是很多人都要经历的。虚拟机用久了 60GB 不够是很正常的。扩容分两步先在 VMware 设置里把磁盘容量调大这一步只是把虚拟磁盘文件的上限改了然后进系统用gparted把分区往后扩展最后sudo resize2fs /dev/sda1让文件系统认到新空间。三步缺一不可很多人只做了第一步然后在系统里看容量没变以为扩容失败。另外Ubuntu 20.04 里挂载的共享文件夹如果出现权限被拒绝常见原因是 uid 没对上。用id命令看一下自己的 uid通常是 1000如果挂载命令里写的是别的数字改过来就行。提示虚拟机的日志在/var/log/下面/var/log/syslog和/var/log/vmware-*是最常看的两个位置。出问题时先看日志比在搜索引擎里盲猜快得多。9. 一点个人体会这套环境我在几台机器上重复装过很多遍最大的感受是装虚拟机的难点从来不在安装过程本身而在装完之后的那一堆小配置。安装向导点点鼠标二十分钟就完事了真正耗时间的是 open-vm-tools 装不上、共享目录挂不进来、ROS 的 rosdep 卡在初始化、主机访问不到虚拟机里的服务这些事。我的习惯是每次装完一台新的虚拟机第一件事就是打一个名叫纯净系统-已装基础工具的快照。有了这个快照后面无论怎么折腾、装什么乱七八糟的依赖心里都有底。这个习惯帮我省下的时间比我学任何一个具体技术点带来的收益都大。最后分享一个实用的小技巧给虚拟机配一个固定 IP。默认的 DHCP 每次重启可能会换地址你昨天记的 SSH 地址今天就失效了。在 Ubuntu 里编辑/etc/netplan/下的配置文件把网卡改成静态 IP注意 IP 要选在虚拟网络编辑器的 DHCP 范围之外配完执行sudo netplan apply。搞定之后主机上用 SSH 连虚拟机就不用每次去查地址了配合共享文件夹整个开发流程会顺畅很多。