2988 字
15 分钟
Debian 安装后 Windows 磁盘“消失”?从绝望到找回的全过程复盘

本文仅作为技术分享与个人复盘记录。

文中涉及 BIOS/磁盘/引导相关操作具有一定风险:如果你不理解每一步在做什么,请先停下来查资料或找有经验的人协助。

任何因盲目照做导致的数据丢失、系统无法启动等问题,作者概不负责。

前言#

这是一次挺典型的“双系统惊魂”——装完 Debian,开机一看:Windows 盘没了。

硬件环境:Dell G3 游戏本,512G NVMe 固态硬盘 + 512G SATA 固态硬盘。

我的操作:在一块空闲盘上安装 Debian 13,安装程序选择了“自动分配最大可用空间”。

当时的现象:进 Debian 后用 fdisk -llsblk 一看,系统里只剩一块 476G 左右的盘(Debian 所在盘),另一块装满数据的 Windows 盘仿佛人间蒸发。

第一反应当然是:完了,是不是我分区时手滑把 Windows 盘给抹了?

结论先说在前面:这次并不是误格式化,也不是硬盘物理损坏,而是 BIOS 的存储模式(Intel RST/RAID On)导致 Linux “看不见”那块盘。下面按我当时的排查顺序,把整个过程整理成可复用的修复流程。

预备知识#

RAID On / Intel RST vs AHCI#

很多 Dell/联想等笔记本出厂会把存储模式设成 RAID On(Intel RST)。对 Windows 来说这通常“开箱即用”,但对 Debian 这类默认安装来说,可能出现驱动/识别问题,最终表现为:某些硬盘/控制器在 Linux 下根本不枚举出来

AHCI 是更通用的模式,Linux 识别支持更稳。

为什么 BIOS 能看到、系统却看不到#

BIOS/UEFI 能看到硬盘,只说明硬盘物理层面没消失。

操作系统看不到硬盘,通常意味着:控制器工作模式/驱动不匹配、或硬盘被某种固件/阵列逻辑“包”起来了。

诊断与修复流程#

在你确认原因之前,不要做任何写入磁盘的操作,尤其是:mkfs.*、“重新分区并写入分区表”、各种“修复分区/修复文件系统”的一键工具。

0. 先确认:是“真没了”还是“系统没识别”#

先在 Debian 里看一眼系统到底识别到了什么:

Terminal window
lsblk

你可能会看到两种情况:

  • 只看到一块盘:先别慌,下一步去 BIOS 确认是否还能看到另一块盘。
  • 两块盘都能看到:那就不是“磁盘消失”,而是你当时没认对设备名或分区;这篇文章就不是你的 case 了。

接下来最关键的一句:

如果 BIOS/UEFI 里两块盘都在,但 Debian 里只剩一块,那么大概率不是你把盘格式化了,而是 Linux 没“看见”它。

1. 看日志:抓到 RAID/RST 的蛛丝马迹#

继续在 Debian 里看内核日志,确认控制器工作模式:

Terminal window
sudo dmesg | grep -iE 'rst|raid|vmd|nvme|ahci|intel'

如果你看到了类似 Intel(R) RSTRAIDVMD 等字样,基本就能把锅锁定到 BIOS 的 RAID On / Intel RST 上。

我当时的关键信息其实就藏在这一段(节选):

[ 0.009012] ACPI: ... (v01 INTEL RstSataE ...)
[ 0.009015] ACPI: ... (v01 INTEL RstSataV ...)

看到 RstSata*,基本可以把“Linux 看不见另一块盘”与“RST/RAID On”强关联起来。

2. 核心修复:BIOS 把 RAID On 改成 AHCI#

注意:直接切换模式可能导致 Windows 蓝屏(常见为 INACCESSIBLE_BOOT_DEVICE)。这不是“系统坏了”,而是驱动没有跟着切过来。按我下面的顺序做,通常可以无损解决。

2.1 修改 BIOS 设置#
  1. 重启电脑,按 F2 进 BIOS。
  2. 找到 System Configuration -> SATA Operation(有的机型在 Storage 相关菜单)。
  3. RAID On 改为 AHCI
  4. 保存并退出。

不同机型进入 BIOS 的按键可能不同,常见还有 DelF12Esc,以开机提示为准。

2.2 验证硬盘是否回归#

回到 Debian,再跑一次:

Terminal window
lsblk

正常情况下,你会重新看到两块 NVMe 盘(例如 nvme0n1 + nvme1n1)。Windows 那块盘通常会有较大的 NTFS 分区。

