☰
Windows10装Ubuntu20.04双系统:UEFI+GPT引导修复与避坑指南
2026/10/6 6:15:15 网站建设 项目流程

简介:这份PDF图文教程面向需要在Windows 10基础上加装Ubuntu 20.04 LTS的开发者、运维人员及计算机专业学生,帮助零基础用户完成UEFI+GPT环境下的双系统部署。内容覆盖镜像下载与Rufus启动盘制作、磁盘压缩分区、关闭快速启动、BIOS安全启动与启动模式设置、与Windows Boot Manager共存安装、GRUB引导美化以及双系统时间不同步的修复思路,步骤配有截图,便于对照操作。资源包共1个文件,为PDF格式,大小约7.96MB,单文件结构适合离线阅读与打印。目前已有16474人学习下载,说明该教程在双系统安装场景中具有较高参考价值。读者可据此独立完成从准备到后续配置的完整流程,减少分区误操作与引导失败风险,并掌握时间同步等常见问题的排查方法。

1. Windows10 装 Ubuntu20.04 双系统:先搞懂 UEFI+GPT 这套底层逻辑

很多人第一次装 Ubuntu20.04 双系统,卡住的不是分区,而是开机直接进 Windows,连 GRUB 引导界面都看不到。我见过太多人反复重装三四遍,最后发现是 UEFI 和 Legacy 模式搞混了。这篇内容就是围绕 Windows10 装 Ubuntu20.04 双系统这条主线,把 UEFI+GPT 环境下的完整流程、分区参数、引导修复和踩坑记录讲透。适合两类人:一是手上只有一台主力机、想保留 Windows10 同时跑 Ubuntu20.04 做 ROS、CUDA 或深度学习开发的工程师;二是装过一次但引导失败、想搞清楚 UEFI 启动链到底怎么回事的熟手。整篇按「底层逻辑 → 制作启动盘 → 分区规划 → 安装执行 → 避坑 → 引导修复」推进,每一步都给可复现的命令和参数。

2. UEFI+GPT 启动链:为什么你的双系统看不到 GRUB

2.1 UEFI 和 Legacy BIOS 的启动路径差异

要理解双系统为什么容易翻车,得先看清 UEFI 和 Legacy 的启动路径完全不同。Legacy BIOS 时代,引导程序写在磁盘第一个扇区的 MBR 里,GRUB 直接接管整个启动流程。到了 UEFI 时代,主板固件会去读 GPT 分区表里那个 FAT32 格式的 EFI 系统分区(ESP),从里面加载.efi可执行文件。Windows10 装完后会在 ESP 里放一个EFI/Microsoft/Boot/bootmgfw.efi,Ubuntu20.04 装完后会放一个EFI/ubuntu/grubx64.efi。两个系统各占一个目录,互不覆盖,这是 UEFI 双系统比 Legacy 干净的地方。

问题出在 NVRAM 里的启动项顺序。主板固件维护一张启动项列表,Windows 安装时会把自己写成第一项,Ubuntu 安装时会把ubuntu加进去但未必排到最前。如果安装时 Ubuntu 的引导程序没写进 ESP,或者写进去了但 NVRAM 没更新,开机就会直接进 Windows,GRUB 根本不出现。这就是「装了 Ubuntu 但开机没得选」的根本原因。

判断当前是 UEFI 还是 Legacy,在 Windows10 里按 Win+R 输入msinfo32,看「BIOS 模式」这一行:显示 UEFI 就是 UEFI 启动,显示「传统」就是 Legacy。这一步必须在装之前确认,因为两种模式下的分区方案完全不兼容。

2.2 GPT 分区表下必须留出的三个分区

GPT 分区表相比 MBR 支持超过 2TB 的磁盘和最多 128 个分区,但双系统场景下有三个分区是硬性要求,缺一个都可能装不上或引导失败。

第一个是 ESP(EFI System Partition),格式必须是 FAT32,建议 512MB。Windows10 安装时通常已经创建了一个 100MB 的 ESP,这个分区不要删,Ubuntu 的引导文件也要写进去。100MB 在只装 Windows 时够用,但加上 Ubuntu 的 grub 和内核更新后容易吃紧,如果重新分区建议给到 512MB。

第二个是 Ubuntu 的根分区/,格式 ext4,建议不少于 50GB。如果要做深度学习,CUDA 和 cuDNN 加上数据集动辄几十 GB,建议 100GB 起步。第三个是交换分区 swap,Ubuntu20.04 默认用 swapfile 而不是独立分区,但如果物理内存小于 16GB 或者要跑大模型训练,建议单独划 8GB 到 16GB 的 swap 分区。

