1. 独立分盘这件事,决定了你后面三年要不要重装系统
装双系统这个事,说简单也简单,一个 U 盘、一个镜像、一路下一步,半小时就能把 Ubuntu 或者 Kali 装到机器上。但真正的问题从来不在"能不能装上",而在"装上之后这一年你会不会天天后悔"。我见过太多人分区的时候随手一滑,把 Linux 塞进 Windows 压缩出来的那点碎片空间里,根分区只给 20G,swap 也不单独分,结果三个月后 apt 装了几个大包直接爆盘,想扩容发现前后都是 Windows 的分区,动一下就得整个重来。
这篇内容就是围绕Windows/Linux 双系统安装(双系统独立分盘)这个场景,把我自己装过十几台机器(台式、轻薄本、老旧笔记本)的经验完整拆一遍。核心目标只有一个:让两个系统各自待在自己的分区里,彼此的引导、存储、更新互不干扰,Windows 崩了不影响 Linux 启动,Linux 玩坏了也不影响 Windows 引导。适合手上已经有一台 Windows 机器、想再装一个 Linux 做开发或者学习、并且希望这套环境能稳定用上两三年的人。如果你只想尝个鲜、跑几条命令就删掉,那我建议直接上虚拟机,别折腾分区表。
区分一下三种常见的"双系统"玩法,这个选择直接决定了后面所有操作:
- 虚拟机方案:VMware、VirtualBox、Hyper-V 里装 Linux。优点是零风险,装坏了删虚拟机文件就行;缺点是性能损耗明显,尤其是磁盘 IO 和显卡直通,编译内核、跑容器、做渗透测试靶场都会卡得你想砸键盘。
- WSL2 方案:Windows 自带,装起来最快,和 Windows 文件系统互通。适合跑命令行工具、做脚本开发;但它毕竟不是完整内核(WSL1)或者是个轻量虚拟机(WSL2),涉及内核模块、网络栈底层、图形化桌面、驱动调试的场景基本没戏。
- 真机双系统:两个操作系统直接跑在裸机上,各自拥有独立的分区和引导项。性能不打折,能碰底层,适合长期做开发、运维、安全学习的场景。代价就是分区操作有风险,做错一步可能丢数据。
大部分人搜"双系统安装",其实心里想的就是第三种。那我们直接进入正题。
1.1 "独立分盘"到底独立在哪几个地方
很多人以为"独立分盘"就是"Windows 在 C 盘,Linux 在另一个盘符",这个理解只对了一半。真正的独立分盘,至少要覆盖下面四个层面:
| 层面 | 具体内容 | 不独立会出什么问题 |
|---|---|---|
| 根分区 | Linux 的/放在独立的 ext4 或者 btrfs 分区 | 和 Windows 挤在一起根本装不了,文件系统不兼容 |
| 数据分区 | /home单独分区 | 系统重装时个人文件全丢,被迫重新配置环境 |
| 交换空间 | 独立的 swap 分区或 swapfile | 内存吃紧时无法休眠,大内存任务容易 OOM |
| 引导分区 | ESP(EFI System Partition)的复用或独立 | 引导项互相覆盖,一方更新后另一方进不去 |
前三个是存储层面的独立,最后一个是引导层面的独立。引导层面的独立是最容易被忽略、也最容易出事的一环。Windows 和 Linux 都得往 ESP 分区里写自己的引导文件,Windows 更新有时候会重写引导顺序,把默认启动项抢回去;Linux 那边的 GRUB 更新也可能覆盖bootx64.efi。处理办法后面细说。
1.2 一次规划好,省下的是后面反复备份的时间
我在装第一台双系统机器的时候,犯的最蠢的错就是"边装边想"。硬盘现状没看清,分区表什么类型不知道,压缩卷压出来多少算多少,装到一半发现可用空间只有 30G,硬着头皮装完,半年后重来一遍。后来我养成了一个习惯:动手前先在纸上(或者记事本里)画一张分区规划表,标明每一段的空间大小、用途、文件系统类型。这张表就是后面所有操作的施工图,安装器里照着填就行,不至于手忙脚乱。
举个例子,一台 512G 固态、16G 内存的笔记本,我的典型规划是这样的:
- ESP:300MB(如果 Windows 自带的 100MB 够用就复用,不够就扩容)
- Windows C 盘:180G
- Windows 数据盘 D:120G(保留 NTFS)
- Linux
/:80G(ext4) - Linux
/home:90G(ext4) - Linux swap:16G(或者用 swapfile 省掉这个分区)
剩余约 26G 留作缓冲,别把盘塞满,SSD 需要预留空间做磨损均衡和垃圾回收,长期 100% 占用会明显掉速。
2. 开工前的磁盘体检:先把家底盘清楚
分区这事,最怕的就是"我以为"。我以为硬盘是 GPT,结果发现是 MBR;我以为 Windows 后面有 100G 空闲,结果发现有个 200G 的隐藏恢复分区卡在中间。所以正式动手前,花十分钟做一次磁盘体检,能省掉后面几小时的重装。
2.1 先确认固件模式和分区表类型
这一步决定了你 U 盘要怎么刻、安装器要怎么引导。按下Win + R,输入msinfo32,在"系统摘要"里找两行:
- BIOS 模式:显示"UEFI"就是 UEFI 引导,显示"传统"就是 Legacy BIOS。
- 安全启动状态:显示"打开"或者"关闭",后面装 Ubuntu 时可能需要在固件里临时关掉。
再看分区表类型。右键"此电脑"→"管理"→"磁盘管理",选中系统盘,右键属性→"卷"标签页,看"分区形式"是 GPT 还是 MBR。也可以在命令行里确认,以管理员身份打开 PowerShell:
# 查看磁盘分区表类型 Get-Disk | Select-Object Number, FriendlyName, PartitionStyle, Size # 查看 EFI 分区 Get-Partition | Where-Object { $_.Type -eq 'System' } | Select-Object DiskNumber, PartitionNumber, Size, GptType结论怎么用:
- UEFI + GPT:主流组合,Ubuntu 20.04 及以上、Kali、统信 UOS 都完美支持,后面按 UEFI 流程走。
- Legacy + MBR:老机器,或者当年装系统时用了 Legacy 模式。这种情况下要么把 Windows 也转成 UEFI(有风险,涉及
MBR2GPT工具和引导重建),要么 Linux 也按 Legacy 装,但两块系统引导方式不一致会带来很多麻烦,我一般建议直接按 Legacy 装到底,别混搭。 - UEFI + MBR:这种奇怪的组合在老机器上出现过,安装器可能识别混乱,需要格外小心。
2.2 看清楚 ESP 分区的实际大小和位置
打开磁盘管理,你会看到系统盘最前面有几个特殊分区,通常是:
- 恢复分区(Recovery):500MB 到 1G 不等,有些是 Windows 创建,有些是厂商预装的恢复镜像。
- EFI 系统分区(ESP):默认 100MB,Windows 自己创建时就是 100MB。
- MSR 保留分区:16MB,微软保留,别去动它。
- 主分区:也就是你的 C 盘。
这里有两个坑,我都踩过:
坑一:100MB 的 ESP 分区对 Ubuntu 来说够,但如果你之后想装多个 Linux 发行版、或者内核更新频繁导致旧内核文件堆积,100MB 很容易被塞满,然后更新报 "No space left on device"。稳妥做法是把 ESP 扩到 300MB 以上,但 Windows 不允许直接在磁盘管理里扩展 ESP,需要用
diskpart或者第三方工具。
坑二:厂商预装的恢复分区有时候正好卡在 C 盘后面,导致 C 盘"后面没有连续空闲空间"可压缩。这时候要么把恢复分区删掉(先确认里面没有你需要的恢复镜像,或者先做个恢复 U 盘),要么用第三方分区工具(如 DiskGenius、傲梅分区助手)移动分区。
查一下 ESP 里现在有多少内容,用管理员权限的 PowerShell:
# 挂载 ESP 分区到 Z 盘以便查看(临时挂载,重启后失效) mountvol Z: /s # 然后到 Z:\EFI 目录下看看有哪些文件夹 # 正常会有 Microsoft、Boot、OEM 等 # Microsoft 文件夹是 Windows 的引导文件,绝对不要删查完记得mountvol Z: /d卸载。
2.3 容量怎么分才不后悔
我给新手的建议一直是:宁可给 Linux 多一点,也别为了给 Windows 留空间把自己卡死。原因很简单,Windows 那边淘汰不用的软件、下载的安装包、微信缓存的图片视频,随手清理一下能腾出几十 G;Linux 那边如果/分区不够,apt 装几个大包(比如 CUDA、Docker 镜像、Android SDK)就爆了,迁移数据分区又麻烦。
具体配额可以参考这个经验表:
| 用途 | 最低 | 舒适 | 说明 |
|---|---|---|---|
Linux 根分区/ | 30G | 80-100G | 装系统、软件、Docker 镜像 |
Linux/home | 20G | 60-100G | 代码、文档、下载 |
| swap | 等于内存 | 等于内存 | 想休眠必须 ≥ 内存大小 |
| Windows C 盘 | 80G | 150G+ | 系统、办公软件、驱动 |
| Windows 数据盘 | 按需 | 按需 | 游戏、影音 |
内存 8G 的机器,swap 给 8-16G;16G 及以上,swap 给 8G 或者干脆用 swapfile 按需增长。要不要单独分 swap 分区,取决于你想不想用休眠功能。如果不用休眠,用 swapfile 更灵活,可以随时调整大小;用休眠的话,传统 swap 分区最稳。
3. 腾空间之前,有几件事必须先关掉
这是整篇内容里我最想强调的一节。很多人卡在"压缩卷"这一步,明明 C 盘有 200G 空闲,磁盘管理却只让压缩 30G,气得想砸电脑。原因不在磁盘管理本身,而在几个 Windows 默认开启的功能把文件锁在了磁盘中间,导致可压缩空间被"卡"住了。
3.1 快速启动和休眠文件占了半条命
Windows 10/11 默认开启"快速启动",关机时会把内核状态写进hiberfil.sys,这个文件大小约等于内存大小的 40%-75%。16G 内存的机器,它就是 6-12G。更麻烦的是,这个文件通常躺在磁盘中后段,正好挡住你能压缩的空间。
关闭步骤:
- 控制面板 → 电源选项 → "选择电源按钮的功能" → 点击"更改当前不可用的设置" → 取消勾选"启用快速启动"。
- 以管理员身份运行命令提示符,彻底关掉休眠,顺便删除休眠文件:
powercfg /h off执行完之后再去看 C 盘根目录,hiberfil.sys会消失(需要显示隐藏文件和系统文件才看得见)。这一下往往能多压出十几 G。
3.2 BitLocker 设备加密:不关它后面寸步难行
现在很多品牌机、以及登录了微软账号的 Windows 11,会默认开启"设备加密"(底层就是 BitLocker)。分区表一旦被改动,BitLocker 有可能触发恢复模式,要求输入 48 位恢复密钥。如果你没备份这个密钥,数据可能就永久锁死了。
先查状态,管理员 PowerShell 里:
# 查看所有卷的 BitLocker 状态 Get-BitLockerVolume | Select-Object MountPoint, VolumeStatus, ProtectionStatus # 或者用传统命令 manage-bde -status如果显示"已加密"或者"正在加密",先暂停或解除:
# 暂停保护(保留加密状态,但不再要求密钥) Suspend-BitLocker -MountPoint "C:" -RebootCount 0 # 如果确实不需要,直接解密(耗时可能几小时,视磁盘速度而定) Disable-BitLocker -MountPoint "C:"我的建议是:装双系统期间就保持关闭状态。等整个环境稳定了,如果确实需要全盘加密,再打开。加密状态下频繁分区操作,恢复密钥丢失的风险太高了。同时记得把微软账号里的恢复密钥导出一份存到别处。
3.3 压缩卷压不动,真正的元凶和解决办法
关了快速启动、删了休眠文件之后,还是压缩不出来怎么办?因为 NTFS 里有些"不可移动文件"——比如页面文件、系统还原点、卷影副本——正好落在磁盘中段,磁盘管理不允许移动到它们后面。
处理顺序:
- 关闭系统保护:此电脑 → 属性 → 系统保护 → 选中 C 盘 → 配置 → 禁用系统保护(或者把最大使用量调到最低)。
- 关闭页面文件自动管理:高级系统设置 → 性能 → 高级 → 虚拟内存 → 更改 → 取消"自动管理",先设成无,重启后再设回来(这一步能释放中段空间)。
- 用系统自带的碎片整理优化一次:
defrag C: /O,SSD 上这个是 TRIM,别用传统碎片整理。 - 如果还是不够,用第三方工具(DiskGenius、傲梅分区助手)做无损分区调整,这类工具能移动"不可移动文件",比 Windows 自带的灵活得多。但操作前一定备份重要数据,第三方工具移动分区不是 100% 无风险。
判断够了没,看磁盘管理里的"可用压缩空间"。这个数字比你要给 Linux 的空间多留 10G 左右作为缓冲。
4. 启动盘制作与固件设置:别在这一步翻车
分区腾好了,接下来就是做启动盘、调固件。这两步看起来是最没技术含量的,实际上新手翻车最多。
4.1 镜像下载与完整性校验
先说镜像来源。Ubuntu 官方、国内各大高校镜像站、阿里云、腾讯云镜像站都能下。Kali 去官网下 ISO。统信 UOS 走官方渠道。别用来路不明的"优化版""精简版"镜像,引导文件被改过之后,装机过程出各种玄学问题,排查起来很痛苦。
下完先校验哈希,避免下载过程中损坏:
# Windows PowerShell 计算文件哈希 Get-FileHash -Algorithm SHA256 .\ubuntu-24.04-desktop-amd64.iso # Linux 下 sha256sum ubuntu-24.04-desktop-amd64.iso拿结果和官网公布的 SHA256 对一下,一致就说明文件没问题。这一步很多人嫌麻烦跳过,结果装到一半报错,又回头重下,更浪费时间。
4.2 写盘工具与参数选择
我用得最多的是 Rufus 和 Ventoy,两个都值得说一下区别:
- Rufus:单个镜像写入,干净利落,兼容性最好。分区类型选GPT,目标系统选UEFI(非 CSM),文件系统 FAT32。如果你的 ISO 里有单个文件超过 4G,Rufus 会提示你用 NTFS,这种情况选"以 ISO 镜像模式写入"。
- Ventoy:把 U 盘做成一个引导器,之后所有 ISO 直接复制进去就行,可以放多个系统镜像。适合经常折腾的人。装 Ventoy 后,把 ISO 拖进 U 盘,重启选对应镜像即可。
要提醒的一点:写盘会清空 U 盘所有数据,先确认里面没东西。另外 U 盘至少 8G,Ubuntu 24.04 的镜像已经 6G 左右了。
写完之后可以验证一下 U 盘能不能引导。UEFI 模式下 U 盘里应该有一个EFI文件夹,里面能看到boot目录。
4.3 固件里必须检查的几个开关
重启时按对应品牌的键进固件设置(不同品牌不一样,常见的是 F2、F12、Del、Esc,联想笔记本通常是 Fn+F2,华为是 F2,戴尔是 F2,华硕是 Del 或 F2)。进去之后确认这几项:
| 项目 | 建议设置 | 说明 |
|---|---|---|
| 安全启动(Secure Boot) | 先关闭 | Ubuntu 支持,但第三方驱动和 Kali 可能受阻 |
| 启动模式 | UEFI | 与 Windows 保持一致 |
| CSM 兼容模块 | 关闭 | 保留 UEFI 纯模式 |
| SATA 模式 | AHCI | 别用 RAID/Intel RST,会影响 Linux 识别硬盘 |
| Fast Boot(固件级) | 关闭 | 避免跳过 USB 检测 |
关于 SATA 模式:这一项特别容易出事。有些笔记本出厂默认是 Intel RST(RAID 模式),Windows 在 RST 驱动下运行,Linux 安装器根本看不到硬盘。解决办法是在固件里改成 AHCI,但直接改会让 Windows 无法启动,需要先用bcdedit /set safeboot minimal设置安全模式,改完固件进安全模式,再bcdedit /deletevalue safeboot,或者用安全模式里预先装好的 AHCI 驱动。这一步不做的话,改完固件 Windows 直接蓝屏,新手会以为系统坏了。
5. 安装器里的分区操作:手别抖
终于到了最关键的一步。Ubuntu、Kali、统信 UOS 的安装器都提供了"清除整个磁盘并安装"和"其他选项/手动分区"两种情况。装双系统必须选手动分区,千万别手滑选到"清除整个磁盘",那个会把 Windows 一起干掉。
5.1 手动分区里每个挂载点到底是什么意思
进入手动分区界面,安装器会列出所有磁盘和分区。你需要做的是:找到之前腾出来的那块"空闲空间"(显示为 free space),在上面新建分区,并指定挂载点。
| 挂载点 | 文件系统 | 建议大小 | 作用 |
|---|---|---|---|
/ | ext4 或 btrfs | 80-100G | 根目录,系统和软件 |
/home | ext4 | 60-100G | 用户数据 |
/boot | ext4 | 1-2G | 内核和 initramfs(可选) |
swap | swap | 等于内存 | 交换空间(可选) |
/boot/efi | FAT32 | 复用时无需新建 | EFI 引导分区 |
不是每个人都需要这么多分区。如果你是第一次装,我建议最简组合:/+/home+ 复用现有 ESP,不用单独分/boot。分/boot的意义在于,如果根分区用了 LVM 加密或者 btrfs 快照,单独放一个/boot能降低引导复杂度。对于普通用户,多一个/boot只是多一个需要维护的分区。
swap 的处理:现在的安装器(Ubuntu 24.04 及以上)默认用 swapfile 代替分区,如果你的内存够大(16G+)且不需要休眠,直接不建 swap 分区,让系统自动管理 swapfile 就行。非要用分区,就在空闲空间里划一块,类型选"交换空间"。
5.2 ESP 分区该复用还是新建
这是很多人纠结的点:Windows 已经有一个 100MB 的 ESP,我要不要给 Linux 单独建一个 ESP?
两种情况:
- 复用 Windows 的 ESP:这是最简单的做法,也是官方推荐做法。安装器会自动把 Linux 的引导文件写进 Windows 的 ESP 里,路径是
EFI/ubuntu/,和 Windows 的EFI/Microsoft/并存。固件启动时两个都能识别。缺点是 ESP 只有 100MB,满了之后会影响内核更新。 - 新建独立 ESP:给 Linux 单独建一个 300-500MB 的 FAT32 分区,挂载到
/boot/efi。听起来更"独立",但很多固件只识别第一块磁盘上的主 ESP,新建的 ESP 可能根本不显示在启动菜单里,你还得手动用 efibootmgr 添加引导项。我试过几台机器,独立 ESP 在部分主板上确实不出现在启动项里,最后还是得回头修引导。所以除非你的 ESP 已经快满了,否则我建议直接复用,简单可靠。
判断 ESP 空间是否够用,看一眼就知道了:
# 在 Linux 下查看 ESP 使用情况 df -h /boot/efi ls -lh /boot/efi/EFI/Ubuntu 内核一般占用 30-50MB,加上 GRUB 和 shim,100MB 通常能撑。但如果你装了 zfs、btrfs 快照,或者内核更新后会保留旧版本,很快就会满。
5.3 引导器安装位置:选对设备,不要选错分区
手动分区界面最下方通常有一个"安装启动引导器的设备"下拉框。这里的选项是磁盘而不是分区,你会看到/dev/nvme0n1或者/dev/sda这样的条目。
选哪个?选 Windows 所在的那块盘,也就是包含 ESP 的那块物理磁盘。原因就一句话:引导器最终要写进 ESP 里,而 ESP 在哪块盘上,引导器就得装到哪块盘。
如果你新建了独立 ESP,就在新建那里选择那块对应的磁盘。不要选成 U 盘,也不要用默认值(默认值有时候会选成第一个磁盘,如果是 U 盘就完蛋了,引导会写进 U 盘,重启后系统直接启动不了)。
安装过程中会弹窗问"是否格式化"、"是否保留数据",只要分区别选错,一路确认就行。最后点"现在安装",等它复制文件。
6. 装完之后的三件小事:引导、时间、驱动
进度条走完提示重启,拔 U 盘,这是最激动人心的一刻。但先别急着感慨,有三件事处理完,这套双系统才算真正能长期用。
6.1 引导顺序调整,让 GRUB 接管
重启后进固件设置,找到"启动顺序",你会看到两个启动项:Windows Boot Manager和ubuntu。把ubuntu调到第一位,以后开机默认进 GRUB,GRUB 菜单里再选进 Windows 还是 Linux。
GRUB 菜单默认只显示 10 秒,而且有时候只显示 Ubuntu,看不到 Windows。这是因为 GRUB 扫描引导项时没找到 Windows 的bootmgfw.efi。先确认 ESP 里 Windows 的引导文件还在:
ls /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi在的话,重新生成 GRUB 配置:
sudo os-prober # 扫描其他操作系统 sudo update-grub # 重新生成引导配置如果os-prober没输出,检查/etc/default/grub里GRUB_DISABLE_OS_PROBER是不是true,改成false再执行一遍。这个坑我遇到过好几次,Ubuntu 从某个版本开始默认禁用 os-prober,导致 Windows 不显示。
6.2 双系统时间差 8 小时是怎么回事
这是双系统最经典的"玄学问题":进完 Linux 再进 Windows,系统时间少了 8 小时,反过来又多 8 小时。原因是:
- Windows 默认把硬件时钟当成本地时间(Local Time)。
- Linux 默认把硬件时钟当成UTC,再由系统按所在时区换算显示。
同一块硬件时钟被两种理解方式读取,自然对不上。解决办法有两个,选其一:
方案 A:让 Linux 用本地时间(操作简单,但对 Linux 生态不够"正统")
timedatectl set-local-rtc 1 --adjust-system-clock方案 B:让 Windows 用 UTC(更规范,推荐)
在 Windows 里以管理员运行命令提示符:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /f执行完重启 Windows,两边时间就一致了。推荐方案 B,因为 Linux 的时间同步机制和服务依赖 UTC 硬件时钟,改成本地时间偶尔会带来别的时区问题。
6.3 显卡驱动和无线网卡驱动,联网才能装
Ubuntu 装完第一次进桌面,如果显卡是 NVIDIA 独显,可能分辨率异常或者花屏。这时候别慌,先联网。有线网卡一般免驱,无线网卡要分情况:
- Intel 网卡:内核自带,基本没问题。
- 部分 Realtek、Broadcom 网卡:需要额外固件包,Ubuntu 安装时会提示"是否安装第三方软件",勾上就自动装。如果装系统时没联网没勾,之后手动补:
sudo ubuntu-drivers devices # 查看可用的专有驱动 sudo ubuntu-drivers autoinstall # 自动安装推荐驱动装完重启。NVIDIA 显卡这里有个坑:Secure Boot 开启状态下,未签名的 NVIDIA 内核模块加载会被拒绝,表现为驱动装了但nvidia-smi报错。两种处理,要么在固件里关掉安全启动,要么在安装驱动时给它设置一个 MOK 密码,重启后进 MOK 管理界面完成密钥注册。如果你装的是 Kali 做安全学习,我建议直接关掉安全启动,省得跟驱动签名纠缠。
7. 我踩过的几个坑和对应的处理方式
前面讲了标准流程,但现实永远比流程复杂。这一节把几个我真实遇到过的故障和排查思路完整写出来,遇到类似情况可以对照着走一遍。
7.1 装完 Linux,Windows 引导项消失了
现象:重启后固件里只剩ubuntu一个启动项,进 GRUB 也只有 Ubuntu,选不到 Windows。
排查链路:
- 先别急着重装。挂载 ESP 看 Windows 引导文件在不在:
sudo mount /dev/nvme0n1p1 /mnt # 换成你的 ESP 分区 ls /mnt/EFI/Microsoft/Boot/- 如果
bootmgfw.efi还在,说明只是固件启动项被覆盖或者顺序被改。用efibootmgr检查:
sudo efibootmgr -v找到Windows Boot Manager对应的条目编号,把它重新激活并排到第一位:
sudo efibootmgr -o 0001,0000 # 按实际编号调整,逗号前后是顺序- 如果
bootmgfw.efi已经不在了,就得用 Windows 安装 U 盘启动,进入"修复计算机"→"疑难解答"→"命令提示符",重建引导:
# 在 Windows 恢复环境的命令提示符里执行 bcdboot C:\Windows /s S: /f UEFI其中S:是你在恢复环境里挂载的 ESP 分区盘符(用diskpart挂载时要先select disk、select partition、assign letter=S)。
我遇到过一次是 GRUB 更新把EFI/Boot/bootx64.efi覆盖了,这个是 UEFI 的默认回退引导文件,某些固件在找不到其他项时就启动它。这种情况把 Windows 的引导重建一遍就好。
7.2 分区空间"消失"了,Linux 看不到
现象:明明在 Windows 里压缩出了 100G 空闲空间,Linux 安装器里看不到这块空间,或者看到的是"未分配"但尺寸对不上。
原因通常是分区表没有刷新,或者 Windows 用了动态磁盘(LDM)。检查一下 Windows 的磁盘是不是动态磁盘:磁盘管理里选中磁盘,左侧应该显示"基本"两个字,如果显示"动态",那 Linux 安装器是识别不了的。动态磁盘需要先转回基本磁盘——这个过程会丢数据,必须提前备份。转换用 DiskGenius 或者diskpart的convert basic(仅对不含卷的动态磁盘有效)。
另一种情况是分区表混用了 MBR 和 GPT,安装器识别混乱。这种只能靠parted或gdisk手动检查:
sudo parted /dev/nvme0n1 print看输出里的Partition Table一行是gpt还是msdos。
7.3 更新内核之后进不去系统
现象:某次apt upgrade更新了内核,重启卡在 GRUB 界面或者黑屏,前一版内核能进。
这是内核更新和显卡驱动不匹配的经典问题,多见于 NVIDIA 用户。处理办法是在 GRUB 菜单里选择Advanced options for Ubuntu,进旧内核,然后重装驱动模块:
sudo apt install --reinstall linux-modules-nvidia-$(uname -r)-generic # 或者重新编译 DKMS 模块 sudo dkms autoinstall再更新 initramfs:
sudo update-initramfs -u -k all重启看能不能进新内核。如果还是不行,锁定当前可用内核,别再自动更新,先保住可用状态:
sudo apt-mark hold linux-image-$(uname -r) linux-headers-$(uname -r)等驱动适配了新内核再解锁。
8. 想反悔的时候:干净卸载 Linux 并回收空间
用了一段时间觉得不合适,或者想换发行版,需要把 Linux 卸掉。这个操作简单但有个前提:引导项一定要清理干净,否则断电一样卡在 GRUB rescue。顺序必须是先删引导项、再删分区,反过来做的话 Windows 倒是能启动,但固件里会残留一个指向已删除分区的启动项,开机可能报错。
8.1 删除分区并回收空间
Windows 磁盘管理里,Linux 的分区是看不到盘符、显示为"未知分区"的几块。右键逐个删除,删完之后变成"未分配"。然后右键 C 盘 →"扩展卷",把未分配空间合并进去。扩展卷有个限制:未分配空间必须紧挨着 C 盘的右侧才能扩展。如果中间隔着恢复分区或者其他分区,得先把它们挪走(用第三方工具),或者干脆把回收的空间建成一个新的 D 盘,不合并。
如果要用命令行操作:
# 管理员 PowerShell 里进入 diskpart diskpart list disk select disk 0 list partition # 找到 Linux 的分区,逐个删除 select partition N delete partition overrideoverride参数用于删除非 Windows 管理的分区类型。
8.2 清理固件里的引导残留
删完分区后,重启进固件,启动项里可能还留着ubuntu。在 Linux 侧删除还没机会了(已经删了),只能在 Windows 里清理。用管理员 PowerShell 调用bcdedit只能管 Windows 的 BCD,管不了 UEFI 固件启动项。要清固件项,有两个办法:
- 用主板固件自带的启动项管理界面,通常能直接删除条目。
- 用第三方工具(如 EasyUEFI、Bootice)删除残留的 UEFI 启动项,同时把 ESP 里残留的
EFI/ubuntu文件夹删掉(这个需要先挂载 ESP)。
挂载 ESP 并清理的完整流程:
# 挂载 ESP mountvol Z: /s # 删除 Linux 引导文件夹 rmdir /s /q Z:\EFI\ubuntu # 卸载 mountvol Z: /d清理干净之后,开机直接进 Windows,整台机器恢复到装双系统之前的状态。
我自己这些年装双系统的体会是,真正花时间的从来不是敲命令,而是提前想清楚"我要给哪块盘留多少空间、ESP 复用还是新建、引导装在哪块盘"。这三件事在动手前想明白,后面基本就是照着施工图走。反倒是很多新手栽在"关快速启动、关 BitLocker、SATA 模式改 AHCI"这些看起来跟装系统没什么关系的细节上,所以这几步千万别跳。另外留个后手:装系统之前用移动硬盘把重要数据备份一份,或者干脆整盘做个镜像,这样即使分区表被改坏了,数据也还在,重来的成本只是时间而不是资料。