这里补一句更贴近实际情况的描述:

  • 你的机器可能是 NVMe + SATA 的组合(我就是这种)。那么 Debian 盘可能显示成 sda,Windows 盘可能显示成 nvme0n1
  • 如果 Windows 系统盘开了 BitLocker,Linux 下它不一定显示为 ntfs,反而会显示成 BitLocker(见后文)。

上面的设备名仅作示例,具体请以你机器上 lsblk 的实际输出为准。

我当时 BIOS 改完之后,lsblk 的关键变化就是:从“只剩 sda”变成“sda + nvme0n1 同时出现”,nvme0n1 上还有一串典型的 Windows 分区结构。

3. 修复引导:让 GRUB 重新发现 Windows#

硬盘回来了,但 GRUB 启动菜单不一定自动出现 Windows 项。

3.1 安装识别工具#
Terminal window
sudo apt update
sudo apt install os-prober grub-efi-amd64
3.2 扫描 Windows 启动项#
Terminal window
sudo os-prober

预期会看到类似输出:

Found Windows Boot Manager on /dev/nvmeXn1pY@/EFI/Microsoft/Boot/bootmgfw.efi

3.3 更新 GRUB 配置#
Terminal window
sudo update-grub

重启后,GRUB 菜单里通常就会出现 Windows 选项。

Debian 13 上还有一个小坑:有些情况下 os-prober 会被默认关闭。

如果你装好了 os-proberupdate-grub 仍然不扫描 Windows,可以检查 /etc/default/grub 里是否需要设置:

GRUB_DISABLE_OS_PROBER=false

改完后再运行一次 sudo update-grub

4. Windows 蓝屏:INACCESSIBLE_BOOT_DEVICE 怎么办#

如果你在 GRUB 里选 Windows 后蓝屏了,核心原因很简单:

  • Windows 之前按 RAID/RST 模式装的驱动
  • 现在你切到了 AHCI
  • Windows 一时半会儿没切过来,就会“找不到启动盘”

在硬件无物理故障且可进入恢复环境的前提下,通常不需要重装系统。下面两种方式选其一即可。

方法 A:进一次安全模式(更省事)#
  1. 蓝屏后等待重启,进入 Windows 的“自动修复/恢复环境”。
  2. 选择:高级选项 -> 疑难解答 -> 启动设置 -> 重启
  3. 4F4 进入 安全模式
  4. 只要成功进过一次安全模式,Windows 通常会自动加载 AHCI 相关驱动。
  5. 再重启一次,正常模式即可进入系统。
方法 B:用 Windows 安装盘/PE 手动处理(进不去安全模式再用)#

准备一个 Windows 安装 U 盘或 PE,启动后进入:修复计算机 -> 命令提示符

执行下面步骤前,建议先备份关键数据(如果当前环境允许读取数据)。

  1. 先确认 Windows 分区与 EFI 分区盘符:
Terminal window
diskpart
list volume
exit
  1. 修复/重建 EFI 引导(盘符示例:Windows 在 C:,EFI 在 Z:):
Terminal window
bcdboot C:\Windows /s Z: /f UEFI
  1. 强制下一次进安全模式(借机触发驱动切换):
Terminal window
bcdedit /set {default} safeboot minimal

重启后进入一次安全模式,再执行以下命令取消安全模式循环:

Terminal window
bcdedit /deletevalue {default} safeboot

5. (可选)Linux 挂载失败:BitLocker 与快速启动#

排查过程中我还遇到过这种信息:

Terminal window
/dev/nvme0n1p3: TYPE="BitLocker"

如果你在 Linux 下挂载 Windows 分区失败(例如提示 NTFS signature is missing),先不要急着 ntfsfix

  • 如果分区是 BitLockerntfsfix 对它没意义。
  • 你要在 Linux 里读写:可以在 Windows 里关闭 BitLocker,或在 Linux 下研究 dislocker
  • 你只是要能启动 Windows:通常不需要挂载分区,能被 os-prober 识别到 EFI 启动项就够了。

这次事故里,RST/RAID On 负责把硬盘“藏起来”,而 BitLocker 负责把“终于看到硬盘之后的排查体验”一脚踹进地狱。

它至少背一半锅的理由很简单:

  1. 它让关键分区“不像 NTFS”。从 Linux 视角看,大分区不是 ntfs,而是 TYPE="BitLocker"。你如果按传统思路去跑 ntfsfix、去挂载 ntfs-3g,很容易得到 NTFS signature is missing 这种误导性报错,然后开始怀疑“分区表是不是坏了”。
  2. 它把“取证”和“救急”都变复杂了。在没解密/没拿到恢复密钥之前,你在 Linux 下能做的事情非常有限:既不方便验证分区里到底有没有 Windows,也不方便紧急拷数据(你能看到的往往只有 EFI/恢复分区)。
  3. 它让很多“本来能靠直觉解决的问题”失效。比如“双系统用户最常用的自救动作”之一就是:先进 Linux 把 Windows 分区挂上来看看文件还在不在——但 BitLocker 直接把这条路堵死了。

