☰
Windows与Ubuntu双系统安装全攻略:从分区到引导修复
2026/10/13 7:31:53 网站建设 项目流程

看到“Windows系统上安装了Ubuntu”这句话,第一反应可能是:开机时多个选单,想进哪个进哪个。但落地时你很快会发现,这句话至少对应三种完全不同的结果——开机引导选单的双系统、Windows 窗口里跑的虚拟机、以及一条命令就能进的 WSL。如果你不做需求判断就直接找教程,很可能会照着照着才意识到方案根本不适合自己。这篇我按“双系统”这条最完整、也是坑最多的路线展开,从启动盘制作、磁盘分区、引导修复到显卡驱动,把每一步的“为什么这么做”和实操中容易忽略的细节一次性讲透。无论你是想在一台电脑上同时保留两个系统做开发调试,还是计划从 Windows 平滑过渡到 Linux,都可以顺着这套流程走一遍。

1. 先别急着动手:三种“Windows上装Ubuntu”的真实形态

“装了 Ubuntu”这句话在不同人嘴里含义完全不同。有人是开了个虚拟机,有人用的是 WSL,只有真正把硬盘分了区、装了独立 Ubuntu 的人才会在开机时看到 GRUB 选单。这三种形态各有适用场景,选错方案的代价差别很大。

1.1 双系统:两个系统共用硬件,性能完全释放

双系统的本质是 Windows 和 Ubuntu 分别安装在同一台电脑的不同磁盘分区(或不同硬盘)上,两者共享 CPU、内存、显卡这些物理硬件,但同一时刻只能运行其中一个。开机时先由 GRUB 引导器接管控制权,再由它决定把系统交给 Windows 还是 Ubuntu。

这种方案的性能代价几乎为零。Ubuntu 可以直接访问全部硬件资源,适合跑深度学习模型、CUDA 编译、数据科学计算这类重活。代价是切换系统必须重启,而且分区、引导、驱动这些环节一旦处理不当,很容易出现“Windows 也进不去”的尴尬局面。双系统适合的目标用户很明确:已经确定长期在 Ubuntu 下开发、对性能敏感的人,或者打算彻底转向 Linux、但暂时还留一个 Windows 应急的人。

1.2 虚拟机:Windows 窗口里跑 Ubuntu,随手可弃

虚拟机方案是用 VirtualBox、VMware 这类工具,在 Windows 上虚拟出一整套硬件,再在上面安装 Ubuntu。核心优势是“隔离”和“快照”:你可以随时对 Ubuntu 做快照,系统搞坏了退回几分钟前;Ubuntu 崩溃也不会影响 Windows 里的任何文件。

代价是性能损耗。虚拟化层会吃掉部分 CPU 效率和磁盘 IO 性能,GPU 直通配置麻烦,游戏和大型计算基本不适合。但对绝大多数想学 Linux 命令、搭开发环境、跑测试服务的人来说,这点损耗很难感知。我经常向只想“体验一下 Linux 长什么样”的新人推荐虚拟机,因为十几分钟就能建好一个随便折腾的环境,腻了删掉就好。

1.3 WSL:把 Linux 内核塞进 Windows 的轻量方案

WSL(特别是 WSL2)和前两者都不同。它由 Windows 内置的轻量虚拟化平台承载一个完整的 Linux 内核,但使用体验上更像本机命令:在 Windows 的终端里输入 wsl 回车,就进入 Ubuntu 的 shell,文件系统、剪贴板、网络和 Windows 无缝协作。配合编辑器做远程连接,日常写代码体验很接近真实 Linux 机器。

WSL 的强项是启动快、资源占用低、不需要单独管理桌面和分区。但它没有完整桌面环境,图形界面应用支持有限。它适合已经有 Windows 主力工作流、只是需要一套 Linux 工具链的开发者。严格来说 WSL 不算传统意义上的“在 Windows 上安装 Ubuntu”,但却是大量开发者的真实选择,所以我把它的定位先说清楚。

1.4 一图定位你的真实需求

判断方式其实很直接:

你的需求推荐方案理由
体验 Linux 命令、写脚本WSL2启动快、无分区风险
想看看 Ubuntu 桌面、熟悉图形界面虚拟机隔离安全,随时快照
要跑 GPU 深度计算、内核级开发双系统硬件访问无损耗
最终想转向 Linux,Windows 基本不用双系统长期稳定,性能最佳
调试驱动、测试装机流程双系统或虚拟机需要完整硬件生态