还有一个容易被忽略的点:Windows 的快速启动和休眠会锁住 NTFS 分区。如果 Ubuntu 要读写 Windows 的数据盘,必须在 Windows 里关掉快速启动,否则挂载时只能只读。这个后面避坑章节会细讲。

2.3 用 diskpart 确认磁盘是 GPT 且 Windows 是 UEFI 引导

在动手分区之前,先用 Windows 自带的 diskpart 确认磁盘状态。以管理员身份打开 PowerShell 或 CMD,执行下面的命令。

diskpart list disk select disk 0 detail disk

执行后看输出里的「分区样式」一栏,显示GPT说明是 GPT 分区表,显示MBR就是传统分区表。如果是 MBR 又想用 UEFI 启动,需要先用mbr2gpt工具转换,命令是mbr2gpt /convert /allowFullOS,但这个操作有风险,转换前务必备份数据。

确认完分区表,再确认 Windows 是不是 UEFI 引导。在 diskpart 里执行list partition,看有没有一个类型为「系统」、大小约 100MB 到 500MB 的分区,这个就是 ESP。如果有,说明 Windows 是 UEFI 引导;如果没有,说明是 Legacy 引导,那双系统的安装方式要换一套逻辑。

提示:mbr2gpt转换要求磁盘上最多三个分区,且 Windows 分区后面要有足够空间创建 ESP。转换前用diskpart的list partition看清楚布局,不确定就别转,直接重装成 UEFI 更省事。

3. 制作 Ubuntu20.04 启动盘:Rufus 参数怎么设才不翻车

3.1 下载镜像与校验哈希

Ubuntu20.04 的镜像从官方渠道获取,文件名形如ubuntu-20.04.x-desktop-amd64.iso。下载完成后一定要校验 SHA256,避免镜像损坏导致安装中途报错。在 Windows10 的 PowerShell 里执行:

Get-FileHash .\ubuntu-20.04.6-desktop-amd64.iso -Algorithm SHA256

把输出的哈希值和官方页面上公布的对比,一致才继续。这一步很多人跳过,结果装到一半提示「安装程序崩溃」或者「无法读取软件包」,回头查半天才发现是镜像下载不完整。校验通过后再制作启动盘。

3.2 Rufus 制作 UEFI 启动盘的分区类型选择

Rufus 是 Windows 下制作启动盘最常用的工具,但它的参数设置直接决定启动盘能不能在 UEFI 模式下被识别。插入一个至少 8GB 的 U 盘,打开 Rufus,按下面的参数配置。

参数项推荐值说明
设备你的 U 盘确认盘符别选错,选错会清空移动硬盘
引导类型选择ubuntu-20.04.x-desktop-amd64.iso点「选择」按钮加载镜像
分区类型GPTUEFI 模式必须选 GPT
目标系统类型UEFI (非 CSM)不要选「BIOS 或 UEFI」
文件系统FAT32UEFI 固件只认 FAT32 的 ESP
簇大小默认不用改

点「开始」后,如果提示需要下载额外的 GRUB 文件,选「是」。Rufus 会自动从网络拉取 UEFI 引导所需的文件。写入完成后,U 盘里会有一个EFI目录,里面有boot和ubuntu两个子目录,这是 UEFI 启动盘制作成功的标志。

注意:如果分区类型选了 MBR,目标系统选了 BIOS,做出来的盘在 UEFI 主板上根本不会出现在启动菜单里。这是新手最常踩的坑,没有之一。

3.3 主板 BIOS 里关闭 Secure Boot 和快速启动

启动盘做好后,重启电脑进 BIOS。不同品牌进 BIOS 的按键不同,常见的是 Del、F2、F12、Esc。进去后找两个设置:Secure Boot 和 Fast Boot。Secure Boot 建议先关闭,虽然 Ubuntu20.04 支持 Secure Boot,但第三方驱动(比如 NVIDIA 显卡驱动)在 Secure Boot 下需要签名,装驱动时会多一层麻烦。Fast Boot 也关掉,否则 U 盘可能来不及被识别。

保存退出后,按启动菜单键(通常是 F12 或 F11)选择 U 盘启动。如果 U 盘在菜单里显示为「UEFI: 你的U盘品牌」,说明启动盘制作正确;如果只显示不带 UEFI 前缀的项,说明 Rufus 参数设错了,回去重做。