我对 BitLocker 的评价是:这玩意儿就是“排障加难器 + 密钥勒索模拟器”

  • 我建议绝大多数普通用户直接关掉 BitLocker
  • 如果你是双系统/爱折腾:更是建议关掉,别给自己加一层“未来一定会踩”的坑。

我身边就见过不少真实案例:

  • 电脑没丢、也没被偷,系统也没中毒,最后却因为“恢复密钥忘了/找不到/微软账号对不上”——数据读不出来、系统进不去,只能重装

这种结局有多离谱?诸位有所不知,根据野史记载,比尔盖茨给家门装了世界级防盗锁,结果小偷没来,比尔盖茨把钥匙弄丢了,然后只能把房子拆了重新盖。

对大多数日用/游戏本用户来说,它带来的主要收益并不是“安全”,而是:排障成本 + 跨系统不兼容 + 关键时刻的密钥地狱。直接关掉就完事了。


为了避免大家走弯路,这里把我当时踩到的“误判”也写清楚:

  1. 我一开始把 nvme0n1p3 当成 NTFS 主分区,去跑了 ntfsfix,结果直接报:

    NTFS signature is missing.

    这并不等同于“盘坏了”。后来用 blkid 一查才发现:nvme0n1p3 的真实类型是 BitLocker,它本来就不是裸 NTFS。

  2. 当时 blkid 的结果(节选)大概是这样的:

    /dev/nvme0n1p1: TYPE="vfat" LABEL="ESP"
    /dev/nvme0n1p3: TYPE="BitLocker"
    /dev/nvme0n1p4: TYPE="ntfs" LABEL="WINRETOOLS"
    /dev/nvme0n1p5: TYPE="ntfs" LABEL="Image"
    /dev/nvme0n1p6: TYPE="ntfs" LABEL="DELLSUPPORT"

    注意这里的 ntfs 分区大多是恢复/工具分区;真正“装着 Windows 文件”的那块大分区如果启用了 BitLocker,会以 BitLocker 的形式出现。

结论就是:

  • 要启动 Windows:你只需要 EFI 分区(ESP,vfat)是可见的,GRUB 就能链式引导 Windows Boot Manager;BitLocker 不影响“能不能进 Windows”。
  • 要在 Linux 下读 Windows 大分区:就不要再拿 ntfsfix 去碰 BitLocker 分区了,要么在 Windows 里解密/暂停 BitLocker,要么走 dislocker 这条路。

6. (复盘补充)为什么日志里会出现“sdb1/exFAT”的烟雾弹#

我当时在 dmesg 里还看到过这样一行:

exFAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt.

它很容易让人误以为“第二块盘就是 sdb”。但实际上这类信息也可能来自 U 盘/移动硬盘等外接设备。

所以这次复盘给我的一个经验是:

  • dmesg 里出现某个设备名,并不等于它就是你要找的 Windows 系统盘。
  • lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,MOUNTPOINT + blkid 的交叉验证为准,别只盯着某一条日志就下结论。

小结#

这次事故最“反直觉”的地方在于:看起来像“我把盘删了”,实际上只是“系统没识别到”。最终结论可以浓缩成三句话:

  1. BIOS 里盘还在,Linux 里没了:优先怀疑 RST/RAID On。
  2. 切 AHCI 是关键一步,但要准备好 Windows 可能蓝屏,按安全模式方案走就行。
  3. 在没确认原因前不要写盘,尤其别碰 mkfs 这类会直接造成不可逆损失的命令。

给双系统安装者的建议#

  1. 安装前先看 BIOS:SATA Mode / Disk Operation 尽量选 AHCI,避免 RAID/RST 造成的识别坑。
  2. 关闭 Windows 快速启动:它可能让 NTFS 分区处于“半休眠锁定”状态,Linux 挂载会各种报错。
  3. 真遇到“硬盘消失”,先做只读排查:lsblkdmesg、看 BIOS,再决定下一步。

谨以此文记录那两个小时的冷汗,以及最后的虚惊一场。

Debian 安装后 Windows 磁盘“消失”?从绝望到找回的全过程复盘
https://blog.sheyiyuan.com/posts/双硬盘双系统翻车全复盘/
作者
Sheyiyuan
发布于
2026-02-13 18:41
许可协议
CC BY-NC-SA 4.0
如果这篇文章对你有帮助,可以请我喝杯咖啡~