简介:面向机器人开发与ROS学习者的Ubuntu系统安装图文教程,以PDF格式提供,共1个文件,压缩包约13.36MB。内容基于ROS机器人学习课程第2章整理,聚焦2.3.2 Ubuntu安装环节,从下载Ubuntu官方镜像开始,完整演示VMware虚拟机中安装Ubuntu 64位系统的全过程。教程不仅按步骤讲解,还专门强调了多个初学者易错点:新建虚拟机时必须选择Ubuntu 64位版本,否则后续UEFI和分区设置将无法正常进行;虚拟机名称避免使用中文字符,防止兼容性问题;建议将虚拟机文件存放在专用文件夹而非系统盘根目录或桌面;硬盘容量至少分配25GB,并尽量预留更大空间;固件类型选择UEFI以配合后期分区。每一步都配有清晰截图和标注,便于读者对照操作。这些内容能显著降低环境搭建中的报错概率,为后续ROS安装与机器人开发打好基础。已有274人学习,适合零基础学习者循序渐进完成Ubuntu环境配置,顺利进入ROS机器人开发实践。
1. 为什么ROS机器人的第一道坎是Ubuntu系统安装:版本选错,后面全是返工
做ROS机器人开发,第一道坎往往不是写代码,而是把Ubuntu系统装对。我见过不少初学者在Windows上装了虚拟机、配好了环境,结果一跑激光雷达和深度相机就露馅,不是USB识别不到,就是图形界面卡成幻灯片。更常见的情况是随便装了一个最新版Ubuntu,兴致勃勃去装ROS,发现版本根本不匹配,整个开发环境推倒重来。这篇教程就把ROS机器人开发之前最关键的Ubuntu系统安装讲透:从版本怎么选、分区怎么分,到U盘启动、装后必做的三件事,以及我踩过的几个大坑。跟着走一遍,能少走很多弯路。
2. 安装前把版本和分区定死:ROS版本配对、镜像写入与磁盘规划
2.1 Ubuntu与ROS版本配对关系:为什么建议盯准LTS版本
ROS机器人开发选的Ubuntu版本,不是越新越好,而是要看ROS官方对哪个版本提供了长期支持。ROS 1最后的一个长期支持版本是Noetic,它对应的系统是Ubuntu 20.04;ROS 2长期支持的版本是Humble,对应的系统是Ubuntu 22.04。这两个组合是目前最常用、社区资料最多的搭配,前人的坑基本都填平了。
| Ubuntu版本 | 配套ROS版本 | 适用场景 |
|---|---|---|
| Ubuntu 20.04 LTS | ROS 1 Noetic / ROS 2 Foxy | 学习ROS 1、维护老项目、跑经典算法 |
| Ubuntu 22.04 LTS | ROS 2 Humble | 新项目、工业级应用、长期维护 |
| Ubuntu 24.04 LTS | ROS 2 Jazzy | 尝鲜可用,资料相对少,不推荐入门 |
不建议用非LTS版,比如Ubuntu 21.10、23.04这类。它们生命周期只有九个月,装完ROS刚上手,系统停止维护了,apt源也会被官方迁移到旧版本归档,装新包经常报404。对ROS机器人这种需要长期调试环境的方向,LTS是最省心的选择,系统支持周期长,ROS版本对应关系也清楚。
另一个实际考虑是电脑硬件。如果机器比较老,比如只有8GB内存加机械硬盘,跑Ubuntu 22.04桌面版会明显吃力,建议选Ubuntu 20.04,桌面负载更轻。如果是近几年的电脑,16GB内存起步,那就直接上22.04,搭配ROS 2 Humble,后续不用再折腾一次系统迁移。
2.2 制作启动U盘:镜像下载、校验与写入工具选择
确定Ubuntu版本后,去Ubuntu官网下载对应版本的ISO镜像。下载的时候注意区分桌面版和服务器版,ROS开发要用桌面版。ISO文件一般有4到5GB,下载完成后别急着写盘,先做一步校验,用SHA256校验和确认下载的文件完完整整,没有在传输中途损坏。校验方法在Windows下用PowerShell,在Linux下用sha256sum命令。
# Linux或macOS下校验ISO镜像,ubuntu-22.04.x-desktop-amd64.iso换成实际文件名 sha256sum ubuntu-22.04.x-desktop-amd64.iso # 把输出的哈希值和官网给出的SHA256校验和逐字符对比 # 一致说明镜像完整,可以写盘;不一致说明下载损坏,需要重新下载Windows用户可以在PowerShell里执行Get-FileHash 镜像文件名来计算哈希值。这一步很多人嫌麻烦直接跳过,结果装到一半报错,其实是镜像损坏导致的。校验没毛病再进入写盘环节。写盘工具我用过很多,初学者推荐用Rufus,图形界面,三步搞定;在Linux或者macOS下,Etcher也是个跨平台的稳妥选项。
写入模式要选对:在Rufus里分区方案选GPT,目标系统选UEFI(非CSM),文件系统保持FAT32默认。如果选错成MBR和Legacy BIOS模式,在老主板上有概率能启动,在新电脑上经常直接卡在引导阶段。写入过程会把U盘完全格式化,U盘里有资料务必先备份,这一步没有后悔药。
2.3 硬盘分区:单系统与双系统的分区方案哪个省心
装Ubuntu的时候,分区逻辑要先想清楚。ROS机器人开发两种常见场景:一是在自己的电脑上装双系统,Windows保留偶尔用;二是一台机器完全交给Ubuntu。无论是哪种,分区方案都要遵循一个原则:系统、数据、交换分区尽量分开,方便以后重装系统不丢工作区。
| 挂载点 | 分区类型 | 大小建议 | 是否必要 |
|---|---|---|---|
| /boot/efi | EFI系统分区 | 至少512MB | 必要,UEFI引导要用 |
| / | 主分区 | 40-60GB | 必要,装系统和ROS包 |
| /home | 主分区 | 剩余空间全部 | 强烈建议,代码和数据集都在这 |
| swap | 交换分区 | 电脑内存小于16GB时给8GB | 可选,内存大可以不要 |
对于双系统,先给Ubuntu预留出空闲分区,注意不要在Windows的磁盘管理里删分区,而是用Ubuntu安装器里的“手动分区”处理。我习惯把根分区给50GB,/home给剩余所有空间,这样以后哪怕系统崩溃要重装,只要挂载点选对,/home里的ROS工作空间、数据集、下载的源码全部还在。
还需要确认电脑是UEFI引导还是传统BIOS引导。2015年以后出厂的电脑基本都是UEFI,安装Ubuntu时引导方式要和Windows保持一致。如果Windows是UEFI模式装的,Ubuntu也必须在UEFI模式下安装,共享同一个EFI分区。两种模式混着来,会出现装完Ubuntu开机直接进Windows、完全没有引导菜单的情况。
3. 从U盘启动到进入桌面:Ubuntu安装完整流程与关键选项
3.1 用U盘启动:BIOS设置和UEFI模式这关怎么过
镜像写入U盘后,把U盘插到电脑上,重启之前先确认启动顺序。开机时按F2或F12进入BIOS设置,不同品牌主板按键不同,通常是F2、F12、Del三选一。进入BIOS后,找到Boot选项,把U盘调到第一启动项。两个容易卡住的细节:一个是Secure Boot建议先关掉,它会拦截未经签名的Ubuntu引导程序,导致U盘启动失败;另一个是如果BIOS里有UEFI和Legacy两种模式选项,优先选UEFI,除非你的电脑确实很老。
实际操作中,很多人卡在“明明U盘插上了,启动项里找不到U盘”。这种情况先检查U盘是USB 2.0还是3.0口,个别主板对USB 3.0口的U盘启动支持不完善,换个USB 2.0口试试。另外,之前用软碟通之类工具制作的U盘,可能会被主板识别成两个分区,启动项里出现两个U盘的选项,选带UEFI前缀的那个,不带前缀的是Legacy模式入口。
3.2 安装器里的关键选项:联网更新、第三方驱动与擦除磁盘的选择
U盘引导成功后,会进入GRUB菜单,选择第一项“Try or Install Ubuntu”。进入安装界面后,语言选中文简体,键盘布局默认English或Chinese都行,这不会影响系统编码。接下来有几个选项是ROS开发者必须注意的:
第一个是“正常安装”和“最小安装”的选择。磁盘空间不紧张就直接选正常安装,自带的LibreOffice、媒体播放器都装上,省得后面用的时候再补。第二个是“安装Ubuntu时下载更新”和“为图形或无线硬件安装第三方软件”。联网良好的情况下两个都勾上,第三方软件选项特别重要,它默认会包含显卡驱动,能避免装完系统后开机黑屏或分辨率低的问题。
第三个也是最关键的分区确认步骤。选“清除整个磁盘并安装Ubuntu”只适合单系统用户。双系统用户必须选“其他选项”,在手动分区界面里找到刚才预留的空闲分区,新建分区。挂载点设置按照上一章的分区方案来,注意/boot/efi不能漏,没有它系统装完无法引导。这步操作完会提示将要在分区上写入改动,确认之前仔细看一眼分区表,确认无误再点继续。
3.3 首次登录后的环境确认:网卡、显卡、系统版本三件事先查
安装完成重启后,拔掉U盘,进入Ubuntu桌面。但先别急着装ROS,先用几条命令确认硬件环境有没有正常工作。很多ROS机器人的坑根源都在系统层面没准备好,比如网卡驱动没加载导致无法联网,或者显卡驱动没生效导致Gazebo仿真卡死。
# 查看有线/无线网卡识别情况,确认网络接口已加载 ip addr # 查看显卡型号和当前使用的驱动 lspci -k | grep -A 2 -i vga # 查看系统版本,确认Ubuntu版本号符合预期 lsb_release -aip addr输出里能看到网络接口,正常是类似enp开头的有线网卡和wl开头的无线网卡。如果只有一个lo回环接口,多半是网卡驱动没装上,这种情况在部分小众无线网卡上比较常见,解决思路是先连有线网,再更新系统内核或单独安装网卡驱动。lspci查显卡,能确认系统用的是核显还是独显,以及内核有没有加载对应的驱动模块。lsb_release -a核对版本号是不是你想要的LTS版本,之前有人下载镜像时点错了版本,装完才发现是Ubuntu 22.10这种旧版本,白忙一场。
4. 安装后的必踩坑与排查:换源、显卡驱动和双系统引导恢复
4.1 apt更新慢到怀疑人生:换国内镜像源
装完Ubuntu后第一件事就是更新系统,但默认的apt源是Ubuntu官方服务器,在国内访问速度慢得离谱。现象就是你执行sudo apt update,卡在读取软件包列表界面,等了十几分钟还没动静,有些包下载速度只有几十KB每秒。这是所有国内ROS开发者都绕不开的一道坎,解决办法是把手动配的镜像源替换成国内源。
# 备份原始源文件,出问题可以随时还原 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 用sed把官方域名替换为国内镜像站域名(按你的网络实际访问速度选) sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g; s/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list # 更新索引并验证换源是否生效 sudo apt update这套操作的核心就是用sed做文本替换,把Ubuntu官方源地址指到国内镜像站。代码里我写的是某高校镜像站域名,如果你的网络到某个云厂商的镜像站更快,把域名换成那个站点的就行。注意Ubuntu 20.04用的还是/etc/apt/sources.list这个文件;到了Ubuntu 22.04,源配置换成了/etc/apt/sources.list.d/ubuntu.sources这个新格式,文件内容结构不同,直接用sed替换会不生效。
处理22.04的源有两种方式:一种是直接编辑ubuntu.sources文件,把里面的http://archive.ubuntu.com/ubuntu替换成镜像站地址;另一种是把下载好的源配置模板放到/etc/apt/sources.list.d/目录下。换完源后执行sudo apt update,如果输出显示“Hit”而不是“Ign”或“404”,说明连接正常,更新速度应该几秒钟就能完成。更新系统后再装ROS,包下载速度就很舒服了。
4.2 开机黑屏或分辨率只有800x600:显卡驱动默认没起作用
Ubuntu装完第一次重启,如果没有在安装时勾选“为图形或无线硬件安装第三方软件”,可能出现两种情况:一种是开机停留在黑屏界面进不了桌面;另一种是能进桌面但分辨率只有可怜的800x600,鼠标卡顿。这是独立显卡的核显驱动和系统自带的默认驱动不匹配导致的。
先说黑屏的临时解法。开机进GRUB菜单后,按e进入编辑模式,找到quiet splash这一行,在末尾加上nomodeset参数,然后按Ctrl+X启动。这个参数让内核跳过显卡模式设置,用基本显示模式引导,能让你先进系统。但这不是长久之计,每次启动都要手动改太麻烦。
进桌面后的正解是去“软件和更新”工具里,切换到“附加驱动”选项卡,系统会自动检测显卡可用的专有驱动。选择一个经过验证的版本,点应用更改,等待安装完成后重启。注意不要自己跑到显卡厂商官网下载最新版闭源驱动手动安装,那个跟系统内核模块冲突的概率很大,装完轻则开不了图形界面,重则连系统都进不去。还要记住,装显卡驱动之前先确认内核版本,Ubuntu自动更新内核后,手动安装的驱动模块需要重新编译,这也是很多人为什么过一阵子突然开不了机的隐藏原因。
4.3 重启直接进Windows,GRUB菜单消失了怎么办
双系统最常见的翻车现场:Ubuntu装完,重启后直接进入了Windows,连GRUB选择菜单都没看到。现象就是仿佛Ubuntu从来没装过一样,开机流程和装系统前一模一样。原因是Windows的引导程序抢占了EFI启动项,或者安装Ubuntu时引导安装到了错误的EFI分区。
排查思路先确认Ubuntu到底装进了哪个分区。进Windows后用磁盘管理查看,能识别出Linux分区就说明系统在。接下来在启动设置里查看引导顺序,Windows Boot Manager排在了Ubuntu引导项前面,把它挪到后面,重启后GRUB菜单就会回来。如果EFI分区里根本找不到Ubuntu的引导文件,直接用安装U盘里的启动修复工具修复引导。
# 用Ubuntu安装U盘启动,选择“试用Ubuntu”进入临时系统 # 挂载根分区和EFI分区 sudo mount /dev/sda2 /mnt sudo mount /dev/sda1 /mnt/boot/efi # 用grub-install重新安装GRUB到EFI分区 sudo grub-install --root-directory=/mnt /dev/sda # 重新生成GRUB菜单配置,让Windows和Ubuntu都在菜单里 sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt update-grub这套修复操作的核心逻辑是:先把Ubuntu根分区挂载到一个临时目录,用grub-install把GRUB引导程序重新写入EFI分区,再在chroot环境里执行update-grub让系统重新扫描磁盘上的所有操作系统。命令中的/dev/sda1和/dev/sda2要按你的实际分区替换,不确定的话用lsblk查看。修复完成后重启,GRUB菜单里会出现Ubuntu和Windows两个选项,这个坑基本就填平了。
5. 装完别急着装ROS:先做环境验证和系统快照,后悔药留好
跳过环境验证直接开装ROS是不少人的习惯,但等装到一半报错再回头查系统问题就晚了。我建议花十分钟把系统状态摸一遍,顺便做一份系统快照,后面就算把ROS折腾坏了也能一键还原。先用系统监视器或者命令行确认内存和磁盘空间,ROS本体加上依赖包大约需要15GB空间,/home如果小于30GB,装完会非常局促。
# 查看内存和交换分区使用情况 free -h # 查看根分区和home分区的剩余空间 df -h / # 用timeshift创建第一份系统快照,保存在外接硬盘或另一分区 sudo timeshift --create --comments "ubuntu-installed-clean" --tags Dfree -h显示内存总量和可用量,低于4GB跑ROS 2会很吃力,建议加内存或装轻量桌面。df -h确认挂载点空间足够,根分区建议剩余不少于20GB。最后一条timeshift命令会在系统当前状态创建一份快照,--comments参数给快照起个名字方便识别,--tags D表示归类为系统初始状态。这份快照就是你的后悔药,后面装ROS装崩了,或是不小心把系统搞挂了,在GRUB菜单里选择timeshift恢复就能回到这个干净的初始状态。
我自己的教训是,第一次装完Ubuntu后嫌弃系统发烫,去折腾了一个非官方电源管理工具,结果把显卡驱动搞坏了,开机直接卡死在登录界面。当时没做快照,只能重装系统,重新配置环境和下载依赖又花了一整天。后来每次系统只要处于“刚装好、能正常用”的状态,我必定先做一个快照再做别的改动。这个习惯让我后期省了无数时间,也推荐你保留。
验证做完、快照做好,系统的底子就算真正打牢了。这时候再去装ROS,无论是选Noetic还是Humble,也不管用apt还是源码编译,出了问题都知道不会是系统层面的锅,排查起来心里有底。希望这份教程能帮你把Ubuntu环境一次装对,把精力留给后面的ROS学习本身。
本文还有配套的精品资源,点击获取