如果看完还是不确定,我的建议是先用 WSL 或虚拟机跑两个星期,确定自己离不开 Ubuntu 的哪些特性,再决定要不要折腾双系统。很多人一上来就装双系统,装完发现一年也没进几次,最后还得花时间删掉腾空间。

这篇后续内容全部围绕双系统展开,因为它的技术链路最长,把这条链路走通之后,其它两种方案的理解成本会低很多。

2. 动手前的隐藏门槛:启动模式、磁盘空间与启动U盘

双系统安装失败,很大一部分发生在动手之前——准确地说,是在准备阶段。这里说的不是“记得备份数据”这种谁都知道的常识,而是三个具体且容易栽跟头的点:UEFI 和 Legacy 启动模式、磁盘要预留多大、启动U盘怎么做才不会被卡住。

2.1 确认当前启动模式:UEFI 还是 Legacy

先做一件事:在 Windows 按 Win+R,输入 msinfo32 回车,查看“BIOS 模式”这一栏。如果显示“UEFI”,说明当前 Windows 是按 UEFI 模式安装的;如果显示“传统”或“Legacy”,则是老式 BIOS 引导。

为什么这一步如此关键?因为 UEFI 模式下安装 Ubuntu 时,系统要求存在一个 EFI 系统分区(ESP),引导器文件要写到这个分区里;而 Legacy 模式走的是 MBR 引导,磁盘分区表格式完全不同。大部分品牌机出厂默认 UEFI,但有些机器开启过 CSM 兼容模块。如果 Windows 是 UEFI 模式,Ubuntu 启动盘却按 MBR 格式制作,安装时就会出现“无法安装到此磁盘”的提示,或者装完根本找不到引导项。U 盘启动方式必须和现有系统模式保持一致——这是双系统安装的第一条铁律。

2.2 磁盘规划:100GB 只是起步,不是终点

第二个隐藏门槛是磁盘空间。Ubuntu 桌面版装完后大约占 8 到 12GB,但真正用起来之后,/var 的日志、/usr 的应用、/home 里的缓存和开发环境会迅速膨胀。官方建议最少 25GB 可用空间,但以一个开发者的实际消耗来算,100GB 是比较舒适的起步线。如果计划安装 CUDA、深度学习框架、Android 编译工具链这类东西,200GB 以上也不嫌多。

具体分配上,我习惯在 512GB 的 SSD 上给 Windows 留 250GB,剩下全给 Ubuntu。其中根分区(/)给 60GB,交换分区给 8GB 或 16GB,剩下的全部给 /home。我的建议是宁可压缩 Windows 空间,也不要压缩 Ubuntu 的 /home,因为用户数据迁移最痛苦。动手之前在 Windows 的磁盘管理里确认当前分区情况,用“压缩卷”腾出连续未分配空间——注意,不要直接把分区删掉,用压缩卷能让原数据保留,同时给 Ubuntu 留出干净的自由空间。

2.3 用 Rufus 制作启动U盘:两个选项决定成败

启动盘制作工具我常用 Rufus,免费、单文件、兼容性稳定。插入 U 盘后,选择 Ubuntu 的 ISO 镜像,推荐 22.04 LTS 或 24.04 LTS 这类长期支持版,分区类型务必选 GPT,目标系统类型选 UEFI(非 CSM)。文件系统 FAT32 保持默认,Rufus 会自动处理大于 4G 的文件。

如果选成 MBR,在 UEFI 机器上安装时 Live 环境虽然能起来,最后把引导装到 EFI 分区时却很可能报错,甚至出现“找不到可用的引导设备”。我做过多次验证,2020 年之后的电脑,GPT 加 UEFI 是最匹配的组合。启动盘做好之后,建议校验一下官方提供的 SHA256 哈希值,防止镜像文件损坏导致安装过程莫名中断。我经历过两三回装到一半报错、最后发现是镜像问题的深夜排查,这道工序真的值得做。

2.4 顺手关掉 Windows 快速启动:小设置,避免一堆怪问题

Windows 的“快速启动”(Fast Startup)默认开启,它背后是混合关机机制:关机时只注销用户会话,内核和驱动程序被挂起到休眠文件里。这个机制下,Windows 分区里的文件可能处于未释放状态。双系统切换时,Ubuntu 尝试挂载 NTFS 分区或系统盘,容易碰到元数据不一致,轻则只能只读挂载,重则文件系统报错。

操作路径:控制面板 → 电源选项 → 选择电源按钮的功能 → 取消勾选“启用快速启动(推荐)”。如果选项是灰色,需要先点“更改当前不可用的设置”获取管理员权限。关掉之后开机速度会有轻微下降,但换来的是双系统文件系统的稳定共享,这笔账非常划算。

