最近连续帮两位朋友处理了 win11+Ubuntu22.04 双系统卸载 Ubuntu 的事,一个是因为装完发现网卡驱动有问题,连 WiFi 都费劲;另一个是装完三个月就没进过几次 Ubuntu,每次开机还要在 GRUB 菜单里多等好几秒,嫌麻烦。卸载这个事听起来简单——删掉 Linux 分区嘛——实际上坑一点不少:删完分区开机直接进 BIOS、grub rescue 乱跳、甚至把 EFI 分区整个删掉导致 Windows 也起不来,这些情况我都见过。
这篇文章就把整套流程完整过一遍,核心是三件事:识别并删除 Ubuntu 相关分区、清理 EFI 引导残留、修复 Windows 启动项并回收磁盘空间。所有操作都以 win11 + Ubuntu22.04 双系统、UEFI+GPT 引导模式为前提(Win11 基本都是这个模式),配合实操截图级讲解,尽量让你照着做就能安全下车。适合那些给了 Ubuntu 多次机会、最后决定放手的人,也适合装完双系统想给 C 盘腾空间的朋友。
1. 动手前先搞懂双系统的启动原理,免得误删引导
1.1 UEFI+GPT 下 Windows 和 Ubuntu 是怎么共存的
很多人一上来就直奔“删分区”这个动作,但恰恰是这一步最容易出乱子。要搞清楚为什么,得先花两分钟理解 UEFI 引导机制。
Win11 和 Ubuntu22.04 的双系统,主流安装方式是两块系统都装在同一块硬盘上,硬盘分区表是 GPT(GUID Partition Table),主板开启 UEFI 模式。在这个模式下,硬盘上会有一个很小但极其重要的分区,叫 EFI System Partition(ESP),一般是 FAT32 格式,容量通常在 100MB 到 300MB 之间。这个分区不装“系统”,只装“引导文件”。
Windows 的引导文件放在 ESP 里的 \EFI\Microsoft\Boot\bootmgfw.efi,Ubuntu 的引导文件放在 ESP 里的 \EFI\ubuntu\grubx64.efi 和 shimx64.efi。每次开机,主板 UEFI 固件会读取硬盘 ESP 分区,再根据 NVRAM 里记录的启动项列表,决定加载哪个操作系统的引导文件。
所以卸载 Ubuntu 的完整逻辑应该是三步:删除 Ubuntu 的数据分区(根分区、home、swap,它们在 Windows 下不显示盘符)、删除 ESP 里的 \EFI\ubuntu 文件夹、清理主板 NVRAM 里的 Ubuntu 启动项。只做其中一步,都会留下尾巴,最常见的后果就是 BIOS 启动菜单里残留一个“ubuntu”项,删不掉也进不去。
1.2 到底哪些分区属于 Ubuntu?删除前先认清楚
在动手之前,你要能清楚地说出:这快硬盘上,哪些分区是 Windows 的,哪些是 Ubuntu 的,哪些是不能动的保留分区。
我的习惯是先打开“磁盘管理”(Win11 下右键开始菜单 -> 磁盘管理,或者 Win+R 输入 diskmgmt.msc)。你大概率会看到类似这样的一排分区:第一个小分区是 EFI 系统分区(100MB 左右,显示为“EFI 系统分区”),接着是“恢复分区”(几百MB),然后是 C 盘,再往后就是几个没有盘符、文件系统列显示“未知”或“RAW”的分区——这些就是 Ubuntu 的地盘。
识别思路靠三点:一看大小,如果你装 Ubuntu 时给根分区分配了 80GB,那磁盘管理里那个 80GB 左右且没有盘符的“未知分区”就是它;二看顺序,Ubuntu 的分区一般排在 Windows 数据分区后面;三看类型,ext4 和 swap 在 Windows 磁盘管理里都识别不了,会显示“未知”。如果你装了双系统后还额外分了一个共享用的 NTFS 数据盘,那个会有盘符,别混了。
这里有一个很多人会犯的错:在磁盘管理里看到一个没有盘符的“恢复分区”或“OEM 分区”,以为它是 Ubuntu 的,结果把 Windows 恢复分区给删了。一般不碰这三样:EFI 分区、MSR 保留分区、Windows 恢复分区。宁可多确认几遍,也不要手快。
1.3 备份清单:别等删完分区才想起来
我能理解你卸载 Ubuntu 的心情,但请先花十分钟做两件事:备份和确认。
第一,Ubuntu 里如果有还没带走的数据,先抓紧拷到 Windows 分区或 U 盘里。我见过不止一次,有人卸到一半突然想起自己 python 脚本、论文实验数据还躺在 home 目录里,追悔莫及。第二,把 Windows C 盘里跟工作相关的文件做个快照,删除分区的操作本身不出问题则已,万一误选了分区,有备份就还有后悔药。第三,如果你的 Win11 开启了 BitLocker 设备加密,请提前确认你知道恢复密钥,或者干脆先临时关闭 BitLocker 再操作。因为修改引导时如果触发 BitLocker 检测,没有密钥就只能干瞪眼。
另外建议准备一个 Windows PE 启动 U 盘或 Windows 安装 U 盘。正常情况下,你按照后面步骤操作,不需要用到它;但万一中途断电、误删了 EFI 分区、或者开机直接黑屏,这个东西能救你。不要问“要不要准备”,等出问题再想准备,已经来不及了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 删除 Ubuntu 分区的两种实操方式
2.1 最省事:用 Windows 自带磁盘管理删分区
如果你不打算动 EFI 引导残留,只是想先把分区删掉,Windows 自带的磁盘管理就够了。
打开磁盘管理后,找到目标分区,对每个没有盘符、显示为“未知”的 Ubuntu 分区逐一右键,选中“删除卷”(Win11 可能是“删除卷”,老版本显示“删除分区”)。系统会弹窗警告“此操作会删除分区中的所有数据”,确认无误后点“是”。重复这个动作,把 Ubuntu 的根分区、swap、home 全删掉。删完之后磁盘管理里会出现一大块或几块“未分配”空间。
但这里必须说清楚:磁盘管理只能删“卷”,不能浏览 ESP 分区的文件,也无法清理 UEFI 启动项。所以用它删完分区后,Ubuntu 的引导残留还留在那里——下次开机,主板 NVRAM 里还有 Ubuntu 启动项,它指向 ESP 里的 \EFI\ubuntu 文件夹,而这个文件夹还没被删,GRUB 仍然会尝试加载,只是根分区没了,多半会卡在一个 grub rescue 或直接黑屏。所以,磁盘管理适合拆解分区,清理引导还需要下一步。
2.2 更彻底:用 DiskGenius 清理 EFI 里的 Ubuntu 残留
既然要卸载干净,我更推荐直接用 DiskGenius 一步到位。工具本身免费版就够用,官网下载绿色版,解压后以管理员身份运行。它能直接识别 ext4 分区,浏览 ESP 分区里的文件,还能调整分区,比你来回切换工具省事得多。
操作步骤是这样的:
第一步,在 DiskGenius 主界面找到磁盘上那些红色的、文件系统显示为“Linux”的分区(DiskGenius 能识别 ext4,所以会显示 Linux 文件系统)。逐个右键 -> 删除分区 -> 保存更改。这里我会把每一个要删的分区先截图记下大小,删完后心里有数。
第二步,找到磁盘最前面那个 EFI 系统分区(FAT32,卷标可能是 ESP 或没有任何卷标),选中它,然后在工具栏点“浏览文件”。进入 EFI 目录,你会同时看到 Microsoft 和 ubuntu 两个文件夹。Microsoft 是 Windows 的引导,绝对不能动;ubuntu 是 Ubuntu 的 GRUB 引导,右键删除即可。
第三步,删除之后再回到主界面,能看到未分配空间变大了。如果 BIOS 里还有 ubuntu 启动项残留,重启后进 BIOS 的启动菜单,把 ubuntu 那条删掉,或将 Windows Boot Manager 设为第一项。
这里一定要强调:别手滑把整个 ESP 分区删了。ESP 分区是 Windows 和 Ubuntu 共用的,你删了整个分区等于把 Windows 引导也一并带走。本文拆解的场景里,只需要删 ESP 里的 ubuntu 文件夹,不是删分区本身。如果已经误删了,别慌,下面第 3.3 节有恢复办法。
2.3 删完之后怎么把空间还给 C 盘
删干净之后,磁盘上会出现一块或多块“未分配”空间,接下来就是把这些空间利用起来。
最简单的情况:你当初装 Ubuntu 时,把它的分区直接安排在 C 盘右侧,且中间没有 Windows 恢复分区或 EFI 分区相隔,那么磁盘管理里右键 C 盘 -> 扩展卷,就可以把未分配空间并入 C 盘。
但实际情况经常不是这样。很多 OEM 电脑在 C 盘右边还有一个恢复分区,它挡住了未分配空间和 C 盘的“无缝连接”,扩展卷按钮是灰色的。这时候还是用 DiskGenius,右键 C 盘 -> 调整分区大小,拖动滑块把后面的空间合并进来。这类操作原理上是先移动数据再扩容,有一定耗时和风险,建议在磁盘管理里已经把 Ubuntu 分区删成未分配空间之后再做,并且操作前确保电脑接电、不要断电。
如果你不想动 C 盘,也可以直接把这块空间新建为一个普通数据分区(D 盘甚至 E 盘),右键未分配空间 -> 新建分区,文件系统选 NTFS,其他默认即可。反正对大多数人来说,把 Ubuntu 留下的空间变成普通文件夹意义上的数据盘,比强行扩 C 盘要省心得多。
3. 修复 Windows 引导,这是卸载双系统最核心的一步
3.1 为什么删完分区会出现 “No bootable device”
很多人删完分区重启,看到屏幕上出现 No bootable device 或者直接进入 BIOS 设置界面,第一反应是“Windows 是不是被我删了”。其实 Windows 的系统和数据大概率都还在,只是引导链路断了。
原因主要有两类。第一类:主板的 NVRAM 启动项列表里还留着“ubuntu”这个启动项,而它的引导文件 \EFI\ubuntu\grubx64.efi 被你删掉了,或者数据分区里的 /boot 没了,GRUB 加载失败,主板找不到可用的启动文件,于是跑回 BIOS 设置界面。第二类:你删了 ESP 整个分区,导致 Windows Boot Manager 的 bootmgfw.efi 也没了,主板彻底找不到任何引导项。
这两种情况本质上是引导文件缺失或启动项顺序错乱,Windows 系统本身并没有损伤。谁要跟你说“系统损坏,重装吧”,你先别信,按下面几步修引导,大部分都能救回来。
3.2 能进系统时:直接清理 Ubuntu 启动项
有一种幸运的情况:你删了 Ubuntu 分区,重启之后 Windows 居然正常进去了,只是 BIOS 里还有残留的 ubuntu 项,或者系统启动时还会多一道选择。
这种情况下处理起来非常简单。在 Win11 下按 Win+R,输入 msconfig,打开系统配置,切到“引导”选项卡,看看列表里除了“Windows 11”之外有没有多余的 Ubuntu 项。有的话选中它点删除。不过说实话,msconfig 里一般不会显示 Ubuntu,因为那是 BCD 层面的 Windows 引导项管理界面。
更彻底一点的做法是用命令行看 UEFI 固件启动项。管理员身份打开命令提示符,执行:
bash复制bcdedit /enum firmware
输出里会列出固件启动项,包括 Windows Boot Manager 和可能残留的 ubuntu。找到 ubuntu 那条记录对应的 identifier(一串类似 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 的 GUID),然后执行:
bash复制bcdedit /delete {那个GUID}
注意这条命令删的是 UEFI NVRAM 启动项,不是删除文件。如果命令提示无法删除,也可以直接进 BIOS 的启动菜单里删除。微星、华硕这些主板的 Boot 菜单里,通常可以直接把 ubuntu 这项删掉或禁用,操作路径一般是 Settings -> Boot -> 启动项列表,具体名称不同主板略有差异。
3.3 进不了系统时:用 PE / 安装盘重建引导
如果重启后黑屏、报错、或者无限进 BIOS,这时候你需要用到前面准备的 Windows 安装 U 盘或 PE U 盘。
以 Windows 安装 U 盘为例:从 U 盘启动,进入安装界面后不要点“现在安装”,点左下角“修复计算机”,依次选“疑难解答”->“高级选项”->“命令提示符”。如果你用的是微 PE、优启通这类 PE,直接进 PE 桌面打开命令提示符即可。
打开命令行后,按顺序执行:
bash复制diskpart
list disk
select disk 0
list volume
exit
list volume 会列出所有卷,你要找到两个关键卷:一个是 Windows 系统盘,卷标一般是“Windows”或“系统”,记下它的盘符(这里假设是 C:);另一个是 ESP 分区,文件系统是 FAT32,大小通常 100MB-300MB,没有盘符或卷标,记下它的盘符,如果有盘符就直接用,如果没有就用 assign letter=S: 给它分配一个。
确认好之后,执行 EFI 引导重建命令,这是整个修复过程的核心:
bash复制bootrec /fixmbr
bootrec /fixboot
bcdboot C:\Windows /s S: /f UEFI
这里重点解释一下这三条命令的作用。bootrec /fixmbr 是修复传统 MBR 引导记录的,在纯 UEFI 模式下它不解决根本问题,但执行一遍没坏处。bootrec /fixboot 修复引导区。真正关键的是 bcdboot C:\Windows /s S: /f UEFI,它会把 Windows 的完整引导文件(\EFI\Microsoft\Boot 整个目录)重新写入 S 盘(也就是 ESP 分区),并在 NVRAM 里重建 Windows Boot Manager 启动项。
如果命令执行成功,会提示“已成功创建启动文件”。然后重启,进 BIOS 设置把 Windows Boot Manager 设为第一启动项,保存退出,基本就能正常进系统了。
3.4 还有一种思路:从 Ubuntu 内部撤销引导
上面的修复流程都是在 Windows 侧执行的。如果你在删分区之前,还能正常进入 Ubuntu,其实还有一个偏门顺序:先进入 Ubuntu,把 GRUB 从 EFI 里移除,再重启让系统直接回到 Windows。
具体命令是:
bash复制sudo apt purge grub-efi-amd64
执行完它会把 GRUB 相关的 efi 文件从 ESP 里移除,重启后主板会尝试下一个启动项,正常情况下会落到 Windows Boot Manager。这个方法的好处是让你在删数据分区之前就把引导切回 Windows,但坏处是如果 Ubuntu 里执行命令时出现意外,或者 NVRAM 里的启动项顺序本身有问题,可能直接卡住。所以个人意见:这个方法可以作为补充思路了解,真正要卸载,还是建议回到 Windows 侧删除分区和清理 ESP 的路径,流程更可控。
4. 常见问题与填坑实录
4.1 grub rescue 终端怎么处理
删完 Ubuntu 分区后,开机卡在 grub rescue> 提示符,这是网上被问烂的经典场景。原因一句话总结:GRUB 引导的文件找不到了,但 ESP 里的 ubuntu 引导项还活着,电脑每次开机都会先尝试加载它。
网上很多教程教你敲 ls、set root=、set prefix= 这些命令手动指路,说实话在 UEFI 模式下意义不大,而且很费眼力。我的建议是直接进 PE,用 bcdboot 把 Windows 引导重建一遍,然后把 ESP 里的 ubuntu 文件夹删掉,重启一次就干净了。与其在 grub rescue 里挣扎,不如花五分钟从根本解决问题。
4.2 删完分区发现开机直接进 BIOS
这种情况通常分两种:一种是 BIOS 里还能看到 ubuntu 启动项,只是加载失败;另一种是 BIOS 启动顺序里已经没有可启动项了。前者在 BIOS 启动菜单里把 ubuntu 项删掉、把 Windows Boot Manager 设为第一就行;后者说明 ESP 里的 Windows 引导文件已经缺失或被破坏了,走 3.3 节的 bcdboot 重建流程,百分之八九十能解决。
如果 bcdboot 执行时报“找不到指定的文件”之类错误,先确认你是不是把 ESP 全部删掉了——如果 ESP 分区还在,文件系统还是 FAT32,那重建基本没问题;如果分区整个消失了,需要先重建 ESP 分区,参考下面 4.3。
4.3 EFI 分区整个没了怎么办
误删整个 ESP 分区这事,虽然我强烈希望大家避开,但真发生了也不要慌。Windows 数据分区(C 盘)还在,数据没丢,只是引导没了。
处理方法:在 PE 里打开 DiskGenius,在磁盘开头(通常是第一个分区的位置)右键 -> 建立 ESP 分区,分区大小设 300MB 左右,文件系统 FAT32,保存更改。然后用 diskpart 给它分配一个盘符,再执行 bcdboot C:\Windows /s S: /f UEFI 把引导写进去。写完之后重启进 BIOS,把 Windows Boot Manager 设为第一启动项。
恢复出来的 ESP 分区只要文件系统是 FAT32 且能被 UEFI 识别,位置在不在磁盘最前面一般不影响,Win11 系统盘本身能正常加载。这个流程我实测过,能救回来,但操作要稳,一步步来。
4.4 卸载后 Windows 时间差了 8 小时
这个问题不致命,但很烦。卸载 Ubuntu 后,每次开机 Windows 时间都不对,改了重启又变回去。原因是 Linux 和 Windows 对硬件时钟的解读方式不一样:Windows 默认把主板 RTC 时间当成“本地时间”,Ubuntu 默认把 RTC 时间当成“UTC 时间”。
双系统共存时,Ubuntu 会把硬件时钟调成 UTC 再换算成本地时间,切换到 Windows 时它又按“RTC 就是本地时间”去读,于是你看到的时间正好差 8 个小时。卸载完 Ubuntu 后,如果时间不对,在 Win11 里用管理员命令提示符执行:
bash复制reg add "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /f
这个命令告诉 Windows 把硬件时钟当 UTC 处理,和之前 Ubuntu 的处理方式保持一致,重启后时间就正常了。如果执行完还是不对,去 Windows 设置里手动同步一次时间,一般都能解决。
4.5 删除分区提示“资源正在使用”或无法删除
Windows 磁盘管理有时会拒绝删除某个未知分区,提示“删除卷时出错”或“正在使用”。常见原因是那个分区上有页面文件、休眠文件,或者系统只是“觉得”它在使用中。
解决办法:管理员身份打开命令提示符,用 diskpart 强制删除:
bash复制diskpart
list disk
select disk 0
list partition
select partition N
delete partition override
其中 N 是你要删的分区编号。override 参数会跳过检查,强制删除分区。如果这样还不行,就在 PE 环境下用 DiskGenius 删除,PE 下基本没有系统占用问题,任何分区都能删。
4.6 不想折腾的话,直接上 WSL2 或许是更好的选择
最后说句真心话:如果你装 Ubuntu 只是为了跑跑命令、编译点小项目、用 Docker 容器,或者写写 Python 脚本,那真的没必要把整个系统装成双系统。Win11 自带的 WSL2 就能做这些事,安装 Ubuntu22.04 的发行版也只需要一条命令的事,不占独立分区,不用处理引导,卸载 Windows 里直接删除发行版就算完事。
WSL2 这几年已经完善到能做很多真实开发工作了,连 Docker Desktop 都可以直接集成,日常绝对够用。本文虽然讲的是双系统卸载,但我希望你以此为契机想一想:很多时候折腾双系统,并不是需求本身需要,而是我们对“Linux 环境”有一种实体化的执念。如果只是要一个用户态 Linux,WSL2 真的比实体机双系统舒服太多。
一些个人体会
我处理卸载双系统的次数不算少,回头看整个过程,真正让人翻车的点从来不在“删分区”本身,而在于对引导链路的理解。装的时候你依赖 GRUB 来引导 Windows,卸的时候又容易把 Windows 的引导一起误伤,这中间的平衡点就是那个 ESP 分区。删之前花十分钟搞懂 UEFI 引导机制,比出问题之后满网找教程快得多。
我自己在给机器动刀前,习惯先把 ESP 里的 EFI 文件夹整个复制到 U 盘里存一份,万一 Windows 引导出问题,直接拷贝回去就能恢复。这个步骤看着多余,但就是这一份备份,救过我很多次急。另外,我认为有条件的话,双系统最好把 Ubuntu 装到独立物理盘上,和 Windows 盘彻底分开,卸载时互不干扰,连引导修复都省了。
最后一句:动分区之前,把重要数据备份到外部存储上,别嫌麻烦。这可能是整个卸载流程里最便宜、也最值得的一项保险。
