☰
Windows10 装 Ubuntu20.04 双系统:UEFI+GPT 下最容易翻车的三个环节
2026/10/6 11:08:02 网站建设 项目流程

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

1. Windows10 装 Ubuntu20.04 双系统:UEFI+GPT 下最容易翻车的三个环节

很多人第一次在 Windows10 上装 Ubuntu20.04 双系统,卡住的地方往往不是分区本身,而是 UEFI 与 GPT 这套组合带来的启动项管理问题。你可能已经看过不少 ubuntu20.04安装教程,照着分区、写入、重启,结果开机直接进 Windows,连 GRUB 菜单都没见过;或者装完 Ubuntu 后 Windows 的引导被覆盖,两边都进不去。这类问题在传统 Legacy+MBR 时代很少见,但在 UEFI+GPT 环境下几乎是新手必经的坑。

这篇内容面向的是手里有一台预装 Windows10 的机器、想再装一个 Ubuntu20.04 做开发或学习、但不想重装整个硬盘的人。我会按真实操作顺序,把 UEFI 启动项、GPT 分区表、EFI 系统分区这三个核心点讲清楚,再给出可复现的步骤和参数。读完你应该能独立完成一次双系统安装,并且在出问题时知道该看哪里,而不是盲目重装。

2. 装之前先把 UEFI、GPT 和 EFI 分区这三件事理清

2.1 UEFI 启动模式和 Legacy 到底差在哪

UEFI 和 Legacy 最直接的区别在启动流程。Legacy 靠 MBR 分区表里的引导代码找操作系统,硬盘第一个扇区就是引导记录;UEFI 则是固件直接读取硬盘上某个 FAT32 分区里的 .efi 文件来启动。这个 FAT32 分区就是 EFI 系统分区,通常 100MB 到 500MB,Windows10 安装时会自动创建。

为什么这件事重要?因为 Ubuntu20.04 的安装镜像在 UEFI 模式下启动时,安装器会把 GRUB 引导程序写进 EFI 分区,而不是写进硬盘 MBR。如果你用 Legacy 方式启动 U 盘,安装器就会按 MBR 逻辑走,结果和 Windows 的 UEFI 启动方式冲突,轻则开机没有 Ubuntu 选项,重则 Windows 也进不去。

判断当前 Windows10 是不是 UEFI 启动,最稳的方法是打开「磁盘管理」,看系统盘有没有一个叫「EFI 系统分区」的 FAT32 小分区。有就是 UEFI+GPT,没有基本就是 Legacy+MBR。另一个方法是运行msinfo32,在「系统摘要」里看「BIOS 模式」这一行,显示 UEFI 就是 UEFI 启动。

提示:如果 BIOS 模式显示「传统」,而你想装 Ubuntu20.04 双系统,建议先确认主板是否支持 UEFI。近十年的机器基本都支持,但有些品牌机默认开了 CSM 兼容模式,需要进 BIOS 关掉 CSM 才能以纯 UEFI 启动。

2.2 GPT 分区表下给 Ubuntu 留空间的实际操作

GPT 分区表相比 MBR 最大的好处是支持超过 2TB 的硬盘和更多主分区。Windows10 在 UEFI 模式下默认就用 GPT,所以你要做的是从现有 Windows 分区里压缩出一块未分配空间给 Ubuntu,而不是去动分区表类型。

具体操作:右键「此电脑」→「管理」→「磁盘管理」,找到 Windows 所在的 C 盘或数据盘,右键「压缩卷」。系统会先查询可压缩空间,然后你输入要压缩的量。给 Ubuntu20.04 的建议是至少 50GB,如果打算装 ROS、CUDA 或者深度学习环境,直接给 100GB 以上。压缩完成后会出现一块黑色的「未分配」空间,这就是 Ubuntu 安装器要用的区域。

这里有个血泪经验:Windows 的压缩卷功能受页面文件和系统保护文件影响,有时候明明有 200GB 空闲却只能压缩出 20GB。遇到这种情况,先关掉系统保护里的还原点,再把页面文件临时设到别的盘或者禁用,重启后再压缩,通常能释放出更多空间。

2.3 EFI 系统分区为什么不能删也不能随便格式化

