1. 本次环境与最终目标

目标:在保留 Windows 的前提下,重新安装 Ubuntu 22.04 LTS,并配置 ROS 2 Humble、RViz2、Gazebo、NVIDIA 驱动、中文输入法、常用开发工具,最终得到可用于 ROS2/机器人仿真的开发环境。

2. 安装 Ubuntu 22.04 前的准备

2.1 需要准备的东西

一个 16 GB 以上 U 盘(本次为约 64 GB)。

Ubuntu 22.04.5 Desktop amd64 ISO。

Ventoy(也可以使用 Rufus,但本次使用 Ventoy,用来制作启动盘,这里后面会写)。

重要数据备份,尤其是准备调整的 Windows 数据分区。

如果 Windows 启用了 BitLocker/设备加密,提前确认恢复密钥。

2.2 Ventoy U 盘结构:

Ventoy 安装到 U 盘后,Windows 中通常会出现两个分区:一个很小的 VTOYEFI,以及一个几十 GB 的 Ventoy 主分区。

分区

作用

是否放 ISO

VTOYEFI(约 32 MB)

Ventoy 的 UEFI/EFI 启动文件

不要放,也不要删除/格式化

Ventoy 主分区(约 58 GB)

存放 ISO 和普通文件

Ubuntu ISO 放这里

经验  Ubuntu ISO 放在 Ventoy 主分区根目录最省事,例如 H:\ubuntu-22.04.5-desktop-amd64.iso。VTOYEFI 太小,本来也放不下 4 GB 以上的 ISO。

3. Windows 侧清理旧 Ubuntu 与腾出空间

3.1 识别旧 Ubuntu 分区

DiskGenius 中,旧 Ubuntu 最容易识别的是 EXT4 和 Linux Swap。Windows 的 NTFS、MSR、Recovery、Windows EFI/SYSTEM 不要删除。

类型

典型表现

处理建议

EXT4

Ubuntu 的 /、/home 等 Linux 分区

确认后可删除

Linux Swap

交换分区

确认后可删除

EFI/FAT32

可能是 Ubuntu EFI,也可能是 Windows EFI

必须确认归属后再动

NTFS

Windows C/D/E/F 等

不要误删

MSR/Recovery

Windows 保留/恢复分区

不要删除

可以用diskgenius,如图,清理和分区都比较方便,我目前使用还没有出现问题,保险起见也推荐使用电脑自带磁盘管理软件。

3.2 个人踩坑:Ubuntu ESP 删除后进入 grub>

直接删除 Ubuntu 的 ESP 后,UEFI 中仍残留旧 GRUB 启动路径,重启会进入 grub>。启动链路需要恢复。本次最终通过 Windows 内置 bcdboot 重新写入 Windows EFI 启动文件。所以删除的时候不要直接删除,修改启动链路后再执行删除ESP

3.3 使用 DiskGenius 分出新的磁盘空间给ubuntu

本次不是先做传统“碎片整理”,而是直接使用 DiskGenius 的“调整分区大小”。DiskGenius 在缩小时会搬动阻挡新边界的数据。右侧空间选择“保持空闲”,不要建立 NTFS 新分区。

如果用diskgenius:

分完后可以在磁盘管理看到新的空间,我大概分了这么多,读研大概是够了,如果不是相关专业的话没必要分这么大,是相关专业的同学建议分300~400G都可以。慢慢会习惯ubuntu环境的

4. Ventoy 启动 U 盘与 BIOS/UEFI 设置

4.1 博主是惠普电脑,以惠普电脑举例,HP 电脑常用启动按键:

按键

功能

Esc

HP Startup Menu

F9

Boot Device Options(一次性选择启动设备)

F10

BIOS Setup

F2

硬件诊断(不是 BIOS)

别的电脑可以自己查一下,要么去问豆包酱或者拆特鸡皮提老师,我的流程:开机连续按 Esc → F9 → 选择硬盘启动(UEFI)

4.2 Secure Boot 报错 0x1A

如果从 Ventoy 启动出现 “Verification failed: (0x1A) Security Violation”,本质上是 Secure Boot 对 Ventoy 启动文件的签名验证失败。

最省事方案:BIOS 中保持 UEFI,关闭 Secure Boot;不要为了安装 Ubuntu 去开启 Legacy/CSM。HP 某些机型保存后还会要求输入屏幕确认码,必须完成确认,否则设置可能回滚。

4.3 Ventoy Normal mode 与 grub2 mode