4. 分区规划与安装执行:手动分区的四个关键参数

4.1 在 Windows 磁盘管理里压缩出未分配空间

进入 Ubuntu 安装之前,先在 Windows10 里腾出空间。右键「此电脑」→「管理」→「磁盘管理」,找到 Windows 所在的分区,右键「压缩卷」。输入要压缩的大小,比如 102400 表示压缩出 100GB。压缩完成后会出现一块「未分配」空间,这块空间不要格式化成 NTFS,留给 Ubuntu 安装程序用。

如果磁盘管理里压缩不出足够空间,通常是因为页面文件或系统保护占用了。可以先关闭系统保护、把页面文件移到别的盘,再压缩。实在不行用第三方分区工具,但操作前一定备份数据。

4.2 Ubuntu 安装类型选「其他选项」手动分区

从 U 盘启动进入 Ubuntu20.04 安装界面,语言选中文或英文都行,一路到「安装类型」这一步。这里不要选「清除整个磁盘并安装 Ubuntu」,也不要选「与 Windows Boot Manager 共存」,选「其他选项」手动分区。自动分区有时候会把 ESP 覆盖掉,导致 Windows 引导丢失,手动分区最可控。

进入分区界面后,找到那块「空闲」空间,点「+」号逐个创建分区。下面是我一般会用的分区方案。

挂载点大小类型说明
EFI 系统分区512MB逻辑分区如果已有 ESP 就选中它,不要新建
/80GB主分区ext4,系统和软件都装这里
/home剩余空间逻辑分区ext4,个人数据和代码放这里
swap16GB逻辑分区内存小于 16GB 时建议单独划

如果 Windows 已经有一个 100MB 的 ESP,直接选中它,挂载点设为/boot/efi,不要格式化。如果 ESP 太小想扩容,得用 GParted 先调整,但操作复杂,建议一开始就规划好。

4.3 引导程序安装位置必须选对 ESP

分区界面最下方有一个「安装启动引导器的设备」下拉框,这个选项决定 GRUB 写到哪里。必须选那个 EFI 系统分区对应的设备,通常是/dev/sda或/dev/nvme0n1,而不是某个具体分区。如果选错,GRUB 会写到别的地方,开机找不到。

选好后点「现在安装」,确认分区变更。安装过程中会提示是否下载更新和第三方软件,建议先不勾选,装完系统再单独装驱动和更新,避免安装过程因为网络问题卡住。安装完成后重启,如果一切正常,会先看到 GRUB 菜单,里面有 Ubuntu 和 Windows Boot Manager 两个选项。

4.4 安装后验证 GRUB 和 efibootmgr 启动项

重启进 Ubuntu 后,打开终端验证引导配置。先看 GRUB 是否识别到 Windows:

sudo update-grub

输出里如果出现Found Windows Boot Manager on /dev/sda1,说明 GRUB 已经识别到 Windows。再看 UEFI 启动项顺序:

efibootmgr -v

输出会列出所有启动项,每项前面有Boot0001、Boot0002这样的编号。找到ubuntu和Windows Boot Manager两项,确认ubuntu排在前面。如果 Windows 排在前面,用下面的命令调整顺序,把 ubuntu 的编号提到最前:

sudo efibootmgr -o 0001,0002,0003

编号根据实际输出替换。调整完重启,GRUB 菜单应该正常出现。

5. 双系统安装避坑:五条血泪经验

5.1 开机直接进 Windows,GRUB 不出现

现象:装完 Ubuntu 重启,屏幕一闪直接进 Windows,没有任何选择菜单。

原因:UEFI 启动项里 Windows Boot Manager 排在 ubuntu 前面,或者 Ubuntu 的引导文件根本没写进 ESP。常见于安装时「安装启动引导器的设备」选成了具体分区而不是磁盘。

解决:从 U 盘启动进 Ubuntu Live 环境,挂载 ESP 后检查EFI/ubuntu/目录是否存在。如果不存在,用grub-install重装引导:

sudo mount /dev/sda1 /mnt sudo grub-install --target=x86_64-efi --efi-directory=/mnt --bootloader-id=ubuntu sudo update-grub

如果目录存在但启动顺序不对,用efibootmgr -o调整顺序。

5.2 安装时提示「没有定义根文件系统」

现象:分区完成后点下一步,弹出「没有定义根文件系统,请修正分区菜单」。

原因:没有给任何分区设置挂载点/,或者根分区格式选成了 FAT32/NTFS 而不是 ext4。