EFI 系统分区是 UEFI 启动的核心。Windows10 的引导文件、Ubuntu 的 GRUB 引导文件都放在这个分区里,路径分别是EFI/Microsoft/Boot/bootmgfw.efi和EFI/ubuntu/grubx64.efi。安装 Ubuntu 时,安装器会自动识别已有的 EFI 分区并把 GRUB 写进去,你不需要手动创建,更不能格式化它。

有些教程会教你单独给 Ubuntu 分一个 EFI 分区,这在双系统场景下反而容易出问题。因为主板 NVRAM 里的启动项可能指向不同的 EFI 分区,导致开机菜单混乱。常见做法是:双系统共用 Windows 已经创建的那个 EFI 分区,安装器里把「安装启动引导器的设备」选成这个 EFI 分区对应的硬盘(通常是/dev/sda或/dev/nvme0n1),而不是某个具体分区。

注意:如果你在安装器里看到多个 EFI 分区,一定要选 Windows 正在用的那个。判断方法是看分区大小和挂载点,Windows 创建的通常是 100MB 或 260MB,挂载点显示为/boot/efi。

3. 制作启动盘到分区安装的完整命令与参数

3.1 用 Rufus 制作 UEFI 启动盘的关键选项

Ubuntu20.04 的 ISO 镜像可以从官方渠道获取,下载后校验 SHA256 再写入 U 盘。制作工具在 Windows 上常用 Rufus,免费且对 UEFI 支持明确。

打开 Rufus 后,设备选你的 U 盘,引导类型选择下载好的 Ubuntu20.04 ISO。分区类型选 GPT,目标系统选 UEFI(非 CSM)。文件系统保持 FAT32,簇大小默认。其他选项不用动,点击开始后会提示会清除 U 盘数据,确认即可。

# 在 Ubuntu 或 WSL 里校验 ISO 完整性 sha256sum ubuntu-20.04.6-desktop-amd64.iso # 对比官方公布的 SHA256 值,一致才继续

这段命令的作用是确认下载的 ISO 没有损坏。参数说明:sha256sum是计算文件哈希的工具,后面跟 ISO 文件路径。如果输出值和官方页面一致,说明文件完整;不一致就重新下载,不要用损坏的镜像做启动盘,否则安装中途会报错。

写入完成后,U 盘里会有EFI文件夹和casper文件夹等。如果用的是 Ventoy 这类多镜像工具,把 ISO 直接复制进 U 盘即可,Ventoy 会自动处理 UEFI 启动。

3.2 BIOS 设置里必须确认的四项

重启机器,在品牌 Logo 出现时按对应按键进 BIOS。不同品牌按键不同,常见的是 F2、F12、Del、Esc。进 BIOS 后重点看四项:

第一,Secure Boot 建议先关闭。Ubuntu20.04 虽然支持 Secure Boot,但部分显卡驱动和第三方内核模块在开启时会加载失败。装完系统后再按需开启。

第二,SATA 模式确认是 AHCI 而不是 RAID。有些笔记本默认 RAID,Ubuntu 安装器会看不到硬盘。

第三,启动顺序把 U 盘调到第一位,或者用启动菜单临时选 U 盘。

第四,确认 CSM 已关闭,保证纯 UEFI 启动。

保存退出后,机器会从 U 盘启动,进入 GRUB 菜单,选「Try Ubuntu」或「Install Ubuntu」都可以。建议先选 Try Ubuntu 进桌面,用sudo fdisk -l或 GParted 确认硬盘识别正常,再点桌面上的安装图标。

3.3 安装类型选「其他选项」后的分区参数

安装器走到「安装类型」这一步时,不要选「清除整个磁盘」或「与 Windows 一起安装」。前者会毁掉 Windows,后者虽然方便但分区布局不可控。选「其他选项」,手动分区。

在分区界面找到之前压缩出来的「空闲」空间,选中它,点「+」号创建分区。推荐的分区方案如下:

挂载点大小类型说明
/boot/efi已有,不新建EFI 系统分区共用 Windows 的 EFI 分区
/30GB 以上ext4系统根目录
/home剩余大部分ext4用户数据,重装系统可保留
swap内存大小或 8GBswap休眠和内存不足时用