3. 安装全程的关键岔路口:分区方案与引导器位置

准备做完,接下来是真正动刀的时刻。安装过程本身点几个“继续”就行,真正的风险全部集中在两个岔路口:分区怎么做、引导器装哪里。很多人的系统就是在这两个地方废掉的。

3.1 从 U 盘启动到 Ubuntu 安装环境

把做好的 U 盘插入电脑,重启。开机画面出现时按启动菜单快捷键,常见的是 F2、F10、F12 或者 ESC,具体键位因品牌而异,通常在开机画面底部有一行小字提示。进入启动菜单后选择 U 盘(一般带 USB 字样或 UEFI 前缀),进入 GRUB 菜单,选择 “Try or Install Ubuntu”。

建议先选 Try Ubuntu 试用一下,而不是直接安装。试用环境里可以快速验证 Wi-Fi 是否被识别、显卡有没有正常输出画面,也能用自带工具预览磁盘现状。确认没问题后,双击桌面上的 “Install Ubuntu” 开始正式安装。到了“安装类型”这一步,如果你之前用压缩卷留出了未分配空间,就选择“其他选项”手动分区。自动安装在单块整盘上很省心,但在双系统场景下,它容易做出接管整块磁盘之类的激进操作,不是正确方式。

3.2 手动分区:给每个分区一个明确职责

选择“其他选项”后,会看到磁盘分区列表,找到之前留出的空闲空间,选中它,点“+”号新建分区。我的推荐方案如下:

分区大小类型挂载点说明
EFI 系统分区已有 ESP 则复用FAT32不设挂载点存引导文件
根分区 /40GB 至 60GBext4/放系统本身
交换分区 swap内存小于等于 16GB 时等于内存;更大内存给 8GBswap无内存溢出缓冲
家目录分区 /home剩余全部空间ext4/home用户数据和项目文件

创建分区时注意:如果 EFI 分区已经存在,直接选择它、挂载点留空、不要勾选格式化,避免把 Windows 的引导文件一起抹掉。根分区挂载点设为 /,交换分区类型选“交换空间”。点“安装”之前会弹出一个确认窗口,列出所有将被格式化的设备——这一步必须仔细核对,确保 Windows 的分区不在列表里。养成确认的习惯,比什么高级技巧都重要。

3.3 引导器到底装到哪个设备上:最容易误解的一步

手动分区页面底部有个“安装启动引导器的设备”下拉框,这里翻车的人最多。需要先理解:UEFI 模式下,GRUB 不是装到某个分区上,而是装到 EFI 系统分区里。下拉框选择的是磁盘设备本身,通常是 /dev/nvme0n1 或 /dev/sda 这种整盘名,而不是 /dev/nvme0n1p1 这样的分区名。如果 Windows 系统盘和 Ubuntu 根分区在同一块物理盘上,保持默认整盘设备即可。

有相当多教程让人把它选成 / 分区对应的设备号,结果反复重启都进不了 GRUB。这里记住一个判断标准:只要 Windows 的 EFI 分区和 Ubuntu 的根分区在同一块物理盘上,就直接选整盘设备名;GRUB 会自动发现 Windows 引导项并加入选单。装完开机如果直接进 Windows 或 GRUB 里没有 Windows 选项,大概率是这一步选错,也可能是下一节要说的引导顺序问题,统一处理。

3.4 安装过程中的黑屏、卡顿与网络问题

安装界面设置好账号密码后,会看到“安装时下载更新”和“安装第三方软件”的勾选项。第三方软件包包含媒体解码器、字体等支持,但下载过程会明显拖慢安装。网络一般的用户建议全部取消勾选,装完系统后用 apt 慢慢补齐,时间成本更可控。

安装时如果出现黑屏、花屏、卡死在 Ubuntu logo 的情况,多半是显卡在 Live 环境下的兼容问题。在 GRUB 菜单选中 “Try or Install Ubuntu” 这一项,按 e 编辑启动参数,在 linux 那行末尾加上 nomodeset,按 Ctrl+X 启动。这个参数会跳过内核模式设置,让安装程序先跑起来。装完系统之后,也需要用同样方式进入一次并安装正确的显卡驱动,方法在下一章详细讲。

4. 装完才是重头戏:引导丢失、显卡驱动与时间错乱