解决:回到分区界面,选中准备做根分区的那块空间,点「更改」,挂载点选/,类型选 ext4,勾选格式化。确认后继续。

5.3 Ubuntu 里读不了 Windows 的 NTFS 数据盘

现象:Ubuntu 文件管理器里能看到 Windows 分区,但打开是只读,无法写入。

原因:Windows10 的快速启动和休眠功能会让 NTFS 分区处于「未干净卸载」状态,Linux 的 ntfs-3g 驱动检测到这种状态就强制只读挂载。

解决:进 Windows,控制面板 → 电源选项 → 选择电源按钮的功能 → 更改当前不可用的设置 → 取消勾选「启用快速启动」。然后在管理员 CMD 里执行powercfg /h off关闭休眠。重启进 Ubuntu,NTFS 分区就能读写了。

5.4 安装完 Ubuntu 后 Windows 时间不对

现象:切换系统后,Windows 显示的时间比实际时间差 8 小时。

原因:Windows 把硬件时钟当本地时间,Ubuntu 默认把硬件时钟当 UTC。两个系统对硬件时钟的理解不一致,来回切换就会互相改时间。

解决:在 Ubuntu 里执行下面命令,让 Ubuntu 也用本地时间:

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

或者在 Windows 里改注册表让 Windows 用 UTC,但改 Ubuntu 更简单。

5.5 NVIDIA 显卡装完驱动后进不了桌面

现象:装完 NVIDIA 驱动重启,卡在登录界面或者黑屏,只能进 tty。

原因:Secure Boot 开启时,NVIDIA 驱动模块没有签名,内核拒绝加载。或者驱动版本和内核版本不匹配。

解决:进 BIOS 关闭 Secure Boot。如果已经关了还黑屏,在 GRUB 菜单按e编辑启动参数,在linux那一行末尾加nomodeset,进系统后用ubuntu-drivers devices查看推荐驱动版本,用sudo apt install nvidia-driver-xxx安装对应版本。

6. 引导修复与进阶:用 Live USB 重建 GRUB 的完整流程

引导出问题是双系统最常见的翻车场景,掌握从 Live USB 重建 GRUB 的能力,比装十次系统都有用。下面这套流程我在不同机器上复现过多次,UEFI+GPT 环境通用。

先制作一个 Ubuntu20.04 的 Live USB,从它启动,选择「Try Ubuntu」进入试用桌面。打开终端,先用lsblk看清楚磁盘布局:

lsblk -f

输出里会列出所有磁盘和分区,找到根分区(ext4 格式,挂载点为空)和 ESP(vfat 格式,通常 100MB 到 512MB)。假设根分区是/dev/nvme0n1p5,ESP 是/dev/nvme0n1p1,按下面的步骤挂载并 chroot:

sudo mount /dev/nvme0n1p5 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt

进入 chroot 环境后,重新安装 GRUB 并更新配置:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu update-grub

grub-install会把grubx64.efi写进 ESP 的EFI/ubuntu/目录,update-grub会扫描所有分区生成grub.cfg,把 Windows 也加进菜单。执行完退出 chroot,卸载分区后重启:

exit sudo umount -R /mnt sudo reboot

重启后如果 GRUB 菜单出现,说明修复成功。如果还是没有,进 BIOS 检查启动项里有没有ubuntu,没有的话用efibootmgr手动添加:

sudo efibootmgr -c -d /dev/nvme0n1 -p 1 -L ubuntu -l \\EFI\\ubuntu\\grubx64.efi

这条命令会在 NVRAM 里创建一个名为 ubuntu 的启动项,指向 ESP 里的 grubx64.efi。参数-d指定磁盘,-p指定分区号,-l指定 EFI 文件路径。路径里的反斜杠要转义,写成双反斜杠。

还有一个进阶技巧:如果不想每次开机都看 GRUB 菜单,可以设置默认启动项和超时时间。编辑/etc/default/grub,把GRUB_DEFAULT设为0(默认 Ubuntu)或2(默认 Windows,具体编号看菜单顺序),GRUB_TIMEOUT设为5表示等 5 秒。改完执行sudo update-grub生效。

我自己装双系统有个习惯:每次动分区之前,先用dd把 ESP 备份一份,命令是sudo dd if=/dev/nvme0n1p1 of=~/esp_backup.img bs=1M。ESP 只有几百 MB,备份很快,但引导炸了的时候,这个备份能省下几个小时的重装时间。装系统这件事,后悔药就是提前备份。希望帮到你。

本文还有配套的精品资源,点击获取

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

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

立即咨询