如果内存 16GB 以上且不打算用休眠,swap 可以给 4GB 到 8GB。分区时注意「安装启动引导器的设备」要选成硬盘本身,比如/dev/nvme0n1,不是/dev/nvme0n1p1。

# 安装完成后,在 Ubuntu 里检查 EFI 分区挂载情况 lsblk -f # 输出里应该能看到 /boot/efi 挂载在某个 FAT32 分区上

lsblk -f会列出所有块设备及其文件系统、挂载点。参数-f表示显示文件系统信息。确认 EFI 分区挂载正确,是双系统能正常引导的前提。

3.4 安装完成后第一次重启要看什么

安装结束提示重启时,拔掉 U 盘再按回车。如果一切正常,你会看到 GRUB 菜单,里面有 Ubuntu、Windows Boot Manager 和高级选项。选 Ubuntu 能进系统,选 Windows 能进 Windows,说明双系统引导成功。

如果直接进了 Windows,没有 GRUB 菜单,说明主板 NVRAM 里的启动顺序把 Windows 排在了前面。重启进 BIOS,把「ubuntu」这个启动项调到第一位。如果 BIOS 里根本没有 ubuntu 选项,说明 GRUB 没写进 EFI 分区,需要回 Ubuntu Live 环境用efibootmgr手动添加,或者用boot-repair修复。

4. 双系统引导出问题时的排查顺序

4.1 开机没有 GRUB 菜单直接进 Windows

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

原因:主板 UEFI 启动顺序里 Windows Boot Manager 优先级高于 ubuntu,或者 GRUB 没有正确写入 EFI 分区。

解决:先进 BIOS 看启动项列表,把 ubuntu 调到第一位。如果列表里没有 ubuntu,用 Ubuntu 安装 U 盘启动进 Live 环境,联网后安装并运行 boot-repair:

sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair boot-repair

运行后选「推荐修复」,它会自动检测 EFI 分区并重写 GRUB。参数说明:add-apt-repository添加第三方软件源,apt install安装 boot-repair。修复完成后重启,GRUB 菜单应该会出现。

4.2 GRUB 菜单里有 Ubuntu 但进不去系统

现象:能看到 GRUB,选 Ubuntu 后卡在黑屏、光标闪烁或者报error: unknown filesystem。

原因:根分区 UUID 变了,或者/etc/fstab里的挂载项和实际分区对不上。常见于安装时分区顺序调整过,或者后来动过分区表。

解决:在 GRUB 菜单按e编辑启动项,找到root=UUID=xxxx这一行,记下 UUID。进 Live 环境用blkid查看实际分区 UUID,对比是否一致。不一致就修改/etc/fstab和 GRUB 配置:

# 在 Live 环境挂载原系统根分区 sudo mount /dev/nvme0n1p5 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi # 查看实际 UUID blkid # 编辑 fstab sudo nano /mnt/etc/fstab

把 fstab 里的 UUID 改成blkid输出的实际值,保存后重启。如果 GRUB 配置里的 UUID 也不对,需要 chroot 进去更新:

sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt update-grub grub-install /dev/nvme0n1 exit

chroot把当前环境切换到原系统,update-grub重新生成 GRUB 配置,grub-install把 GRUB 写回 EFI 分区。注意/dev/nvme0n1要换成你的实际硬盘名。

4.3 Windows 快速启动和休眠导致的分区只读

现象:Ubuntu 里能挂载 Windows 分区,但只能读不能写,或者挂载时报错。

原因:Windows10 默认开启了快速启动,关机时其实把系统状态写进了休眠文件,NTFS 分区处于未完全卸载状态。Ubuntu 的 ntfs-3g 驱动检测到这种情况会以只读方式挂载,避免损坏文件系统。

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

提示:如果只是临时需要写入,可以在 Ubuntu 里用sudo mount -t ntfs-3g -o remove_hiberfile /dev/nvme0n1p3 /mnt强制挂载,但remove_hiberfile会删掉 Windows 的休眠文件,下次 Windows 启动会变慢。不建议频繁用。

4.4 时间不同步:Windows 和 Ubuntu 差 8 小时