装完 Ubuntu、拔掉 U 盘、满怀期待地重启——结果发现开机直接进 Windows,或者停在 grub> 提示符前。这才是双系统真正考验的开始。出现异常并不可怕,可怕的是不知道从哪里排查。这一章把最常遇到的三个“装完才暴露”的问题讲透。

4.1 开机不进 GRUB:Boot Repair 和手动修复两条路

现象一:开机直接进 Windows,完全没有 GRUB 菜单。原因通常是 UEFI 固件的启动顺序里 Windows Boot Manager 排在 Ubuntu 前面,或者 GRUB 没有被正确写入 EFI 分区。解决办法:进 BIOS/UEFI 设置,在 Boot 选项里把 “Ubuntu” 或 “GRUB” 的启动项拖到第一位。部分品牌机还会隐藏第三方启动项,需要先关闭安全启动(Secure Boot)才能让 GRUB 项稳定生效。关于安全启动,有部分显卡驱动和内核模块在开启状态下也装不上,所以双系统场景我一般建议直接关掉。

现象二:开机停在 grub> 或 grub rescue> 提示符,说明 GRUB 找不到内核文件。常见诱因是 Windows 更新重写了 UEFI 里的引导配置,或者移动过 /boot 分区。最简单可靠的修复工具是 Boot Repair 的启动盘:下载其 ISO 做成 U 盘,启动后选第一项,它会自动识别系统并执行修复。如果想手动操作,标准链路是:用 Ubuntu 安装盘进入 Try Ubuntu,挂载根分区、挂载 EFI 分区,然后 chroot 执行 grub-install 和 update-grub。命令如下:

sudo mount /dev/nvme0n1p5 /mnt # 根分区 sudo mount /dev/nvme0n1p1 /mnt/boot/efi # EFI 分区 sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt grub-install /dev/nvme0n1 update-grub exit sudo umount -R /mnt

注意:分区设备号每台机器都不一样,务必先用 lsblk 确认。这里最常犯的错是把根分区当整盘传给 grub-install,或者忘了挂载 EFI 分区就执行 update-grub,导致修复后仍然起不来。顺序别搞反,挂载步骤少一步都不行。

4.2 显卡驱动:黑屏、循环登录的排查路径

Ubuntu 默认使用开源的 Nouveau 驱动兼容显卡,但兼容性并不理想。很多新显卡在装完专有驱动之前会表现为安装时黑屏、重启后停在登录界面循环、或者进入桌面就花屏。如果你用的是独立显卡或核显加独显的双显机器,建议尽早安装官方驱动,而不是等问题暴露再排查。

先进入系统(必要时在 GRUB 里加 nomodeset),打开“软件与更新 → 附加驱动”标签页,系统会自动检测并列出可用的专有驱动版本。选择推荐版本,应用变更后重启。这是最省事的方式。命令行方式如下:

sudo apt update sudo apt install nvidia-driver-535 sudo reboot

装完后执行 nvidia-smi,能看到 GPU 信息和驱动版本就是成功。循环登录的经典排查路径:按 Ctrl+Alt+F3 进入 TTY,用账号登录后删除 ~/.Xauthority 再重启图形会话——这个文件损坏是常见诱因;还不行就看 /var/log/Xorg.0.log 里的明确报错。个人经验:新手别轻易通过第三方源安装“最新”驱动,测试版驱动可能导致内核模块编译失败。LTS 系统配软件源里标了 recommended 的稳定版本,足够日常使用。

4.3 无线网卡、触摸板等硬件识别

Wi-Fi 识别不了的情况主要出现在部分笔记本上。常见网卡芯片在近几个 LTS 版本里大多免驱,但少数芯片例外。处理方式是先用网线联网,然后安装对应固件包:

sudo apt install bcmwl-kernel-source

装完重启,内核模块加载后就能看到无线列表。触摸板如果点击没反应、灵敏度不对,去“设置 → 鼠标与触摸板”调整就好,绝大多数不需要额外驱动。部分新平台笔记本刚装完会风扇狂转或休眠后无法唤醒,这类情况往往与内核版本有关——安装硬件支持内核栈可以缓解,但属于少数硬件问题,碰到再处理就行,不必提前焦虑。

4.4 双系统时间相差 8 小时:一个系统级时钟约定的冲突

装完双系统后,可能会发现切一次系统,时间就错 8 小时。原因在于时钟约定不同:Windows 认为主板 RTC 保存的是本地时间,Ubuntu 这类 Linux 系统默认把主板 RTC 当作 UTC,再按时区换算成显示时间。两个系统轮流写入时钟,就会来回把时间拨乱。

