news 2026/5/14 5:12:04

Win11+Ubuntu 22.04双系统安装保姆级教程:从分区到ROS2环境配置全记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Win11+Ubuntu 22.04双系统安装保姆级教程:从分区到ROS2环境配置全记录

Win11与Ubuntu 22.04双系统全流程配置指南:从分区到ROS2开发环境搭建

当开发者需要在本地机器上同时运行Windows生产力工具和Linux开发环境时,双系统方案往往是最可靠的选择。不同于虚拟机可能存在的性能损耗和容器方案的功能限制,物理机上的双系统能够充分发挥硬件性能,特别适合需要直接调用GPU、USB设备或实时性能要求的机器人开发场景。本指南将完整呈现从分区规划到ROS2环境配置的全过程,涵盖安装过程中的关键决策点以及后续开发效率工具链的搭建。

1. 安装前的关键准备工作

1.1 硬件兼容性检查与BIOS设置

在开始安装前,需要确认几个关键硬件指标:

  • 磁盘空间:建议为Ubuntu分配至少100GB空间,ROS2及其依赖项会占用大量存储
  • 内存容量:8GB为最低要求,16GB以上可流畅运行Gazebo等仿真工具
  • 显卡支持:NVIDIA显卡需特别注意驱动兼容性问题

进入BIOS进行以下设置调整:

  1. 禁用Secure Boot(多数Linux发行版对此支持仍不完善)
  2. 启用UEFI模式(传统Legacy模式已逐渐淘汰)
  3. 调整启动顺序,确保从安装介质启动

提示:不同主板BIOS界面差异较大,可查阅主板手册或厂商支持页面获取具体操作指引

1.2 制作高质量的安装介质

推荐使用Ventoy工具创建多功能启动盘,其优势在于:

  • 单个U盘可存放多个ISO镜像文件
  • 支持直接浏览和选择需要启动的镜像
  • 避免传统工具每次写入都需要重新格式化
# 在现有Linux系统下安装Ventoy的简便方法 wget https://github.com/ventoy/Ventoy/releases/download/v1.0.88/ventoy-1.0.88-linux.tar.gz tar zxvf ventoy-1.0.88-linux.tar.gz cd ventoy-1.0.88 sudo ./Ventoy2Disk.sh -i /dev/sdX # 替换为实际U盘设备

1.3 磁盘分区规划策略

对于500GB SSD的典型配置,建议采用如下分区方案:

挂载点文件系统大小用途说明
/ext450GB系统根目录
/homeext4150GB用户文件存储
swapswap内存1.5倍休眠和内存交换
未分配-300GB保留给Windows使用

注意:若计划使用LVM(逻辑卷管理),可先创建较小物理分区,后期再动态扩展

2. 双系统安装详细流程

2.1 Windows 11先行安装要点

  1. 使用微软官方Media Creation Tool创建安装介质
  2. 安装时选择"自定义安装",删除所有现有分区(确保使用GPT分区表)
  3. 在最后一个分区后留出足够未分配空间(后续供Ubuntu使用)
  4. 完成安装后,运行diskpart检查分区布局:
diskpart list disk select disk 0 list partition

2.2 Ubuntu 22.04安装关键步骤

启动安装介质后,需要特别注意以下界面选项:

  • 键盘布局:保持默认英语(US)布局,避免后续终端操作混乱
  • 网络连接:建议跳过WiFi配置,等安装完成后再设置
  • 安装类型:选择"其他选项"进行手动分区
  • 引导加载程序:确保安装在EFI系统分区(通常为/dev/sda1)

安装完成后立即执行以下命令更新软件源:

sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential cmake git

2.3 双系统引导配置优化

安装rEFInd引导管理器可提供更美观的启动选择界面:

sudo apt install -y refind sudo refind-install

配置默认启动项和超时时间:

sudo nano /boot/efi/EFI/refind/refind.conf

修改以下参数:

timeout 5 default_selection "Microsoft Windows Boot Manager"

3. 开发环境深度配置

3.1 终端环境定制方案

安装并配置Terminator替代默认终端:

sudo apt install -y terminator mkdir -p ~/.config/terminator cat > ~/.config/terminator/config <<EOF [global_config] title_transmit_bg_color = "#d30102" [keybindings] [profiles] [[default]] background_color = "#2c2c2c" cursor_color = "#aaaaaa" foreground_color = "#ffffff" palette = "#2c2c2c:#d30102:#5fad00:#d3a900:#3276ff:#9b59b6:#00a5a5:#c0c0c0:#4c4c4c:#ff0000:#00e700:#e7e700:#3a6bff:#b300b3:#00d7d7:#e4e4e4" [layouts] [[default]] [[[child1]]] type = Terminal parent = window0 [[[window0]]] type = Window parent = "" [plugins] EOF

实用别名和函数添加到.bashrc

echo 'alias roslog="cd ~/.ros/log"' >> ~/.bashrc echo 'function roscreate() { ros2 pkg create --build-type ament_cmake $1 --dependencies rclcpp std_msgs }' >> ~/.bashrc source ~/.bashrc

3.2 VSCode高效配置方案

安装VSCode及ROS开发必备插件:

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/ sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list' sudo apt update sudo apt install -y code

推荐安装的扩展列表:

  • ROS (Microsoft)
  • C/C++ (Microsoft)
  • CMake Tools (Microsoft)
  • Python (Microsoft)
  • XML Tools (Josh Johnson)

配置关键设置(Ctrl+,打开设置):