现象:从 Ubuntu 重启进 Windows,系统时间慢了或快了 8 小时。

原因:Windows 把硬件时钟当本地时间,Ubuntu 默认当 UTC。两者对 RTC 的理解不一致。

解决:在 Ubuntu 里执行一条命令,让 Ubuntu 也把硬件时钟当本地时间:

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

参数说明:set-local-rtc 1表示使用本地时间写入 RTC,--adjust-system-clock立即调整系统时钟。执行后重启,两边时间就一致了。另一种做法是改 Windows 注册表让它用 UTC,但改 Ubuntu 更简单,副作用也小。

4.5 安装时看不到硬盘或分区

现象:Ubuntu 安装器走到分区那一步,列表里只有 U 盘,没有内置硬盘。

原因:BIOS 里 SATA 模式设成了 RAID,或者 Intel RST 快速存储技术开着,Linux 内核默认不识别。

解决:进 BIOS 把 SATA 模式从 RAID 改成 AHCI。注意:如果 Windows 是在 RAID 模式下装的,直接改 AHCI 会导致 Windows 蓝屏。正确做法是先在 Windows 里用安全模式切换,或者用bcdedit设置safeboot后再改。具体步骤是:管理员命令提示符执行bcdedit /set safeboot minimal,重启进 BIOS 改 AHCI,再进安全模式,执行bcdedit /deletevalue safeboot,正常重启。

5. 装完之后值得做的三件收尾事

5.1 用 efibootmgr 管理启动顺序而不是反复进 BIOS

装好双系统后,如果经常需要在 Windows 和 Ubuntu 之间切换,每次进 BIOS 改顺序很麻烦。Ubuntu 里可以用efibootmgr直接调整 NVRAM 启动项顺序:

# 查看当前启动项 sudo efibootmgr -v # 假设输出里 ubuntu 是 Boot0001,Windows 是 Boot0000 # 把 ubuntu 调到第一位 sudo efibootmgr -o 0001,0000

-v显示详细信息,包括每个启动项对应的 .efi 文件路径。-o后面跟启动项编号,按顺序排列。这样不用重启进 BIOS 就能改默认启动系统。如果哪天 GRUB 出问题,也可以用efibootmgr -b 0001 -B删除某个启动项,再重新添加。

5.2 给 Ubuntu 根分区留快照后悔药

双系统最怕的是 Ubuntu 这边折腾坏了,重装又得重新分区、重新配环境。如果根分区用的是 ext4,可以用 Timeshift 做系统快照。Timeshift 支持 RSYNC 和 BTRFS 两种模式,RSYNC 模式对 ext4 友好,快照存在另一个分区或外置硬盘上。

安装和配置:

sudo apt install timeshift sudo timeshift --create --comments "clean install" --tags D

--create创建快照,--comments加备注,--tags D标记为按需快照。第一次快照建议在刚装完系统、更新完驱动之后做,这样恢复出来就是一个干净可用的环境。之后每次大改之前手动跑一次,出问题进 Live 环境用 Timeshift 恢复,比重新安装省几个小时。

5.3 关闭 Ubuntu20.04 休眠功能避免 swap 分区被反复折腾

Ubuntu20.04 默认可能启用休眠,休眠时会把内存内容写入 swap 分区。如果 swap 给得不够大,休眠会失败;如果 swap 够大,每次休眠又会在硬盘上写入大量数据。对于双系统用户,更常见的做法是直接关掉休眠,用关机代替。

# 查看当前休眠状态 systemctl status sleep.target # 关闭休眠 sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

mask会把这些 target 链接到/dev/null,彻底禁用。参数说明:sleep.target是休眠相关 target 的入口,suspend.target是挂起,hibernate.target是休眠,hybrid-sleep.target是混合睡眠。全部 mask 掉之后,系统菜单里的休眠选项会消失,合盖默认也不挂起。如果之后想恢复,把mask换成unmask即可。

我自己的习惯是装完双系统先做一次 Timeshift 快照,再关休眠,最后用efibootmgr把 Ubuntu 设为默认启动。这样日常开发在 Ubuntu,需要 Windows 时重启选一下就行,两边互不干扰。希望帮到你。

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

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

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

立即咨询