1. 项目概述与准备工作
最近在机器人开发领域,Ubuntu 24.04 LTS(代号Noble Numbat)的发布引起了不少关注。作为一名长期从事ROS开发的工程师,我决定尝试将Ubuntu 24.04与最新的ROS2 Jazzy版本整合到一个便携U盘中,打造一个可以随身携带的开发环境。这种方案特别适合需要在多台设备上工作,或者想要保持开发环境一致的开发者。
1.1 为什么选择U盘安装Ubuntu
传统的虚拟机方案虽然方便,但在性能损耗和硬件访问方面存在明显局限。而双系统安装又不够灵活。将完整系统安装在高速U盘中,既能获得接近原生系统的性能,又能保持极佳的便携性。我选择的是128GB USB3.0 U盘,这个容量足够安装完整系统加上开发工具链。
注意:U盘速度直接影响系统体验,建议选择读取速度至少200MB/s,写入速度100MB/s以上的优质U盘。我使用的是SanDisk Extreme Pro系列,实测表现良好。
1.2 所需材料清单
- Ubuntu 24.04 LTS桌面版ISO镜像(约4GB)
- 容量≥64GB的USB3.0/3.1 U盘(推荐128GB)
- 另一台Windows电脑(用于制作启动盘)
- Rufus工具(最新版本3.22+)
- 稳定的网络连接(用于后续软件安装)
2. 制作Ubuntu启动U盘
2.1 下载系统镜像
首先从Ubuntu官网下载24.04 LTS桌面版镜像。注意选择正确的版本:
code复制https://releases.ubuntu.com/24.04/
下载完成后务必验证SHA256校验和,确保镜像完整无损。在Windows PowerShell中运行:
bash复制Get-FileHash .\ubuntu-24.04-desktop-amd64.iso -Algorithm SHA256
对比官网提供的校验值,确保完全一致。
2.2 使用Rufus制作启动盘
Rufus是目前最可靠的启动盘制作工具之一。下载最新版后按以下步骤操作:
- 插入目标U盘(注意:制作过程会清空所有数据!)
- 在Rufus中选择正确的设备(千万别选错硬盘!)
- 点击"选择"按钮加载下载的ISO镜像
- 分区方案选择"GPT",目标系统选择"UEFI"
- 文件系统保持默认的FAT32
- 簇大小选择默认值即可
关键提示:在"高级选项"中建议勾选"检查设备坏块"和"使用ISO写入模式",这能确保制作过程的可靠性。整个过程大约需要15-30分钟,取决于U盘速度。
2.3 常见问题排查
-
问题1:Rufus提示"ISO镜像不兼容"
- 解决方案:重新下载ISO,确保选择的是AMD64桌面版
-
问题2:制作完成后U盘无法启动
- 检查BIOS设置是否正确(关闭Secure Boot,启用UEFI模式)
- 尝试重新制作,选择不同的分区方案(MBR/GPT交替尝试)
-
问题3:U盘容量显示异常
- 这是正常现象,制作完成后Windows只能识别启动分区
3. 安装Ubuntu到U盘
3.1 BIOS设置与启动
不同品牌电脑进入BIOS的按键不同,常见的有:
- Dell/F2
- HP/ESC → F9
- Lenovo/F12
- ASUS/F2
- Acer/F2
在BIOS中需要调整以下设置:
- 关闭Secure Boot
- 将U盘设为第一启动项
- 保存设置并重启
3.2 安装过程详解
从U盘启动后会进入Ubuntu安装界面,选择"Try or Install Ubuntu"进入实时系统。桌面会出现安装图标,双击开始安装。
关键安装步骤:
- 语言选择:建议英文(后续开发中减少编码问题)
- 键盘布局:根据实际情况选择
- 网络连接:建议跳过,安装完成后再配置
- 安装类型:选择"Something else"手动分区
3.3 分区方案设计
对于128GB U盘,推荐以下分区方案:
| 挂载点 | 类型 | 大小 | 文件系统 | 备注 |
|---|---|---|---|---|
| /boot/efi | EFI | 200MB | FAT32 | 必须 |
| / | 根分区 | 剩余空间 | ext4 | 主系统 |
| swap | 交换空间 | 可选 | swap | 内存<8GB建议设置 |
实际操作步骤:
- 选择U盘设备(通常是/dev/sdb)
- 新建EFI分区:200MB,FAT32,挂载点/boot/efi
- 新建根分区:剩余空间,ext4,挂载点/
- 确认引导加载器安装位置选择U盘设备
经验分享:我曾尝试省略EFI分区导致安装失败。EFI分区是UEFI启动的必要条件,即使很小也必须创建。
3.4 用户设置与时区
- 用户名:建议简短无空格(便于终端操作)
- 密码:牢记此密码,sudo操作需要
- 时区:选择实际所在时区(安装后可调整)
点击"安装"按钮后,整个过程大约需要20-40分钟。安装完成后会提示重启,此时务必拔出U盘再按回车,避免循环进入安装界面。
4. 系统基础配置
4.1 首次启动与设置
重启后从U盘启动(可能需要再次调整BIOS顺序),进入新安装的系统:
- 连接WiFi或有线网络
- 运行系统更新(后续会通过命令行更彻底地更新)
- 检查显示、声音等硬件是否正常工作
4.2 更换国内软件源
默认的官方源在国内访问较慢,更换为清华源能显著提升速度:
bash复制# 备份原源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 使用sed命令快速替换
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
4.3 系统升级与基础工具
进行完整系统升级并安装常用工具:
bash复制# 完整系统升级(耗时较长)
sudo apt full-upgrade -y
# 安装基础开发工具
sudo apt install -y build-essential git curl wget vim tmux
# 安装硬件相关工具
sudo apt install -y usbutils lshw htop neofetch
# 清理无用包
sudo apt autoremove -y
5. ROS2 Jazzy安装与配置
5.1 添加ROS2仓库
ROS2 Jazzy是专为Ubuntu 24.04设计的版本,安装前需要添加官方仓库:
bash复制# 确保已安装add-apt-repository
sudo apt install -y software-properties-common
# 添加ROS2 GPG密钥
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
# 添加清华镜像的ROS2源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# 更新软件包索引
sudo apt update
5.2 安装ROS2桌面版
推荐安装完整桌面版,包含GUI工具和模拟器:
bash复制sudo apt install -y ros-jazzy-desktop
这个安装过程会下载约1.5GB数据,耗时取决于网络速度。安装完成后可以验证:
bash复制# 加载环境变量
source /opt/ros/jazzy/setup.bash
# 测试小海龟示例
ros2 run turtlesim turtlesim_node
在另一个终端运行:
bash复制source /opt/ros/jazzy/setup.bash
ros2 run turtlesim turtle_teleop_key
应该能用方向键控制乌龟移动。
5.3 环境持久化配置
为了方便使用,将ROS2环境变量添加到bashrc:
bash复制echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc
6. 开发环境优化
6.1 安装常用ROS工具
bash复制sudo apt install -y python3-argcomplete \
ros-jazzy-ros-base \
python3-colcon-common-extensions \
ros-dev-tools
6.2 配置工作空间
创建标准ROS2工作空间:
bash复制mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
6.3 性能优化建议
U盘系统需要注意以下几点以获得更好性能:
-
减少swap使用:编辑/etc/sysctl.conf,添加:
code复制vm.swappiness=10 -
使用noatime挂载选项:编辑/etc/fstab,在根分区选项中添加noatime
-
定期清理缓存:
bash复制sudo apt clean sudo journalctl --vacuum-time=1d
7. 常见问题解决方案
7.1 启动问题排查
-
问题:启动时卡在ACPI相关错误
-
解决方案:在GRUB菜单按e编辑启动参数,在linux行末尾添加
acpi=off,测试能否启动。若能启动,永久解决方案是编辑/etc/default/grub:bash复制GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=off" sudo update-grub
-
-
问题:无法识别某些硬件
- 尝试安装通用驱动:
bash复制sudo ubuntu-drivers autoinstall
- 尝试安装通用驱动:
7.2 ROS2特定问题
-
问题:ros2命令找不到
- 确保已执行:
bash复制source /opt/ros/jazzy/setup.bash
- 确保已执行:
-
问题:Gazebo无法启动
- 安装相关依赖:
bash复制sudo apt install -y libgazebo-dev gazebo
- 安装相关依赖:
8. 系统备份与移植
8.1 制作系统镜像
可以使用dd命令将整个U盘备份为镜像文件:
bash复制sudo dd if=/dev/sdX of=ubuntu_ros2.img bs=4M status=progress
警告:确保/dev/sdX是正确的U盘设备,错误的设备选择可能导致数据丢失!
8.2 移植到其他U盘
将镜像写入新U盘:
bash复制sudo dd if=ubuntu_ros2.img of=/dev/sdY bs=4M status=progress
然后需要调整UUID和分区表:
bash复制sudo tune2fs -U random /dev/sdY2
sudo update-grub
经过这样详细的设置,你现在拥有了一个便携的Ubuntu 24.04 + ROS2 Jazzy开发环境。我在实际使用中发现,这个系统在Intel 10代以上CPU的设备上运行流畅,非常适合机器人开发者的移动办公需求。