Ventoy 选中 Ubuntu ISO 后会出现 Boot in normal mode / Boot in grub2 mode。优先 Normal mode;若出现 unknown filesystem、alloc magic is broken 等错误,再尝试 grub2 mode 或重做 Ventoy U 盘。

5. Ubuntu 22.04 安装与手动分区

这里没什么太要注意的,跟着流程走就行

5.1 Wi-Fi 页面卡死怎么办

直接在安装过程中联 Wi-Fi 容易卡。安装 Ubuntu 不强制联网,若网络页面卡住,可以重启安装器,在网络页直接选择 “I don't want to connect to a Wi-Fi network right now”,先离线安装,进系统后再联网更新。

5.2 手动分区时先认清“哪块 free space”

本次安装界面同时能看到 Ventoy U 盘、Windows 系统盘、1 TB 数据/Ubuntu 盘。真正给 Ubuntu 的空闲空间位于 1 TB NVMe 下,并显示约 387973 MB(这个是我的数据,因为我给的磁盘空间大约350G,可以计算出来)

从这个图可以看出来,我已经安装系统不止一次了,有点乱七八糟,所以要看好哪个磁盘,多大空间,是给ubuntu的。

5.3 推荐的四分区方案

如果希望 Ubuntu 的系统与个人数据分开管理,可以采用 EFI + swap + / + /home。对于约 360~380 GB 的 Ubuntu 空间,本次建议如下:

分区

建议大小

格式/用途

挂载点

EFI

1 GB(1024 MB)

FAT32 / EFI System Partition

/boot/efi

swap

16 GB

swap area

根分区

150~180 GB(推荐 180 GB)

EXT4;系统、apt、/usr、/var、ROS 等

/

home

剩余全部

EXT4;文档、代码、下载、个人配置

/home

理解方式:根分区 “/” 最接近 Windows 的 C 盘;/home 更像 C:\Users\用户名。开发机根分区不要给太小,因为 ROS、Docker、Conda、Gazebo、/var 日志等都会吃根分区。

5.4 用户名和主机名

Your name、Your computer's name、Pick a username 可以都写同一个短名称,例如 elysia。用户名会决定家目录,例如 /home/elysia。主机名如果以后需要 SSH/ROS 多机通信,建议稍作区分,例如 robot-hp。

6. Ubuntu 装好后的基础配置

6.1 先更新系统

sudo apt update
sudo apt upgrade -y

尤其在安装 ROS 2 Humble 之前,先把 Ubuntu 22.04 的 systemd/udev 等系统组件更新到当前可用版本。

6.2 NVIDIA 驱动是否真正生效

nvidia-smi

能看到 GPU 型号、Driver Version、显存和进程,说明驱动已安装并加载。比如说可能是这样显示就是没啥问题

6.3 中文输入法 Fcitx5

sudo apt install -y fcitx5 fcitx5-chinese-addons fcitx5-config-qt im-config
im-config

在 im-config 图形界面中选择 fcitx5,注销或重启。随后运行:

fcitx5-configtool

添加 Pinyin。若搜不到,取消 “Only Show Current Language”。常用中英文切换键为 Ctrl + Space。

6.4 Ubuntu 访问 Windows 文件

Ubuntu 22.04 可以直接挂载 NTFS,因此文件管理器左侧会出现 Windows 的多个 SSD/分区,可以读取和写入普通文档、代码、图片等。但这不代表 Linux 能原生运行 Windows 的 .exe;WPS、Chrome 等优先安装 Linux 版本,Windows 游戏需 Proton/Wine 等兼容层。

7. 软件源与常见 apt 故障修复

7.1 amd64 要用 ubuntu,不是 ubuntu-ports

我配置的时候软件源一度被配置成清华的 ubuntu-ports,导致 amd64 包大量 404。ubuntu-ports 主要面向 ARM、RISC-V、PowerPC 等;普通 x86_64/amd64 应使用 /ubuntu/。

确认架构

dpkg --print-architecture

本次返回 amd64。Ubuntu 22.04 的 /etc/apt/sources.list 建议最终保持为:

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

7.2 检查源是否干净

grep -R "ubuntu-ports" /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null
grep -vE '^\s*#|^\s*$' /etc/apt/sources.list
sudo apt update

第一条对 amd64 机器最好没有输出;apt update 最后不要再出现 404 或 Some index files failed to download。

8. 常用软件安装(Chrome / 微信 / Clash / Terminator)

8.1 .deb 安装统一用 apt

我把手动下载的 Linux 安装包集中放到了 ~/Software;该目录只是“保存安装包”,软件本体仍会按 deb 包规则安装到 /opt、/usr/bin、/usr/share 等系统路径。

