尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Ubuntu与Windows双系统卸载指南:从分区识别到引导修复全流程

发布时间:2026/9/17 11:53:19

资讯中心
01
ARTICLE

Ubuntu与Windows双系统卸载指南:从分区识别到引导修复全流程

Ubuntu与Windows双系统卸载指南:从分区识别到引导修复全流程
装双系统的时候大多数人压根没想过以后还要卸。装的时候跟着教程点“下一步”分区全靠安装器自动分配等哪天真要退出 Ubuntu 了打开 Windows 磁盘管理看到一堆无盘符的分区才第一次认真琢磨一个问题哪个分区是我的 Ubuntu哪个是 Windows 恢复分区哪个删了电脑就再也开不了机我处理过的双系统卸载问题里九成以上翻车点都出在“删之前的判断”上而不是删除这个动作本身。有人把 Windows 主分区当成 Ubuntu 分区格式化有人把两块系统共用的 EFI 引导分区整个清空还有人删完分区后开机直接进 grub rescue连系统都进不去。这篇文章想把卸载前最重要的一步——磁盘分区判断——拆开揉碎讲清楚同时带上完整的卸载、引导修复和避坑流程给所有正在用 Ubuntu Windows 双系统、准备腾出磁盘空间的读者一份能直接照做的参考。1. 动手删除前先想清楚你属于哪种卸载场景很多人一上来就翻教程找命令忽略了第一步应该是判断自己的实际情况。同样是“卸载 Ubuntu 双系统”不同场景下要做的事情、承担的风险完全是两码事。1.1 临时尝鲜型系统装了大半年进过一次这种场景最轻松也是大多数人的情况。当时抱着试试看的心态装了 Ubuntu用了半天就切回 Windows之后开机一直停留在这个 Ubuntu 启动菜单上。这种双系统安装时一般选了安装器里的“与 Windows 共存”选项Ubuntu 会自动在 Windows 所在磁盘的空闲区域里划分空间不需要手动指定 /boot、/home 这些分区所以整个磁盘上通常就一个根分区加一个 swap 分区。这种场景下你基本不需要担心数据迁移直接按后面第 4、5 章的流程走就行。最大的成本反而是心理上的总觉得那个 ext4 分区看着陌生不敢确认它就是 Ubuntu。不过别怕第 2 章就是解决这个问题的。1.2 开发迁移型Linux 环境用不上了如果你的 Ubuntu 是拿来正经开发用的里面跑过 Docker、数据库、Python 虚拟环境甚至部署过个人网站那情况就复杂了。开发迁移型场景有隐藏的数据资产/home 下可能有 SSH 密钥、shell 配置、代码仓库/var/lib/docker 里可能有没来得及导出的镜像和容器数据/opt 下可能有手动安装的软件和授权文件。这些数据藏在不同的分区或目录里如果当初安装时选择了手动分区可能还把 /home 单独划了一个分区卸载时必须同时识别多个分区而不是只删一个根分区。这种场景卸载前我给的建议是先在 Ubuntu 里把自己要的东西整理打包放到 Windows 能访问的盘符或移动硬盘上。别嫌麻烦一旦分区删了ext4 文件系统的恢复成本可比 NTFS 高得多普通用户基本只能靠专业工具扫描成功率还不高。等数据确认安全了再进入分区删除阶段。1.3 系统异常型Ubuntu 引导坏了Windows 也进不去这种场景一般是反复调整系统、升级内核出问题或者有人在删除 Linux 分区时没处理引导导致开机卡在 grub rescue 界面Windows 也没法加载。这种情况下你既进不了 Ubuntu也进不了 Windows没法用可视化的磁盘管理工具去操作。处理方式和前两种不一样需要准备一个 Ubuntu 启动 U 盘就是当年装系统的那个安装盘从 U 盘引导进入“试用 Ubuntu”环境在 Live 系统里完成分区识别、删除和引导修复。好消息是命令行环境下的判断方法和正常系统完全一样甚至更安全因为你在 Live 环境里能挂载任意分区来确认身份不用担心正在运行的系统锁定分区。我把三种场景说清楚是想强调一件事这类操作没有“统一答案”但判断分区的方法是完全通用的。下面进入本文的核心部分。2. 识别 Ubuntu 分区的四条链路从表象到铁证判断分区的唯一安全做法是“多源交叉验证”任何单条命令的结果都只能作为参考至少组合三条链路确认才能动手删除。2.1 lsblk先给磁盘画个全局图在 Ubuntu 终端里执行sudo lsblk -flsblk是列出块设备的命令-f参数会把文件系统类型、UUID、挂载点一并列出来。这是整个判断过程的地基。拿一台典型的 UEFI 双系统机器做例子输出大概长这样NAME FSTYPE LABEL UUID MOUNTPOINT nvme0n1 ├─nvme0n1p1 vfat EFI 67E3-17ED /boot/efi ├─nvme0n1p2 ntfs A8A4C6E8A4C6B8B1 ├─nvme0n1p3 ext4 12345678-1234-1234-1234-123456789abc / ├─nvme0n1p4 swap 87654321-4321-4321-4321-4321fedcba98 [SWAP] └─nvme0n1p5 ntfs 9C9C9C9C9C9C9C9C只要你是从 Ubuntu 系统启动的这个输出几乎等于直接告诉你答案MOUNTPOINT是/的就是根分区[SWAP]是交换分区/boot/efi是 EFI 引导分区。文件系统是ntfs的基本上就是 Windows 的分区。如果你正处于 Live 系统环境所有分区都没有挂载点那也没关系。先用这条命令建立磁盘的全局结构记住每个分区的编号、大小、文件系统类型然后继续用下面的链路二级验证。2.2 blkid 与文件系统指纹用特征锁定身份文件系统类型是分区的“指纹”几乎没有误判空间文件系统类型归属判断说明ext4 / ext3 / xfs / btrfs几乎肯定是 LinuxUbuntu 默认根分区是 ext4部分新版支持 btrfsswap一定是 Linux 交换分区指纹最独特不可能认错vfat / FAT32大概率是 EFI 引导分区也可能是 U 盘需要结合位置和容量判断ntfs一定是 Windows 分区除非你手动把数据盘格式化成 NTFS 给两个系统共用exFAT一般是移动硬盘或数据盘双系统里较少作为系统分区出现除了文件系统还要看分区的 LABEL卷标。Windows 的恢复分区卷标通常叫Windows Recovery Environment或WINRETOOLSEFI 分区卷标一般叫EFI这些信息会在lsblk -f或blkid输出里直接显示。而 Ubuntu 分区一般没有自定义卷标显示为空或Linux filesystem。如果你想让证据更扎实一点用 gdisk 或 parted 也能看到分区类型代码。GPT 分区表里 Linux 文件系统对应代码8300Linux swap 对应8200Windows 对应0700。这些代码在sudo gdisk -l /dev/nvme0n1输出里能看到比单纯看文件系统类型更权威。2.3 挂载点与内容终审手段前面两条链路已经能判断出个大概了但距离“敢删”还差一步内容确认。这是最直接、最不会出错的终审方法。找一块你怀疑是 Ubuntu 根分区的设备比如刚才例子里的 nvme0n1p3临时挂载一下sudo mkdir -p /mnt/check sudo mount /dev/nvme0n1p3 /mnt/check ls /mnt/check如果看到etc、usr、home、var、dev、proc、boot这一套典型的 Linux 根目录结构那基本就可以断定这块分区就是 Ubuntu 的根分区。如果看到的是Windows、Program Files、Users、ProgramData那就是 Windows 主分区。如果看到的是Recovery目录和巨大的Winre.wim文件那就是 Windows 恢复分区。挂载完确认后记得卸载干净sudo umount /mnt/check还有一个小技巧Linux 的 swap 分区不能用上述方式挂载查看内容但它的指纹TYPEswap已经足够判断。另外现在较新版本的 Ubuntu 默认可能用 swapfile 文件而并非独立分区所以你没找到 swap 分区也正常不用觉得奇怪。2.4 fstab 与 efibootmgr辅助证据补全最后两条辅助证据用来回答“哪些分区是这个 Ubuntu 系统正在依赖的”。/etc/fstab记录着系统启动时自动挂载的分区列表里面写的都是 UUIDcat /etc/fstab把输出里的 UUID 和blkid得到的 UUID 对照就能知道系统依赖哪些分区。正常 Ubuntu 双系统里fstab 里一般只有根分区、EFI 分区的 UUID没有 Windows 分区。efibootmgr则是 UEFI 启动项管理器efibootmgr -v输出里能看到 Ubuntu 启动条目ubuntu指向哪个硬盘和分区号。这有助于确认 GRUB 是装在哪个物理磁盘上的尤其是你有多块硬盘时特别有用。到这里四条链路都过了一遍lsblk 看结构、文件系统看指纹、挂载内容看实锤、fstab/efibootmgr 看依赖关系。至少三条都指向同一个分区再进入卸载流程心里就有底了。3. 三种双系统布局下该怎么读分区信息上面讲的是方法这一章聊实战。不同安装年代、不同安装方式的机器分区布局差异很大判断的重点也要跟着变。3.1 传统 BIOS MBR 布局重点盯扩展分区和逻辑分区如果是五六年前装的双系统或者是用 Legacy 模式安装的磁盘还是 MBR主引导记录分区表。这种布局最大的特点是要么没有 EFI 分区要么根本没有独立的引导分区GRUB 直接写在磁盘开头的 MBR 区域里。一个典型的 MBR 双系统布局长这样Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 102402047 102400000 48.8G 7 HPFS/NTFS/exFAT /dev/sda2 102402048 409602047 307200000 146.5G 5 Extended /dev/sda5 102404096 204802047 102397952 48.8G 83 Linux /dev/sda6 204804096 409602047 204797952 97.7G 83 Linux注意看里面的门道sda1 是 Windows 主分区NTFS带启动标志sda2 是扩展分区sda5 和 sda6 是挂在扩展分区下面的逻辑分区文件系统是 Linux。这种结构下Ubuntu 根分区和 /home 分区往往是 sda5、sda6 这种逻辑分区。MBR 布局下有几个容易忽略的点扩展分区本身不能直接删只能删除它内部的逻辑分区。等你把 sda5、sda6 删干净sda2 扩展分区里的空间就变成空闲了但这块空间 Windows 的磁盘管理不一定能直接识别需要后续用分区工具合并。删除逻辑分区时不要手滑把整个 sda2 扩展分区标记删掉否则 Windows 主分区的可用空间反而会缩水。MBR 时代的引导修复依靠的是bootrec /fixmbr重写主引导记录这个思路和第 5 章 UEFI 的修复方式完全不同。3.2 UEFI GPT 布局ESP 分区要动但不能全删现在的新电脑装双系统基本都是 UEFI GPT。这种布局比 MBR 规整得多典型结构如下nvme0n1 ├─nvme0n1p1 vfat EFI 系统分区 (256M) ← 两个系统共用 ├─nvme0n1p2 微软保留分区 MSR (16M) ├─nvme0n1p3 ntfs Windows C盘 (200G) ├─nvme0n1p4 ntfs Windows 恢复分区 (1G) ├─nvme0n1p5 ext4 Ubuntu 根分区 (120G) └─nvme0n1p6 swap Linux swap (8G)重点说 ESPEFI System Partition。这块 vfat 格式的小分区通常 100M~512M是 UEFI 固件查找引导文件的地方Windows 的引导文件在EFI\Microsoft\Boot\bootmgfw.efiUbuntu 的 GRUB 文件在EFI\ubuntu\shimx64.efi和grubx64.efi。两个系统的引导文件都放在同一个 ESP 分区里这个特性决定了你在卸载 Ubuntu 时对 ESP 的处理策略不要删整个分区只需要删掉里面的EFI/ubuntu目录。Windows 的引导文件还躺在那里你需要留着它来启动 Windows。很多人在这一步出问题在 Windows 磁盘管理里看到这个没有盘符的 FAT32 分区又通过搜索引擎看到“卸载 Ubuntu 要删掉系统分区”结果把整个 ESP 分区连根拔起Windows 的引导文件也跟着没了开机直接黑屏。所以记住UEFI 时代删的是分区但删的是 Ubuntu 的根分区和 swap 分区ESP 分区这个“公共区域”只能做定向清理。3.3 多硬盘场景别被盘符顺序骗了磁盘多了判断难度成倍增加。很多人装 Ubuntu 时会特意准备一块空硬盘把 Ubuntu 独立装在一块盘上Windows 在另一块。这种部署的识别关键是先搞清楚系统里的每个盘分别是什么。拿一台实际机器为例nvme0n1 1TB Windows英睿达SSD ├─nvme0n1p1 EFI ├─nvme0n1p2 MSR ├─nvme0n1p3 Windows (NTFS) └─nvme0n1p4 恢复分区 sda 512G 老希捷机械盘 ├─sda1 ext4 Ubuntu根分区 ├─sda2 swap └─sda3 ntfs 共用数据盘出错点在于很多人习惯性认为nvme0n1才是系统盘sda是数据盘但 Ubuntu 恰恰装在 sda 这块机械盘上。如果你只记住了“第一块盘是系统盘”然后就动 nvme0n1 里的分区后果很严重。多硬盘场景下的建议是先同时执行lsblk和lsblk -d -o NAME,MODEL,SIZE把盘符和硬盘型号对应起来再用smartctl或系统设置里的磁盘工具查一下各盘的容量使用情况最后再决定删哪块盘的哪些分区。千万不要凭上次记忆里的“sda5 就是 Ubuntu”直接开干盘符顺序在换了启动项顺序、插拔了硬盘之后是有可能变的而 UUID 和文件系统指纹不会变。4. 确认无误后的卸载实操分区、引导、回收空间判断清楚了就到了动手环节。我推荐的操作顺序是先在 Ubuntu 里删掉自己的分区再清理 EFI 引导目录最后进 Windows 修复引导并扩展磁盘空间。原因很简单Ubuntu 这个 Linux 系统能识别所有分区也能安全删除 ext4、swap 这些 Linux 分区而 Windows 磁盘管理面对 ext4 这种无盘符分区时只能显示为“未知”操作起来心里没底。所以“用 Ubuntu 处理 Linux 分区用 Windows 处理 Windows 回收”这是最顺手的分工。4.1 在 Ubuntu 里用 GParted 删除分区GParted 是图形化分区工具比 fdisk 直观太多推荐安装使用sudo apt update sudo apt install gparted sudo gparted打开后顶部下拉框先选择正确的磁盘。如果你有多个磁盘这里选择范围很大务必和 lsblk 的输出对照好选定目标盘后再操作。在图形界面里你会看到各个分区以色块呈现ext4 通常是绿色swap 是黄色ntfs 偏灰蓝vfat 是淡绿色。找到你已确认为 Ubuntu 的根分区和 swap 分区右键单击选择“删除”然后点击工具栏上的“应用所有操作”。这一步完成后这些分区的空间会变成“未分配”。删除过程中有几个细节要提醒不要动/boot/efi挂载的那个分区。在 GParted 里它显示为 vfat 格式挂载点是 /boot/efi对应磁盘上的 ESP 分区。这个分区保留原样。如果当初安装时单独分了/home也要一并删除千万别只删根分区留着 /home否则那块空间永远无法回收。GParted 的删除只是移除分区表里的记录不会像格式化那样写入磁盘每个扇区所以万一你删错了立即停止其他操作还有恢复的可能性。但如果后续又创建了新分区或写入了数据恢复概率就会大幅下降。4.2 EFI 引导分区清理目录而不是删除分区这一步是 UEFI 双系统特有的。进入 Ubuntu 终端或者 Live 环境挂载 ESP 分区后删除 Ubuntu 引导目录sudo mkdir -p /mnt/efi sudo mount /dev/nvme0n1p1 /mnt/efi # 换成你自己的 ESP 分区设备名 ls /mnt/efi/EFI正常情况下你会看到至少两个目录ubuntu和Microsoft。确认ubuntu目录里确实是 grub 那套文件后删除它sudo rm -rf /mnt/efi/EFI/ubuntu sync sudo umount /mnt/efisync命令是为了把缓存里的写入落盘避免卸载挂载点后文件还没真正写完。这一步执行完UEFI 固件里那个“Ubuntu”启动项虽然可能还残留着但点进去会找不到引导文件最终会跳到 Windows 或者显示错误。残留启动项的清理在 5.3 节里会讲。如果你是在 MBR 传统模式下装的系统不需要做这一步但需要用bootrec /fixmbr把 GRUB 从主引导记录里清除这个流程放第 5 章。4.3 Windows 侧空间回收与引导修复分区删除完成后先别急着扩展 C 盘。因为此时引导可能还不正常如果贸然重启进 Windows 失败后面修引导又得重来。正确顺序是先修复引导确认能稳定进入 Windows再在 Windows 磁盘管理里做空间扩展。重启电脑前如果 BIOS/UEFI 的启动顺序还保留着 Ubuntu 项你可以直接进入 UEFI 设置页面把 Windows Boot Manager 调整到第一优先位保存退出。如果开机时是 GRUB 菜单按方向键如果能直接选 Windows也可以先试试绕过 GRUB。总之先保证 Windows 能启动。5. 卸载后引导修复从黑屏到登录 Windows 的完整流程这一章是所有卸载过程中最容易出意外的环节。删分区时你可能很爽但重启后的黑屏会立刻把你拉回现实。这里分两代引导方式讲清楚。5.1 MBR 和 UEFI 两种引导链路各自的修复逻辑先理解 MBR 模式的链条。传统 BIOS 启动流程是BIOS → 读取 MBR主引导记录→ 如果是 GRUB加载 GRUB 核心 → GRUB 菜单 → 等用户选择 Windows 后用链式引导把控制权交给 Windows 分区上的 bootmgr → 启动 Windows。如果你在 MBR 模式下用 GParted 删除了 Ubuntu 分区但 MBR 里的 GRUB 代码没有被覆盖开机就会直接进入grub rescue提示符因为 GRUB 找不到它的配置文件所在的根分区了。grub rescue界面能用ls看分区但不一定能正常加载任何系统所以不用试图在 rescue 里打命令直接准备 Windows 安装 U 盘去修复 MBR 才是正途。UEFI 模式的链条则是UEFI 固件 → 直接读取 ESP 分区EFI\Microsoft\Boot\bootmgfw.efi→ 加载 Windows。只要 ESP 分区完好、目录结构还在Windows 就能启动。所以 UEFI 模式下你只要没动 ESP 分区理论上格式化掉 ext4 根分区也不影响 Windows 启动。如果开机显示“An operating system wasnt found”或者进入 grub rescue那就说明 ESP 分区有损伤或启动项顺序被搞乱了。5.2 用 Windows 安装 U 盘执行修复命令两种模式下的修复操作都在 Windows 安装 U 盘的“修复计算机”环境里执行。步骤如下用 Windows 安装盘启动电脑选择语言后点左下角的“修复计算机”。依次进入“疑难解答” → “高级选项” → “命令提示符”。在弹出的 cmd 窗口里执行命令。MBR 传统模式bootrec /fixmbr bootrec /fixboot bootrec /rebuildbcd第一条把 Windows 引导代码重写到 MBR覆盖掉 GRUB第二条重写 Windows 系统分区上的引导扇区第三条重建启动配置数据BCD。执行完后退出重启电脑应该能直接进 Windows。UEFI 模式UEFI 里fixmbr没有实际意义GPT 磁盘不用 MBR重点是重建 Windows 在 ESP 分区里的引导文件。常见做法是用 diskpart 给 ESP 分区分配盘符后再用 bcdboot 重写diskpart list disk select disk 0 list partition select partition 1 assign letterS exit bcdboot C:\Windows /s S: /f ALL里面的C:是 Windows 系统分区盘符S:是 ESP 分区的临时盘符。/f ALL表示写入 UEFI 和 BIOS 两种引导文件稳妥起见建议都写。bcdboot 会检查系统目录接管之前的 GRUB 条目重建出EFI\Microsoft\Boot结构。执行完exit退出重启前记得拔掉 U 盘。这里有个常见报错bootrec 执行时提示“拒绝访问”或“找不到元素”。这种情况一般是 ESP 分区没有盘符或者盘符被占用按上面的 diskpart 流程先分配盘符再执行就不会遇到。5.3 验证修复结果与残留启动项清理重启进入 Windows 后打开磁盘管理右键开始菜单 → 磁盘管理确认 C 盘能正常显示之前删除 Ubuntu 留下的未分配空间也在。此时右键 C 盘 → “扩展卷”把未分配空间并入 C 盘。如果“扩展卷”选项是灰色的说明 C 盘和未分配空间中间隔着恢复分区或其他分区Windows 自身的磁盘管理扩展不了需要借助第三方分区工具比如 DiskGenius 的 Windows 版移动分区边界或者干脆跳过扩展保留未分配空间用于后续其他用途。启动项清理也不能忘。UEFI 机器上如果 BIOS 启动项里还残留 Ubuntu通常显示为ubuntu字样需要在 Windows 管理员命令行里清理bcdedit /set {fwbootmgr} displayorder {bootmgr} /remove这条命令的作用是调整固件启动项列表把重复的 Ubuntu 条目从显示顺序里移除。不同机器差异较大建议进入 UEFI 设置界面直接在可视化菜单里删除对应启动项比命令行稳妥。6. 几个容易翻车的隐藏细节恢复分区、盘符漂移与备份最后分享几个在真实案例里反复出现的翻车点每一条都是有人付出过代价换来的。6.1 别把 Windows 恢复分区当成 Ubuntu 分区Windows 10/11 默认安装会在 EFI 分区后面建一个约 1GB 的恢复分区卷标是Windows Recovery Environment文件系统显示为 NTFS但没有盘符在磁盘管理里看起来就像一块“来历不明的分区”。当你执行lsblk -f时它可能也显示在 nvme0n1p4 这种位置和旁边的 Ubuntu 分区排在一起很容易被误认为 Linux 分区。区分方法是看内容。把它挂载起来看看前提是 Windows 恢复分区没加密里面如果是一个Recovery目录、里面躺着巨大的Winre.wim那绝对是恢复分区。万一误删了Windows 也许还能正常启动但“设置 → 系统 → 恢复”里的重置功能会失效以后系统大版本更新也极容易出问题。恢复分区掉了还不好重建所以宁可多挂载看一次也不要凭位置猜测。6.2 盘符漂移不是每次都叫 sdasda、sdb、nvme0n1 这些名字是内核枚举设备时分配的本质上不保证每次启动都相同。比如你插上一个移动硬盘原本的 sda 可能变成 sdb你调整了 BIOS 里的启动顺序设备命名也可能变化。所以我在整个判断流程里反复强调用文件系统类型、UUID、挂载内容来定位就是因为我们不能依赖盘符这种“会变的名字”。UUID 是分区的唯一身份证blkid输出的那串12345678-1234-...在分区表里是唯一的。记录好目标分区的 UUID删除前再去 lsblk 里确认一遍就不会被盘符漂移带偏。6.3 删除前把分区表备份下来这一步 99% 的人会跳过但它真的能救命。分区表只有几十 KB备份一下毫无成本却能在你判断失误时发挥作用。在动手删除任何分区之前执行sudo sfdisk -d /dev/nvme0n1 partition_backup.sfdisk sudo fdisk -l /dev/nvme0n1 partition_layout.txt把生成的文件复制到 Windows 分区或移动硬盘上。真要出了意外可以用sfdisk /dev/nvme0n1 partition_backup.sfdisk尝试恢复原始分区表结构。需要注意这只是恢复了分区表删掉的数据本身能不能找回是另一回事因为删除分区后文件系统的元数据可能已经被覆盖。所以它的价值更多是给你一个“反悔”的机会而不是数据恢复的保证。我在实际处理过这么多双系统机器之后最大的体会是卸载双系统本质上不是删除问题而是识别问题。只要你在动手前用多条链路把每个分区认清楚了删除本身反而是很机械的操作。多花十分钟用lsblk、blkid和挂载确认交叉验证一遍省下的是重装引导甚至恢复数据的一整天。如果你手头正好有台双系统机器等着卸载建议破坏前先把第 2 章的方法完整走一遍你会发现原来让人心里发虚的磁盘布局其实每条信息都清清楚楚写在系统里。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。