
1. 为什么我推荐 VMware Ubuntu 18.04 这套组合先说结论如果你是想学 ROS、做自动驾驶仿真、跑 ORB-SLAM 这类视觉 SLAM 算法或者看 Autoware 相关的相机雷达联合标定工具Ubuntu 18.04 仍然是目前兼容性最稳的 Linux 发行版之一。哪怕现在已经有了 Ubuntu 20.04、22.04甚至 24.04很多老牌开源项目的老版本分支、编译脚本、依赖库依然默认踩的是 18.04 的环境。我自己最早接触 Ubuntu 18.04 是在 2018 年那时候刚换到做机器人感知方向实验室的工控机清一色 18.04。后来折腾过 20.04也短暂试过 22.04但每次想复现一些老代码时总被各种依赖冲突折磨得够呛。所以到现在我给人推荐学习环境时依然首推 Ubuntu 18.04——不是为了追求新而是为了省事。虚拟机选 VMware也是同样的道理双系统要重启切换、要处理引导分区、搞不好还容易把 Windows 搞挂而虚拟机里随便折腾快照一打系统搞崩了回滚一下又是一条好汉。这篇文章我会把整个安装流程完整走一遍包括 VMware 虚拟机怎么建、Ubuntu 18.04 镜像去哪下、安装过程中哪些选项必须认真选、装完系统之后第一件事要做什么以及最常踩的几个坑。适合零基础刚开始接触 Linux 的同学也适合准备搭 ROS 开发环境但还没想好怎么装系统的朋友。在正式开始之前我先说一个很重要的判断VMware 虚拟机装 Ubuntu 18.04核心不在于点“下一步”的过程而在于三件事——镜像选对、虚拟硬件配置合理、装完后的系统初始化做对。很多人安装过程看着很顺利结果一开机要么黑屏要么网络不通问题基本都出在这三件事上。所以这篇文章的重点也会放在这三块。2. 开工前的准备镜像、VMware 版本和密钥2.1 Ubuntu 18.04 镜像怎么下、下哪个装系统第一步是拿到正确的镜像文件。这里有个常见的误区一搜“Ubuntu 18.04 下载”就随便找个第三方站点下载结果装到一半报错或者装完系统里有各种乱七八糟的预装软件。我建议只从官方渠道下载。Ubuntu 官方把旧版本镜像放在old-releases.ubuntu.com因为 18.04 已经停止标准支持官网首页的下载入口默认给的是最新 LTS 版本。你直接访问http://old-releases.ubuntu.com/releases/18.04.5/就能看到完整的镜像列表。选择镜像时注意文件名后缀ubuntu-18.04.5-desktop-amd64.iso—— 桌面版带 GNOME 图形界面适合日常学习和 ROS 开发ubuntu-18.04.5-server-amd64.iso—— 服务器版纯命令行不推荐新手直接用绝大多数人应该选桌面版。64 位 CPU 就选amd64现在基本没有 32 位的机器了i386版本不用看。文件名里的18.04.5是 18.04 的最后一个更新点版本相比最早的 18.04.0它集成了之后所有安全补丁和驱动修复优先选这个。顺带一提下载时可以用 BT 工具或者国内镜像源加速比如清华 tuna、阿里云镜像站都有 18.04.5 的同步。如果你在北京、上海这些网络环境复杂的地方官方源下载速度可能不太乐观。2.2 VMware Workstation Pro 下载与密钥处理VMware Workstation Pro 目前属于博通Broadcom官网下载入口变化比较大。不过下载方式很简单直接搜索“VMware Workstation Pro 17 下载”进入官网页面后注册一个账号就能拿到安装包。安装包大概 600MB 左右Windows 版本是.exe一路下一步即可。关于许可证密钥这里多说一句VMware Workstation Pro 对个人用户已经宣布免费但安装时依然会让你输入密钥。你可以选择“稍后激活”继续用试用版也可以找一个有效的个人许可证密钥填进去。网上流传的很多密钥其实是批量授权或老版本通用密钥能不能通过验证随机性很大。我的建议是装好后先用试用版不影响虚拟机的创建和使用。如果你使用的是 17.0 之后的版本长期使用个人用途基本没问题。装完 VMware 后建议顺手重启一次 Windows让安装过程中注册的系统服务比如VMware Authorization Service、VMware DHCP Service和VMware NAT Service完全生效。这一步很多人跳过结果后面虚拟机网络老出怪问题。2.3 安装前想清楚这台虚拟机分多少资源在创建虚拟机之前先评估一下你电脑的硬件配置。Ubuntu 18.04 桌面版的官方最低配置很低——2GB 内存、20GB 硬盘就能跑但如果你打算在虚拟机里编译 ROS 或者跑标定工具这点配置远远不够。我个人的经验标准是这样组件最低要求推荐配置说明物理机内存8GB16GB虚拟机至少分 4GB编译时才不卡处理器双核四核及以上分配 2~4 核编译速度提升明显磁盘40GB60GB系统ROS标定工具数据集40GB 很紧显卡集成即可独立显卡虚拟机里 3D 加速效果有限不用太指望如果你是 8GB 内存的笔记本那给虚拟机 4GB 已经是上限了Windows 自己还要留点余量。如果你是 16GB 或 32GB 内存我建议直接分 8GB 给虚拟机这样运行编译工具和图形界面会更流畅。3. 虚拟机创建与系统安装全流程3.1 新建虚拟机的关键选项典型还是自定义打开 VMware Workstation Pro点击“创建新的虚拟机”会出现两个选项典型推荐和自定义高级。如果你完全没接触过虚拟机选“典型”当然也能装完系统但我更建议选“自定义”。原因是典型模式会自动使用一些默认配置比如磁盘类型、固件类型这些默认值不一定适配你后面的用途。而自定义模式可以让你在创建时就确定好关键参数避免装完系统再折腾。不过话说回来对于新手来说选“典型”也不会出大问题。关键步骤在后面几个配置项上。接下来会问“安装程序光盘映像文件”这里直接浏览选择你下载好的ubuntu-18.04.5-desktop-amd64.iso。这里有个细节如果你选择了镜像文件VMware 会通过简易安装模式自动帮你装系统这个模式的好处是全程不用手动操作坏处是它默认创建的用户名、密码、分区方案不一定符合你的预期。我习惯在这里先不指定镜像而是选“稍后安装操作系统”等虚拟机创建完再把镜像挂载上去做手动安装。这样我能完全控制整个安装流程。3.2 虚拟硬件配置的详细参数接下来的配置页有四处很关键客户机操作系统选择“Linux”版本下拉框里选“Ubuntu 64 位”。如果你电脑是 Intel 或 AMD 的 64 位 CPU就不要选 32 位选项否则装完系统会缺失很多功能而且后续装 ROS 时依赖库会各种报错。处理器配置处理器数量选 1每个处理器的核心数量根据你的物理机 CPU 决定。我的建议是至少 2 核有条件就给 4 核。在 VMware 里分配多核并不会让虚拟机的性能线性提升但编译时多核心的优势非常明显。make -j4和make -j2的编译时间差距是肉眼可见的。内存按前面表格说的至少 4GB。这里有一个重要限制分配给虚拟机的内存不要超过物理机内存的一半。比如物理机 8GB虚拟机给 6GB 的话Windows 会频繁使用虚拟内存整体体验反而更差。磁盘容量建议 60GB。有朋友问我磁盘是不是分得越大越好不是。默认的“将虚拟磁盘拆分成多个文件”选项可以保留这样方便复制迁移。但你给 60GB实际占用是从你写入的数据量开始算的不会一开始就吃满 60GB 物理空间所以不用担心硬盘空间被白白占掉。待这些参数都设置好后先不要急着点“完成”。在自定义硬件界面里还需要确认一下网络适配器的类型。默认是 NAT 模式这个推荐保留。NAT 的意思是虚拟机通过宿主机上网对有线和无线网络环境都友好不需要额外的网络配置。3.3 安装 Ubuntu 18.04分区与用户设置的避坑细节虚拟机创建好后点击“开启此虚拟机”VMware 会从 ISO 镜像引导。看到紫色界面后选择“Install Ubuntu”进入安装向导。语言选择建议选“English美国”。我知道很多新手朋友看到英文界面就头大想选中文。但我的建议是装 ROS 和标定工具时大量报错信息是英文的系统语言用英文会更方便搜索问题和对照文档。而且 Ubuntu 的英文界面占用资源更少中文支持后续可以通过安装语言包随时补上。键盘布局选默认的 English (US) 即可除非你用非标准键盘。到了“安装类型”这一步新手最容易懵。这里选“Erase disk and install Ubuntu”就行但要注意这是擦除“虚拟磁盘”不是你的 Windows 物理磁盘。虚拟磁盘对于你的 Windows 系统来说只是一个文件所以放心选。但也要防止一种情况如果你在物理机上直接安装 Ubuntu 时选了这项那才是真的会清空整个硬盘。在虚拟机里这个选项是安全的。继续往下会让你设置时区选 Shanghai 即可。然后是创建用户这里有几个建议用户名建议全小写不要用大写或空格密码不要太复杂因为虚拟机里你经常要输入 sudo 密码太长会烦服务器名computername保持默认就行后续用到 ROS 时主机名会参与 ROS_MASTER_URI 配置等安装进度条跑完系统会自动重启。重启后如果看到紫红色的 GRUB 引导菜单说明安装成功了。这时候 VMware 会自动从虚拟磁盘启动进入 Ubuntu 桌面环境。3.4 安装完先做两件事open-vm-tools 和软件源装完系统的第一时间很多人会急着去装各种软件但我强烈建议先做两件事。第一件事打开终端执行sudo apt update sudo apt upgrade -y第二件事安装 open-vm-tools替代 VMware Toolssudo apt install open-vm-tools open-vm-tools-desktop -y这里解释一下VMware 提供了两种方式让虚拟机和宿主机之间交互一种是 VMware 自带的 VMware Tools需要手动挂载 ISO 安装另一种是 Ubuntu 软件源里的open-vm-tools直接 apt 安装即可。后者在 Ubuntu 18.04 上已经非常成熟支持共享文件夹、自适应分辨率、剪贴板共享、拖拽文件等功能。建议直接用 open-vm-tools不要再折腾 VMware Tools 安装脚本。很多网上教程还在教你怎么挂载 VMware Tools ISO 并运行vmware-install.pl这个流程在 Ubuntu 18.04 上容易报“继续运行脚本未能在虚拟机中成功运行”的错误实际上没必要去解决它换个思路用 apt 装 open-vm-tools 就好了。4. 网络配置与 SSH 远程连接的实操方案4.1 NAT 模式网络不通的排查思路一般情况下装完 Ubuntu 后 NAT 网络是自动配置好的虚拟机里打开 Firefox 就能上网。但如果你发现网络不通按照下面的顺序排查先看虚拟机里有没有 IPip addr如果网卡显示state DOWN手动启用sudo ifconfig ens33 up sudo dhclient ens33如果提示找不到网卡检查 VMware 的虚拟网络编辑器。在 Windows 宿主机上打开“编辑 - 虚拟网络编辑器”确认VMnet8NAT 模式对应的虚拟网络的子网 IP 没有被其他程序占用。常见问题是你手动修改过 VMnet8 的子网段导致 DHCP 分配的地址和虚拟机不在同一网段。如果还是不行最简单的办法在虚拟网络编辑器里点“恢复默认设置”把 VMware 的虚拟网络全部重建一遍。这个操作不会影响已有虚拟机但是会把 NAT、DHCP 服务恢复成初始状态。4.2 固定 IP 并开启 SSH 服务虚拟机里的 Ubuntu 默认没有安装 SSH 服务端如果你想用 MobaXterm 或者 Xshell 从 Windows 连接 Ubuntu需要先sudo apt install openssh-server -y安装完成后启动服务并设置开机自启sudo systemctl enable --now ssh查看虚拟机的 IPip addr show | grep inet如果你希望虚拟机的 IP 固定下来避免每次重启后地址变化导致连接断开可以编辑 netplan 配置sudo vim /etc/netplan/01-netcfg.yaml改成类似这样的配置network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no addresses: [192.168.40.10/24] gateway4: 192.168.40.2 nameservers: addresses: [223.5.5.5, 8.8.8.8]这里192.168.40.2是 NAT 模式下 VMware 虚拟网络的默认网关具体要看你的 VMnet8 子网配置。DNS 用阿里 DNS223.5.5.5和 Google DNS8.8.8.8混合实测下来解析速度不错。改完后执行sudo netplan apply再用ip addr确认 IP 是否生效。这里要注意缩进YAML 文件里空格比 Tab 严格一旦格式错误netplan apply会直接报错而这恰恰是新手最容易踩的坑。建议用sudo nano /etc/netplan/01-netcfg.yaml编辑避免 Vim 的编辑模式不熟悉导致误操作。固定 IP 的另一个好处是后续配置 ROS 主从机通信时不用每次查 IP。ROS_MASTER_URI和ROS_HOSTNAME都依赖稳定的 IP 地址如果你用 DHCP 动态分配今天能连上明天可能就连不上了。5. 系统性能优化与共享文件夹配置5.1 虚拟机卡顿问题的优先级排序很多新手装完 Ubuntu 18.04 之后吐槽虚拟机里动一下鼠标都卡。其实这个问题跟 VMware 的配置和 Ubuntu 的图形界面设置都有关系。最常见的卡顿原因是VMware 的 3D 加速没有开启。在虚拟机设置里显示器选项可以勾选“加速 3D 图形”并分配一定的图形内存。这个对 Ubuntu 18.04 的 GNOME 桌面效果提升明显。其次的原因可能是物理机性能不够或者分配资源不足。把虚拟机的内存从 2GB 提到 4GB把处理器核心数从 1 提高到 2效果立竿见影。还有一个优化手段是关掉 Ubuntu 的动画效果。在“设置 - 外观”里把动画关闭或者在终端中执行gsettings set org.gnome.desktop.interface enable-animations false这个修改能减少 GNOME 桌面渲染时的资源开销对虚拟机里的图形性能提升很明显。5.2 共享文件夹Windows 和 Ubuntu 互传文件当你用 open-vm-tools 实现了基础的拖拽文件功能后大文件传输可能还是不方便。拖拽适合几十 MB 的小文件一旦要传几个 GB 的数据集最好用共享文件夹。设置方法在 VMware 的虚拟机设置里选择“选项 - 共享文件夹”选择“总是启用”添加一个 Windows 文件夹路径。然后在 Ubuntu 里查看共享文件夹的位置ls /mnt/hgfs/如果这个目录是空的或者不存在通常是 open-vm-tools 的服务没有正确挂载。执行sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid1000如果希望开机自动挂载可以把这行命令加到/etc/rc.local或者用 systemd 服务实现。需要特别注意的是不要把 Windows 的数据目录直接整个共享给虚拟机只共享一个专用的数据交换目录就行。这样可以避免权限混乱和误操作带来的数据风险。5.3 Ubuntu 18.04 备份与克隆如果你打算在 Ubuntu 里装 ROS 和标定工具强烈建议在系统干干净净的时候先给虚拟机打个快照。方法是在 VMware 菜单栏点击“虚拟机 - 快照 - 拍摄快照”给快照起个名字比如“clean-ubuntu-18.04-before-ros”。这样后面不管装什么装坏了都能一键回到这个干净状态。另一种备份思路是直接复制虚拟机的文件夹。默认虚拟机的存放路径在C:\Users\你的用户名\Documents\Virtual Machines\下面找到对应文件夹把整个目录复制到移动硬盘。恢复的时候用 VMware 的“打开虚拟机”功能选择.vmx文件即可。这种方式相当于把一个完整系统备份下来了即使重装了 Windows 宿主系统也能恢复出原来的虚拟机。根据我自己的经验快照 整体目录复制双保险是最稳妥的做法。快照能应对系统内部的损坏目录复制能应对 VMware 软件本身的问题。6. 常见问题排查实录与避坑指南6.1 安装过程中遇到的黑屏与卡死问题现象启动虚拟机后Ubuntu 的启动画面一直黑屏或者卡在紫色界面转圈不动。原因分析多数情况下这是虚拟机的显示器驱动和 Ubuntu 内核的兼容性问题也可能是分配的内存不够或者 CPU 虚拟化功能未开启。解决办法先检查 Windows 的 BIOS 里是否开启了 Intel VT-x 或 AMD-V 虚拟化功能。在 VMware 的“处理器”设置里也可以查看是否勾选了“虚拟化 Intel VT-x/EPT 或 AMD-V/RVI”选项。如果没有这个权限虚拟机性能会大打折扣而且某些内核模块无法正常加载。如果确认虚拟化已开启还是黑屏可以尝试在虚拟机设置中把“显示器”的加速 3D 图形取消勾选因为老版本 VMware 和 Ubuntu 18.04 的高版本内核有时会出现 3D 驱动冲突。终极办法在 GRUB 引导界面按e编辑启动项在linux那一行的末尾加上nomodeset然后按 F10 启动。nomodeset会让内核不做显卡模式设置虽然分辨率会低一些但能绕过大部分图形黑屏问题。进入系统后可以永久修改编辑/etc/default/grub在GRUB_CMDLINE_LINUX_DEFAULT里加上nomodeset然后执行sudo update-grub。6.2 VMware Tools 安装脚本报错的正确处理方式网上很多教程还在用老方法——在虚拟机菜单栏点击“安装 VMware Tools”然后挂载 ISO运行vmware-install.pl。但在 Ubuntu 18.04 上这个流程经常报一个经典错误VMware Tools 继续运行脚本未能在虚拟机中成功运行。如果您在此虚拟机中配置了自定义的 VMware Tools 解决方案请检查脚本是否正确。这个报错不用修。因为 Ubuntu 18.04 的 apt 源里已经有 open-vm-tools它和 VMware 官方 Tools 功能完全一致而且不需要重复安装。解决办法就是在终端执行sudo apt install open-vm-tools open-vm-tools-desktop -y安装完成后重启虚拟机共享文件夹、自适应分辨率、从 Windows 拖拽文件到虚拟机等功能就全部正常了。6.3 磁盘空间不足的扩容方案如果你安装时设置的磁盘容量偏小比如只给了 20GB装完系统再装几个大型软件可能空间就不够了。这时候可以通过 VMware 扩展虚拟磁盘先在虚拟机设置里把硬盘大小改大比如从 20GB 改成 50GB。这一步要在虚拟机关机状态下操作。然后启动虚拟机在 Ubuntu 里扩展分区。Ubuntu 18.04 默认使用 LVM 的情况较少通常是普通分区。先查看当前分区情况sudo parted -l然后使用 GParted 工具进行可视化调整sudo apt install gparted -y sudo gparted在图形界面里把空闲空间分配给/分区即可。如果你备份过数据也可以直接用 GParted 的 Live CD 启动但虚拟机里操作 GParted 比较方便可以直接在当前系统里运行。6.4 鼠标移出虚拟机失灵的快捷方法装了 open-vm-tools 之后鼠标在虚拟机和宿主机之间切换是自动的不需要按热键。但如果出现鼠标被困在虚拟机窗口内的情况按CtrlAlt就能释放鼠标。如果希望鼠标完全无缝切换确认 VMware 菜单栏的“虚拟机 - 设置 - 显示器”里勾选了“加速 3D 图形”并且在 Ubuntu 的“设置 - 设备 - 鼠标”里调整合适的双击速度。6.5 快速排查速查表问题可能原因快速排查命令/操作虚拟机无法上网NAT 服务未启动、网络配置被改ip addr在虚拟网络编辑器里恢复默认设置共享文件夹为空open-vm-tools 未安装sudo apt install open-vm-tools-desktop然后检查/mnt/hgfs系统启动黑屏显卡驱动兼容问题、虚拟化未开启检查 BIOS 开启 VT-x加nomodeset启动参数拖拽文件失败VMware Tools 未正确安装使用 open-vm-tools 替代官方 ToolsSSH 连接被拒绝openssh-server 未安装sudo apt install openssh-serversudo systemctl status sshsudo 输入密码时报错用户不在 sudo 组简易安装模式用 root 登录执行usermod -aG sudo 用户名虚拟机磁盘空间不足初始分配过小在 VMware 设置中扩容再用 GParted 扩展分区系统时间不正确虚拟机的 RTC 与宿主机不兼容安装ntpdate同步网络时间6.6 关于“安装 Autoware 相机雷达联合标定工具”的延伸提醒热词里出现了“ubuntu18.04 安装autoware相机雷达联合标定工具”如果你后续要装这类工具有几个安装前的注意点Autoware 老版本如 1.10、1.12确实依赖 Ubuntu 18.04 ROS Melodic这也是为什么很多人专门装 18.04 的原因。但在装 Autoware 之前建议先完成三件事确认虚拟机里能联网因为 Autoware 的依赖库非常多需要持续从网上拉取先装好 ROS Melodic 并跑通一个小例子比如roscore和rosrun turtlesim turtlesim_node确认 ROS 环境是好的给虚拟机拍一个干净快照避免后续依赖冲突后无法回滚相机雷达联合标定还需要用到摄像头和雷达的数据如果是用录制好的 rosbag 包来做标定那就只需要环境配置正确。如果你打算连接真实相机还需要把 USB 设备从宿主机连接到虚拟机在 VMware 的“虚拟机 - 可移动设备”里勾选对应设备即可。另外说一句实话像 Autoware 这种重量级框架虚拟机里跑起来确实会比物理机慢尤其是编译阶段catkin build一个工程经常要半小时以上。如果你不是特别需要 Windows 下的其他软件可以考虑在物理机上装双系统。但如果只是学习标定原理和跑跑数据虚拟机完全够用。7. 我个人在实际操作中的几点体会做运维这几年装虚拟机的次数我自己都数不清了从 VMware Workstation 到 Proxmox VE 都折腾过。关于 Ubuntu 18.04 在 VMware 里的安装最后分享几个很碎的体会第一个体会是安装系统这件事宁可前期多花十分钟规划也不要后期花两小时修 bug。镜像版本选对、虚拟硬件配置合理、快照打好这三个动作能在后续所有开发流程里节省大量时间。我自己曾经在装系统时图省事直接用了简易安装模式结果用户名里带了大写字母后面配 ROS 环境时各种路径对不上烦得不行最后干脆重装。第二个体会是遇到命令行报错先把完整报错信息复制下来再去搜。很多人问问题只报“安装失败了”“运行不了”这种信息基本没法排查。比如vmware-install.pl的脚本报错如果你贴出完整日志老手一眼就能看出来是 GCC 版本不匹配如果你只说一句“VMware Tools 装不上”别人也只能和你一起猜。第三个体会是虚拟机不是越多越好装完一个就把它配置到顺手的状态。我见过很多同学电脑里堆了三四个半途而废的虚拟机每个都是装完系统就放那了。如果你决定用 VMware 装 Ubuntu 18.04就认真把它配好至少保证网络、SSH、共享文件夹、快照这四个基础功能是稳定可用的。这些都是之后所有开发工作的地基。地基稳了后面装 ROS、装标定工具才会顺利。最后一个小技巧每次在虚拟机里折腾完一个大软件都重新拍一个快照。比如装完 ROS 后拍一个“ros-installed”装完标定工具后再拍一个“calibration-tool-installed”。这样哪怕后续编译环境被搞乱了你也能回到最近一个可用状态不用从头再走一遍安装流程。这种习惯我觉得比任何安装教程都值钱。