很多人第一次装 Ubuntu 双系统,不是死在安装步骤上,而是死在准备工作没做到位。比如我接过好几台笔记本,都是卡在 U 盘启动后直接黑屏、或者装完重启进不去系统、再或者时间老差 8 小时。这些问题其实都不难解决,但如果你没提前搞清楚里面的机制,就会觉得特别玄学。这篇教程我会把 Ubuntu 22.04 LTS 桌面版和 Windows 组成双系统的完整流程讲透,重点是每一步背后的“为什么”,而不是让你机械地照着点下一步。无论你是想逃离 Windows 的捆绑,还是为了 ROS、深度学习、开源开发环境来装 Linux,这篇都适用。
1. 装双系统前的思路:先理解这套方案的价值和边界
1.1 双系统和虚拟机、WSL 到底选哪个
很多新手问的第一个问题就是:我有 VMware,也有 WSL(Windows 自带的 Linux 子系统),为什么还要折腾双系统?
先说结论:如果你只是想体验 Linux 命令、跑点轻量脚本,WSL 更省事。如果你想在 Linux 里做 GPU 计算、跑 ROS、做嵌入式交叉编译、或者长期作为主力开发环境,那真机上的双系统体验是虚拟机替代不了的。原因有三:一是硬件直通,GPU 计算和 USB 设备、串口设备的性能损耗最小;二是 Linux 直接管理整个磁盘和内核模块,很多底层开发场景必须这样;三是内存和 CPU 不再被宿主系统切走一半,跑大型编译任务时差距很明显。
双系统的代价就是“同一时间只能用一个系统”,切换需要重启。但它的稳定性、性能和“可用可用可退”的容错性,让它依然是很多从业者的首选方案。我这篇教程默认你是想长期用 Ubuntu 干活,而不是装完看一眼就删,那分区和引导配置就必须认真对待。
1.2 为什么锁定了 22.04 LTS,而不是 24.04 或 18.04
做技术选型时,最忌讳“追新”。Ubuntu 22.04 LTS 是 2022 年发布的长期支持版本,官方支持到 2027 年,而 24.04 LTS 虽然已经发布,但配套生态还在磨合期。不少第三方软件源、驱动、ROS 发行版(比如 ROS 2 Humble)对 22.04 的适配更成熟。对生产环境、学习环境和科研场景,22.04 是当前兼容性最稳的选择。
我的实际体验是:22.04 的内核是 5.15/5.19 系,对 Intel 12 代、13 代 CPU 和主流笔记本硬件的支持已经很完善,安装过程基本不会遇到“找不到网卡”或“屏幕驱动异常”这种老问题。如果你手头是极新的硬件平台,比如 14 代 CPU 或 RTX 40 系显卡,装完后再升级到 HWE 内核(硬件启用栈)就行,这个后面我会讲。
1.3 双系统的三种装法,各自有什么坑
常见的双系统安装路径有三条:
- 在 Windows 里直接双击 ISO 里的 setup.exe 安装:这是最简单的方式,Ubuntu 的 Wubi 安装逻辑会自动处理引导和分区,但这种方式生成的系统性能有损耗,文件系统嵌套在 Windows 里,容易出权限问题,不建议作为主力环境。
- 用 U 盘启动安装器,选择“与 Windows 共存”自动分区:安装器会自己压缩 Windows 分区、腾出空间。对新手友好,但分区策略不可控,装完后
/home空间可能不够用。 - 用 U 盘启动安装器,手动分区:这是这篇教程采用的方式。你完全掌握磁盘布局,可以预留数据盘、单独挂载
/home,后续重装系统时个人文件不丢。
我强烈建议所有人学会手动分区,即便你这次想偷懒用自动模式,也至少要知道自动分区帮你做了什么。Linux 的分区理念和 Windows 的 C/D 盘完全不同,理解了这套逻辑,后面出任何问题都能自己排查。
2. 动手前需要准备好的材料与避坑前置配置
2.1 检查硬件和磁盘空间的三个前提条件
安装前你需要确认三件事:
第一,电脑至少有 60GB 以上的空闲磁盘空间。这个“空闲”指的是 Windows 磁盘管理里显示的未分配空间,或者是你可以从某个分区里压缩出来的空间。注意,不是看“剩余可用空间”,比如 D 盘还剩 100GB,但你正在使用它,那就要在 Windows 里先做好数据备份再压缩卷。我建议专门为 Ubuntu 划出至少 100GB,如果要做深度学习数据集的存取,200GB 以上更从容。
第二,确认你的电脑是 UEFI 引导还是 Legacy BIOS 引导。Win 8 之后的笔记本基本都是 UEFI,但部分老台式机或改装机还是传统 BIOS。这个信息决定了分区表格式用 GPT 还是 MBR,以及启动 U 盘怎么做。在 Windows 下按 Win+R 输入msinfo32,查看“BIOS 模式”一栏,显示“UEFI”就按 UEFI 流程来。
第三,备份 Windows 的重要数据。虽然双系统安装很少破坏 Windows 分区,但涉及到分区调整、引导文件修改,谁都没法保证万无一失。U 盘里放一个 WinPE 或者 Windows 安装盘镜像备用,是对自己负责的做法。
2.2 下载 Ubuntu 22.04 LTS 镜像:官网与国内镜像站的取舍
下载页面在 Ubuntu 官网,文件名类似ubuntu-22.04.4-desktop-amd64.iso,大小 4.7GB 左右。这里有个容易被忽略的点:官网下载走的是国际带宽,很多时候只有几百 KB/s,拷 U 盘都够你等一壶茶。国内用户建议直接用镜像站下载,速度快得多,而且镜像站的校验值能和官网对上。
我常用的是清华 TUNA 镜像站和阿里云镜像站,路径一般在ubuntu-releases/22.04/目录下,下载ubuntu-22.04.x-desktop-amd64.iso。下载完最好用sha256sum(Windows 下可以用 CertUtil)校验一下 SHA256 值,和官网的 checksum 文件比对,防止镜像损坏导致安装中途报错。
这里要给你一个额外的建议:装好之后,系统更新源也要换成国内镜像,否则后面apt install装软件会慢到怀疑人生。这个我放在第 4 部分详细说。
2.3 用 Rufus 制作启动 U 盘的正确姿势
Windows 下制作 Ubuntu 启动盘,我最推荐 Rufus,开源、小巧、速率快。下载一个绿色版,插上 8GB 以上的 U 盘,打开 Rufus 后按下面的参数选:
- 设备:选择你的 U 盘
- 引导类型选择:你下载的 ISO 文件
- 分区类型:GPT
- 目标系统:UEFI(非 CSM)
- 文件系统:FAT32
这里最容易踩的坑是分区类型选错。如果你的电脑是 UEFI 引导,却选了 MBR 分区方案,U 盘启动时会直接报错“No bootable device”或者干脆在启动菜单里不出现。选 GPT + UEFI 是现在绝大多数笔记本的标准配置。
用 Rufus 写入时,如果 U 盘里之前有重要数据,记得先备份。写入过程会格式化 U 盘,Rufus 也会有明确提示。
除了 Rufus,也可以考虑 Ventoy。它的思路是把 U 盘变成一个多系统启动管理器,直接把 ISO 文件拖进 U 盘就能启动,不挑 ISO 格式。如果你需要同时维护多个 Linux 发行版的安装盘,Ventoy 更方便。但 Ventoy 的兼容性偶尔会有问题,在实际装机时 Rufus 更稳。
2.4 进 BIOS/UEFI 要改的几个选项
开机时根据主板品牌按 Del/F2/F10/F12 进 BIOS 设置,不同品牌键位不同,但核心要动的选项基本一致。
- 关闭 Secure Boot(安全启动)。这是最关键的设置。虽然 Ubuntu 官方镜像支持在开启 Secure Boot 的情况下安装,但后续安装 N 卡闭源驱动、某些第三方内核模块时会遇到签名问题,导致模块加载失败。装系统时直接关掉,能省掉一堆麻烦。
- 关闭 Fast Boot(快速启动)。快速启动会导致 Windows 关机时把硬件状态保存到休眠文件里,下次开机时 U 盘设备可能无法正常初始化,出现“插了 U 盘但启动菜单里找不到”的情况。
- 修改 U 盘启动优先顺序。进入 Boot 选项,把 U 盘(带有 UEFI 前缀的条目,比如
UEFI: USB DISK 2.0)调到第一位。注意不要选成不带 UEFI 前缀的项,那个是 Legacy 引导方式,会和 GPT 分区表冲突。
这些配置改完后保存并退出,电脑会自动重启并尝试从 U 盘启动。
3. 正式安装:从启动 U 盘到完成分区的全流程记录
3.1 启动后的第一个界面该怎么选
U 盘启动后会看到 GRUB 引导菜单,第一项是“Try or Install Ubuntu”,第二项是“Ubuntu (safe graphics)”。一般情况下直接回车选第一项。如果你的电脑启动后黑屏或者卡在 Logo,那很可能是显卡驱动问题,此时选第二项“safe graphics”模式进入,能绕开显卡初始化故障。
进入桌面后,你会看到一个试用桌面。这里建议先不要急着点“Install Ubuntu”,先打开“设置”里的“Wi-Fi”确认网络能连通,如果用的是有线,那就直接跳过。Ubuntu 安装过程中会下载一些语言包和驱动更新,有网络会让安装后的系统更完整。
双击桌面上的“Install Ubuntu”图标开始安装。第一页选择语言,建议选“中文(简体)”。随后安装器可能提示“你正在使用低电量模式”或“未连接到网络”,前者插电源解决,后者如果想在安装时更新可以先连网,也可以选“不连接网络”,不影响安装。
3.2 手动分区:这是整个安装最关键的一步
到“Installation type”这一步,安装器会给出几个选项。“清除整个磁盘”“与 Windows 共存”“Something else(其他选项)”。你直接选“Something else”,手动分区。
在分区界面里,你会看到现有的分区列表。里面肯定有几个 NTFS 分区是 Windows 的 C 盘、D 盘,以及一个很小的 EFI 系统分区(通常在 100MB 到 500MB 之间)。你要做的核心操作是:找到你之前在 Windows 里留出来的“空闲空间”(free space),在这个空间里新建三个分区。
下面是我个人偏好的分区方案,适合绝大多数场景:
| 分区用途 | 大小 | 类型 | 文件系统 | 挂载点 |
|---|---|---|---|---|
| EFI 系统分区 | 不新建,直接复用 Windows 的 ESP 分区 | - | - | /boot/efi |
| 根分区 | 60GB 以上 | 主分区 | ext4 | / |
| Swap(交换空间) | 内存大小或内存的 1~2 倍 | 主分区 | swap | 无挂载点 |
| 家目录 | 剩余所有空间 | 主分区 | ext4 | /home |
关于 EFI 分区,我想多说几句:很多人误以为双系统需要给 Ubuntu 单独新建一个 EFI 系统分区,这是可以的,但完全没有必要。Ubuntu 安装器完全可以把引导文件写进 Windows 现有的 EFI 分区里,两个系统的引导文件共存,GRUB 会同时识别 Ubuntu 和 Windows Boot Manager。复用现有 ESP 分区的优势是减少分区数量,避免主板固件里出现多个 EFI 条目导致启动顺序混乱。你在分区界面里选中那个 FAT32 格式、100MB 左右的 EFI 分区,点击“Change”,确保挂载点设置为/boot/efi,但手不要贱去格式化它。
根分区大小我建议至少 60GB。这不是上限,如果磁盘充裕,给 80~100GB 更舒服。/里装了系统、软件、apt 缓存,长期使用容易膨胀。Swap 分区的大小,保守做法是等于你的物理内存大小。如果你需要休眠(suspend-to-disk),Swap 必须大于或等于内存;如果你内存 32GB 以上而且不打算休眠,可以用 8~16GB 的 Swap 分区,或者干脆用 swapfile 的方式也行。最后剩下的空间全部给/home,你的文档、代码、下载文件都在这里。将来重装系统时,只要不重新格式化/home分区,个人数据就都还在。
选中空闲空间,点“+”,依次按上面的表填写,最后点击“Install Now”。安装器会弹窗提示“You have not selected a partition for swap”之类的,如果已经设置了就没事;如果它提示你要把分区表写入磁盘,确认无误后点 Continue。
3.3 设置用户名密码和时区的要点
分区完成后,安装器会进入“你在哪里”页面,一般会自动定位到上海,时区是“Asia/Shanghai”。接着是“Who are you”页面,这里面有个很关键的选择:
- 你的姓名(Your name):显示名
- 计算机名(Your computer's name):局域网中显示的主机名,建议用简短英文,比如
ubuntu-dev,不要带空格 - 用户名(Pick a username):这是登录名,也会成为你的
/home目录名,比如/home/zhangsan,建议用全小写英文 - 密码:记得设置一个你能记住但不太简单的密码
- 如果你勾选“Require my password to log in”,每次登录都要输密码;选“Log in automatically”则开机直接进桌面。我建议选前者,双系统环境安全一点。
安装过程大概需要 5 到 15 分钟,取决于磁盘速度和网络。完成后安装器会提示重启。重启时记得拔掉 U 盘,否则可能又进到安装界面。
3.4 重启后如何判断双系统是否安装成功
重启后,如果一切正常,你会看到 GRUB 引导菜单,默认选中第一个条目Ubuntu,下面还有Advanced options for Ubuntu和Windows Boot Manager两项。这时如果直接回车进 Ubuntu,就说明安装成功了。
但很多人在这个环节会翻车,通常是以下两种情况:第一,重启后完全没看到 GRUB,直接进了 Windows;第二,GRUB 菜单里只有 Ubuntu 没有 Windows 条目。这两种情况的排查思路我放在第 5 部分统一讲,你先往下看。
进到 Ubuntu 桌面后,建议先打开终端(Ctrl+Alt+T),敲一句df -h看一下三个挂载点是否正常,确认/、/home、/boot/efi都在且容量符合预期。能走到这一步,双系统在磁盘层面就已经搭建完毕了。
4. 安装完成后的初始化配置:从“能开机”到“好用”
4.1 调整 GRUB 启动顺序:想让哪个系统默认启动,自己说了算
GRUB 是 Ubuntu 的引导加载器,默认第一个条目是 Ubuntu,且等待 10 秒让你选择。如果你更常用 Windows,希望开机默认进 Windows,可以把默认项改为 Windows Boot Manager。
改的方式是编辑/etc/default/grub文件。在终端里执行:
sudo nano /etc/default/grub找到GRUB_DEFAULT=0这一行,0表示 GRUB 菜单中的第一个条目(从 0 开始编号),如果你机器上第一个是 Ubuntu,第二个是 Windows,就把GRUB_DEFAULT=2或者用更聪明的写法:
GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true然后用sudo update-grub重新生成引导配置。这样以后在 GRUB 菜单里选中哪个系统,重启后就会默认进入哪个系统,非常方便。
还有一个常见问题是 GRUB 菜单里找不到 Windows 条目。一般原因是缺少os-prober组件或它没触发。在 Ubuntu 22.04 上执行:
sudo apt install os-prober sudo os-prober sudo update-grub如果os-prober能看到 Windows Boot Manager,GRUB 菜单就会补充上 Windows 项。如果依然看不到,去确认 Windows 的 EFI 分区是否被正确挂载,或者 Windows 的引导文件是否损坏(这个需要 Windows 修复工具处理)。
4.2 修复 Windows 和 Ubuntu 的时间差问题
双系统最经典的一个小毛病就是时间错乱:在 Ubuntu 里调好时间后,回到 Windows 发现慢了 8 小时,反过来也一样。原因是两个系统对硬件时间(BIOS 时间)的解读方式不同:Windows 把主板时间当作本地时间,Ubuntu 默认当作 UTC 时间。解决办法是在 Ubuntu 侧让它直接使用本地时间:
timedatectl set-local-rtc 1执行后再重启 Windows 和 Ubuntu,两边时间就对齐了。如果你是无桌面版的服务器系统,也可以用sudo hwclock --localtime的方式处理,原理一致。
4.3 换源与第一次系统更新
安装完系统后,第一件事就是换源。默认的 archive.ubuntu.com 在国外,速度很慢。我一般把软件源换成清华源或者阿里云源。
打开“软件与更新”(Software & Updates),在“Ubuntu 软件”选项卡的“下载自”下拉菜单里选“其他站点”,然后搜索“aliyun”或“tuna”并选择对应镜像。也可以在终端里手动修改源文件,但图形化界面更直观,适合新手。
换完源后在终端执行:
sudo apt update sudo apt full-upgrade -y这个过程会更新软件包索引并升级已安装软件到最新版本。依赖关系如果有变化,full-upgrade会智能处理,比upgrade更彻底。根据网络情况,第一次升级可能需要十几分钟到半小时。
4.4 显卡驱动、无线网卡和中文输入法
22.04 对 Intel 核显和 AMD 显卡的驱动支持已经很好,装完直接能用。如果你用的是 N 卡,建议装专有驱动。打开“软件与更新”里的“附加驱动”选项卡,系统会列出可用的 NVIDIA 驱动版本,选中推荐版本后应用即可。装完后重启,再到终端里执行nvidia-smi,能看到显卡状态就说明驱动 OK。
N 卡驱动安装还有一个前提:Secure Boot 必须已关闭。如果你没关就装了驱动,重启后模块签名校验失败,桌面可能起不来。所以我在第 2 节强调关 Secure Boot,不是开玩笑。
无线网卡问题多半出现在一些老旧的 Broadcom 网卡上,症状是装完系统搜不到 Wi-Fi。解决办法是在有线网络下执行:
sudo apt install bcmwl-kernel-source装完重启,无线网卡一般就能识别。Intel 的无线网卡基本不用管,Ubuntu 内核都自带。
中文输入法方面,如果你需要搜狗输入法,先把系统自带的 IBus 切换成 fcitx5 或者 fcitx4:
sudo apt install fcitx然后再去搜狗官网下载 Linux 版 deb 包,双击安装。装好后重启,在输入法设置里把 Fcitx 添加为默认输入法框架。如果你不想折腾,Ubuntu 自带的 IBus 中州韵(智能拼音)也够用,输入体验还不错。
5. 常见问题与排查实录:这些都是亲手踩过的坑
5.1 问题速查表
| 现象 | 大概率原因 | 解决方案 |
|---|---|---|
| 重启后直接进 Windows,看不到 GRUB | BIOS 启动顺序里 Windows Boot Manager 优先于 Ubuntu,或 Ubuntu 引导未写入 EFI 分区 | 进 BIOS 把ubuntu(或 Linux 对应的 EFI 条目)调为第一启动项 |
| GRUB 菜单里没有 Windows | os-prober 未安装或未生效 | sudo apt install os-prober && sudo os-prober && sudo update-grub |
| 启动 U 盘后黑屏 | 显卡驱动初始化失败 | 在 GRUB 菜单选 "safe graphics" 模式;或编辑内核参数加nomodeset |
| 安装完成重启后动不了,卡在 Logo | 显卡驱动问题或内核参数不兼容 | 开机进 recovery mode,卸载 N 卡驱动或加nomodeset参数 |
| Ubuntu 和 Windows 时间差 8 小时 | 两系统对硬件时间的解释不同 | timedatectl set-local-rtc 1 |
| 手机热点能连,但路由器 Wi-Fi 连不上 | 网卡驱动或区域信道问题 | 更新固件、重启网络管理器,必要时换网卡驱动 |
| 根分区空间慢慢变满 | apt 缓存和日志累积 | 定期sudo apt autoremove && sudo journalctl --vacuum-time=7d |
5.2 启动顺序问题的完整排查思路
如果你重启后直接进了 Windows,不要一上来就重装。先检查 BIOS 里的启动顺序,找到类似ubuntu或Linux的条目,把它调到第一。这个条目代表 EFI 分区里的grubx64.efi,是 Ubuntu 的引导文件。每台主板的 BIOS 界面不一样,但思路一致。
如果你在 BIOS 启动顺序里找不到ubuntu条目,说明 Ubuntu 的引导文件没有写进 EFI 分区。此时重新用 U 盘进入试用模式,挂载 EFI 分区,然后用boot-repair工具修复:
sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update && sudo apt install boot-repair boot-repair选择“Recommended repair”,它会自动扫描已安装的系统并重建 GRUB。修复完重启,GRUB 菜单应该就能正常出现。这款工具在实战里救过我好几次,强烈建议收藏。
5.3 删除双系统前,请先想清楚这些
很多读者装完 Ubuntu 用了一阵子,因为工作流不习惯还是想退回 Windows 单系统。删除双系统不是“把 Ubuntu 分区删掉”这么简单,还要处理 EFI 引导项。
我的建议是:先备份/home里的所有需要保留的数据,然后在 Windows 下用磁盘管理删掉 Ubuntu 的分区(根分区、swap、/home),把释放出来的空间新建为 NTFS 分区并入其他盘。
接着删除 EFI 分区里的 Ubuntu 引导文件。这一步要用管理员权限开命令提示符,执行diskpart,输入list disk选中磁盘,再list partition找到 EFI 分区(通常是 100MB~500MB 的 FAT32 分区),给它分配一个盘符,然后用资源管理器删除里面的EFI\ubuntu文件夹。也可以用bcdedit命令查看和删除启动项,但操作门槛高一些,不建议新手直接用。
删除完后再进 BIOS,把启动顺序里残留的 Ubuntu 条目删掉或忽略。这样系统就干净了。不过说句实话,删之前多想想:你当初装双系统的目的是什么,如果只是对某个软件生态不适应,其实还有虚拟机这条路可以过渡。第 6 部分我聊聊这个思路。
6. 如果不想折腾双系统:虚拟机与 WSL 的替代路线
6.1 什么情况下虚拟机已经够用
如果你对 Linux 的需求是“偶尔用一下”,或者只是想学习 Linux 基础命令、跑几个开源脚本,那么虚拟机完全够用。在 Windows 用 VMware Workstation 或 VirtualBox 安装 Ubuntu,好处是和 Windows 无缝切换,不用重启,不怕误操作搞坏系统。缺点是性能有损耗,GPU 直通配置复杂,对开发嵌入式硬件、玩 ROS 机器人仿真这类场景不太友好。
我个人的习惯是:日常工作用 WSL 2 跑命令行工具链,需要图形界面或硬件直通时才进真机 Ubuntu。WSL 2 和 Windows 文件系统互相访问非常灵活,但如果你要长期跑 GUI 程序或者使用 Docker 的复杂网络,WSL 2 的配置成本有时候比虚拟机还高。
6.2 双系统安装成功后,再扩展什么内容
如果你已经按这篇教程装好了双系统,接下来可以顺着这个方向继续深入:研究 GRUB 的完整配置,学习 systemd 服务管理,配置 Docker 开发环境,搭建 Python/C++ 编译工具链,甚至把 Ubuntu 做成你自己的日常主力系统。Linux 生态里值得钻研的东西很多,最重要的是建立“系统坏了能自己修”的信心。
我在实际使用 Ubuntu 22.04 的过程中最大的体会是:只要分区规划合理、引导修复工具在手,双系统基本不会出大问题。怕的就是安装时图省事用自动模式,后来/home不够用或者引导丢失时完全不知道从何下手。所以这篇教程特意花了大量篇幅讲手动分区和引导修复原理,希望你能知其然,也知其所以然。
最后再送你一个小技巧:装完系统后,先把sudo apt update && sudo apt install -y build-essential git curl装了,这是很多开发环境的公共依赖。然后立刻做一个 EFI 引导 U 盘备着,或者把boot-repair工具写入自己常用的另一个 U 盘。工具不常有,但坏了的时候有工具的人才有资格淡定。