{ "editor.fontFamily": "'Fira Code', 'Droid Sans Mono', monospace", "editor.fontLigatures": true, "cmake.configureOnOpen": true, "ros.distro": "humble", "C_Cpp.intelliSenseEngine": "Default" }

3.3 浏览器兼容性解决方案

针对ROS相关网站和Web工具的特殊需求:

sudo apt install -y chromium-browser sudo update-alternatives --config x-www-browser # 选择Chromium作为默认浏览器

配置Chromium启动参数解决WebGL问题:

cat > ~/.local/share/applications/chromium.desktop <<EOF [Desktop Entry] Version=1.0 Name=Chromium (WebGL) Exec=chromium-browser --use-gl=desktop --enable-webgl --ignore-gpu-blocklist %U StartupWMClass=Chromium Terminal=false Icon=chromium-browser Type=Application Categories=Network;WebBrowser; EOF

4. ROS2 Humble完整环境搭建

4.1 基础安装与验证

设置软件源并安装核心组件:

sudo apt install -y software-properties-common sudo add-apt-repository universe sudo apt update && sudo apt install -y curl gnupg lsb-release sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null sudo apt update sudo apt install -y ros-humble-desktop

环境变量自动配置:

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

验证安装成功:

ros2 run demo_nodes_cpp talker & ros2 run demo_nodes_py listener

4.2 开发工具链扩展

安装colcon构建系统和常用工具:

sudo apt install -y python3-colcon-common-extensions python3-rosdep2 sudo rosdep init rosdep update

创建工作空间并测试编译:

mkdir -p ~/ros2_ws/src cd ~/ros2_ws colcon build source install/local_setup.bash

4.3 硬件加速配置

对于NVIDIA显卡用户,需配置GPU加速:

sudo apt install -y nvidia-driver-520 libnvidia-gl-520 sudo apt install -y ros-humble-nvidia-utils ros-humble-libg2o

验证GPU支持:

glxinfo | grep "OpenGL renderer" ros2 run rviz2 rviz2 -d /opt/ros/humble/share/rviz/default.rviz

5. 系统优化与故障排查

5.1 性能调优技巧

调整swappiness值减少交换分区使用:

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf sudo sysctl -p

优化文件系统挂载参数(编辑/etc/fstab):

UUID=xxxx-xxxx / ext4 defaults,noatime,discard 0 1

安装preload预加载常用库:

sudo apt install -y preload sudo systemctl enable --now preload

5.2 常见问题解决方案

双系统时间不一致问题

timedatectl set-local-rtc 1 --adjust-system-clock

WiFi连接不稳定处理

sudo sed -i 's/wifi.powersave = 3/wifi.powersave = 2/' /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf systemctl restart NetworkManager

ROS2环境变量冲突处理: 创建独立的开发环境加载脚本~/ros2_init.sh

#!/bin/bash unset ROS_DISTRO source /opt/ros/humble/setup.bash source ~/ros2_ws/install/local_setup.bash export ROS_DOMAIN_ID=42 export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp echo "ROS2 Humble环境已加载"

5.3 备份与恢复策略

使用Timeshift创建系统快照:

sudo apt install -y timeshift sudo timeshift --create --comments "Clean ROS2 Install" --tags O

设置自动定期备份(每周日2点):

sudo crontab -e

添加以下内容:

0 2 * * 0 /usr/bin/timeshift --create --tags W --scripted
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 5:08:07

educoder--网络实验--Wireshark实战:NAT地址转换全流程解析

1. 初识NAT&#xff1a;为什么我们需要地址转换&#xff1f; 想象一下你家的门牌号。小区里每家都有独立门牌&#xff0c;但整个小区对外可能只有一个大门地址。NAT&#xff08;网络地址转换&#xff09;就是互联网世界的"小区管理员"&#xff0c;它让多台设备共享一…

作者头像 李华
网站建设 2026/5/14 5:07:05

如何高效管理Zotero插件:一站式插件市场完整指南

如何高效管理Zotero插件&#xff1a;一站式插件市场完整指南 【免费下载链接】zotero-addons Zotero Add-on Market | Zotero插件市场 | Browsing, installing, and reviewing plugins within Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-addons 还在为…

作者头像 李华
网站建设 2026/5/14 5:04:12

触发器如何在主从架构下进行同步_基于Row格式的Binlog规避触发器

不会。MySQL在ROW格式Binlog下&#xff0c;主库触发器产生的变更不生成独立Binlog事件&#xff0c;从库仅回放行记录快照&#xff0c;跳过触发器执行&#xff1b;若启用STATEMENT/MIXED模式或手动关闭从库只读&#xff0c;才可能意外触发。主库触发器写入会不会被同步到从库不会…

作者头像 李华
网站建设 2026/5/14 5:00:08

高电流电源系统设计:分立与模块方案对比

1. 现代高电流电源系统的设计挑战在当今的通信和计算基础设施中&#xff0c;FPGA、ASIC和微处理器等核心器件对电源系统提出了前所未有的高要求。这些器件的工作电压不断降低&#xff08;常见0.5V-5V范围&#xff09;&#xff0c;而电流需求却持续攀升&#xff0c;单个负载点(P…

作者头像 李华
网站建设 2026/5/14 4:57:06

基于MCP协议与WebDAV构建AI智能体统一数据访问层

1. 项目概述与核心价值最近在折腾个人知识库和自动化工作流时&#xff0c;我又一次被“数据孤岛”问题绊住了脚。手头的信息散落在各种地方&#xff1a;Notion里的项目规划、Obsidian的零散笔记、Google Calendar的日程、甚至是一些本地文件夹里的PDF和图片。想要让这些数据联动…

作者头像 李华