mkdir -p ~/Software
mv ~/Downloads/*.deb ~/Software/
cd ~/Software
sudo apt install ./软件名.deb

相比 sudo dpkg -i,apt install ./xxx.deb 会自动处理依赖,更省心。

8.2 Google 慢、百度快:通常不是 Chrome 的锅

如果百度很快,而 Google 登录、Google 搜索、Chrome Web Store 很慢,通常是 Google 相关网络链路/代理问题,和清华 Ubuntu apt 镜像无关。Clash 在 Ubuntu 上配置好系统代理后,Chrome 默认会跟随系统代理。

curl -I --max-time 10 https://www.baidu.com
curl -I --max-time 10 https://www.google.com

8.3 Terminator 安装与依赖故障

sudo apt install terminator -y

若提示 python3-psutil 不可安装,检查:

apt-cache policy python3-psutil terminator
apt-mark showhold
grep -vE '^\s*#|^\s*$' /etc/apt/sources.list

9. ROS 2 Humble 安装(含 RViz2)

版本对应  ROS 2 Humble 的 Tier 1 Ubuntu 平台就是 Ubuntu 22.04 Jammy(amd64/arm64),因此 22.04 + Humble 是稳定、匹配的组合。

9.1 安装前更新系统和基础工具

sudo apt update
sudo apt upgrade -y
sudo apt install -y software-properties-common curl gnupg2
sudo add-apt-repository -y universe

9.2 添加 ROS 2 GPG Key 与清华 ROS2 镜像

如果当前已能访问 GitHub,可按 ROS/TUNA 的标准方式获取 ros.key:

curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key   | sudo gpg --dearmor -o /usr/share/keyrings/ros-archive-keyring.gpg

然后为 Ubuntu 22.04(jammy)添加清华 ROS2 镜像:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update

 

9.3 安装 Desktop 版(包含 RViz2)

sudo apt install -y ros-humble-desktop
sudo apt install -y ros-dev-tools python3-colcon-common-extensions python3-rosdep python3-vcstool

ros-humble-desktop 包含 ROS2 常用桌面工具、RViz2、demo 等;如果需要 GUI 和机器人可视化,不建议只装 ros-base。

9.4 source 是什么,为什么安装完 rviz2 还会 “command not found”

安装包存在并不代表当前 shell 已经知道 ROS2 的可执行文件、库和环境变量在哪里。source /opt/ros/humble/setup.bash 会把 Humble 环境加载到当前终端。

source /opt/ros/humble/setup.bash
rviz2

为了以后每次打开 Terminator 都自动加载 ROS2,把 source 写入 ~/.bashrc:

echo 'source /opt/ros/humble/setup.bash' >> ~/.bashrc
source ~/.bashrc

注意  echo ... >> ~/.bashrc 只执行一次。重复执行会在 .bashrc 中堆出很多相同的 source 行。第二句 source ~/.bashrc 只是让“当前已经打开的终端”立即重新读取配置。

9.5 验证 ROS2

which ros2
which rviz2
ros2 --help
rviz2

正常情况下 which rviz2 会指向 /opt/ros/humble/bin/rviz2。再用 talker/listener 验证 DDS 通信:

# 终端 1
ros2 run demo_nodes_cpp talker

# 终端 2
ros2 run demo_nodes_py listener

若一个持续 Publishing、另一个持续 I heard,ROS2 基础通信链路正常。

10. Gazebo 与机器人开发常用组件

10.1 Gazebo Classic

Ubuntu 22.04 + ROS2 Humble 常见的是 Gazebo Classic 11。若尚未安装 ROS-Gazebo 集成包,可以:

sudo apt install -y ros-humble-gazebo-ros-pkgs

检查版本

gazebo --version

10.2 机器人导航/点云相关建议组件

sudo apt install -y   ros-humble-navigation2   ros-humble-nav2-bringup   ros-humble-slam-toolbox   ros-humble-tf2-tools   ros-humble-pcl-ros   ros-humble-pointcloud-to-laserscan

这些包适合后续做 Nav2、TF 调试、PointCloud2/激光雷达、局部规划与可视化。

就到这里,整体操作了很多次之后就会非常的心应手,希望大家分够空间,尽量少重装吧,另外22.04比20.04丝滑好多,要不是实验室传承都是20.04,我早就常驻升级了....

有问题的话多问拆特级皮提老师,斋米耐老师,豆包老师,b站跟着视频多走走也行,就是慢点

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