两种修法选一种就好。第一种,在 Ubuntu 里执行:

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

让 Ubuntu 也按本地时间解读硬件时钟。第二种,在 Windows 注册表里开启 UTC 支持:以管理员身份打开注册表编辑器,进入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation,新建一个 DWORD 值 RealTimeIsUniversal,设为 1,重启后生效。

我推荐第二种,因为 Windows 开启 UTC 模式后,Ubuntu 保持默认的 UTC 行为即可,以后装任何 Linux 发行版都不用再改,属于一劳永逸的做法。

5. 双系统日常维护清单:让 Windows 和 Ubuntu 好好共处

系统稳定运行才是开始。双系统最怕的不是装不好,而是装完之后互相影响。维护的核心其实就是三件事:数据互通、更新节奏、备份策略。这一章没有复杂的原理,全是操作层面的经验。

5.1 Windows 与 Ubuntu 之间的文件互通

默认情况下,Ubuntu 可以读取 Windows 的 NTFS 分区,文件管理器侧边栏点对应盘符就能挂载。但注意,如果 Windows 开着快速启动,某些分区会被锁定,Ubuntu 只能只读访问。这也是前面强调关闭快速启动的原因之一。反过来,Windows 原生读不了 Ubuntu 的 ext4 分区,装第三方工具可以解决,但更推荐的做法是避免这种需求:单独划一个 NTFS 数据分区,两边的长期文件都放那里。

开发项目仓库建议直接放在 Linux 文件系统而不是 NTFS 上,因为权限位、符号链接、git 的 lockfile 在 NTFS 上容易出问题。这是个典型的“隐形坑”:项目代码放在数据盘导致构建失败,描述起来像权限问题,实际是文件系统不支持某些 Linux 特性。

5.2 更新节奏:Windows 大更新后 GRUB 消失怎么办

Windows 的功能更新和 Ubuntu 的内核更新,都可能改写 UEFI 引导项。最典型的场景是 Windows 更新后重启,GRUB 消失,直接进 Windows。这不是系统坏了,是 UEFI 启动顺序里的 Ubuntu 入口被覆盖或重排了。

处理办法与 4.1 相同:进 BIOS 把 Ubuntu 启动项调回来,必要时用 Boot Repair 修复。为了避免反复,建议把 Windows 更新改成手动安排,Ubuntu 那边控制一下自动内核更新的节奏。内核更新本身是双刃剑:新内核修复安全漏洞,但偶尔引入硬件问题。我自己习惯保留上一版内核,Ubuntu 默认会保留两个,这样新内核出问题时可以在 GRUB 高级选项里选旧内核回退,再决定要不要卸载。

5.3 备份策略:分区层面的操作不能嫌麻烦

双系统维护里有一条铁律:涉及分区、升级、重装的任何操作,先备份再动手。全盘 dd 命令简单可靠,但对大硬盘来说太费时间,日常更实用的是分层备份:

  • /home 和系统配置用 tar 做增量归档
  • 项目代码仓库推送到远端
  • 装机完成的“干净系统”状态,用 fsarchiver 备份整个根分区,恢复时快得多

需要调整分区大小时,别在运行中的系统上直接操作根分区,因为内核持有分区表。正确做法是启动 GParted 的 Live 环境,离线调整。缩小、扩大、移动分区都必须在目标分区未挂载的前提下操作。移动 /boot 或 / 分区后,GRUB 里的 UUID 可能对不上导致无法启动,此时用 Boot Repair 重新识别即可。记住这些,双系统维护就不会翻大船。

5.4 我的实际使用建议与最后提醒

以一个长期折腾过多套系统的人的视角说点实在话。双系统最大的价值是给你一个完整的 Linux 开发环境,同时保留 Windows 的应急通道。但它的维护成本确实存在:每次大版本更新都要留个心眼,磁盘空间要克制规划,驱动尽量用发行版仓库里的稳定版。如果你需要高频在两个系统之间来回切换,办公资料和沟通工具又都在 Windows 生态里,虚拟机可能是更平滑的过渡方案。

我见过不少用户装好双系统几周后又全盘退回 Windows,原因不是 Ubuntu 不好用,而是他真正需要的只是几个命令行工具,这类需求 WSL 就够。反过来,如果你已经确定方向是服务器开发、容器编排、深度学习训练,那双系统值得投入——装好之后配合终端环境,完全可以搭出一套比 Windows 更顺手的开发流程。技术选型永远别追风,先弄清自己日常的高频场景落在哪一端,再决定要不要把双系统推进下去。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询