Linux 安装程序找不到硬盘:SATA、NVMe、RAID 与 VMD 安全排障指南

安装程序显示 “No hard drives have been found”,不等于硬盘为空,也不等于应该立即改成 IDE 模式。现代机器可能使用 SATA/AHCI、NVMe、Intel VMD/RST、主板或硬件 RAID、HBA,虚拟机还可能使用 VirtIO/SCSI/NVMe 控制器。应先确定磁盘在哪一层消失,再做一项可撤销的改变。

数据安全边界: 本文只做只读识别与诊断,不提供分区、格式化、清除 RAID 元数据或写入磁盘的命令。在看见正确的型号、容量和序列号并完成可恢复备份之前,不要点击 “Erase disk”、创建分区表或初始化 RAID。

先判断“找不到”发生在哪一层

层次 应当看到的证据 看不到通常表示 下一步
UEFI/BIOS 或 RAID 管理器 物理盘,或 RAID 控制器导出的逻辑盘 供电、插槽、线缆、固件设置、盘体或阵列问题 停止安装;查设备厂商手册与硬件状态
PCI/平台控制器 SATA、AHCI、NVMe、VMD、RAID、SCSI 或 VirtIO 控制器 固件隐藏/禁用设备、虚拟硬件未挂载,或平台问题 核对固件/虚拟机清单,不改磁盘内容
Linux 内核块设备 /dev/sdX/dev/nvmeXnY/dev/mapper/... 内核或驱动不支持、模块未加载、签名受阻、固件/控制器模式不兼容 查内核日志、驱动绑定与安装镜像支持范围
安装器存储页面 与内核相同的目标盘或逻辑卷 安装器筛选、多路径/RAID 组装、加密或安装器缺陷 保存日志,查发行版的专用存储说明
分区和文件系统 已有分区可识别 加密、损坏或不支持的元数据 这不是“硬盘未检测”;不要格式化来诊断

如果固件本身看不到磁盘,换安装镜像通常无效。如果内核已经看到正确块设备,盲目切换 AHCI、IDE 或 VMD 反而会增加风险。

改设置以前的停止线

  1. 对所有需要保留的数据做可验证、可恢复的备份;RAID 不是备份。
  2. 记录磁盘的型号、容量、序列号、当前控制器模式、RAID/VMD 配置和启动模式;拍摄固件原始设置。
  3. 双启动 Windows 时,先在 Windows 中确认 BitLocker 状态,并把恢复密钥保存在该电脑之外的安全位置。微软说明,某些固件变更前应暂停 BitLocker,以免下次启动进入恢复模式;验证完成后恢复保护。
  4. 安排维护窗口,确保有恢复介质、设备厂商说明和恢复原设置的路径。
  5. 一次只改一项。如果现有系统不能启动,立即恢复原设置,不要继续叠加变化。

下面这些操作不属于检测步骤:mkfswipefs、创建新分区表、初始化磁盘、删除/重建阵列、清除控制器元数据。本文故意不提供其命令。

建立只读证据

使用仍受支持的发行版当前安装镜像,并按发行版的签名/校验和说明验证镜像。先进入 Live、Rescue 或安装器 shell,不开始安装。下面的命令不会主动格式化磁盘:

uname -a
cat /proc/cmdline
mokutil --sb-state
sudo lspci -nnk
sudo lsblk --paths --output NAME,TYPE,SIZE,MODEL,SERIAL,TRAN,FSTYPE,MOUNTPOINTS
cat /proc/partitions
lsmod
sudo dmesg --level=err,warn
sudo dmesg | grep -i -E 'ahci|ata|nvme|vmd|raid|scsi|virtio|firmware|module|signature|secure'

某些精简安装环境没有 mokutil,或限制读取 dmesg;这本身不是磁盘故障。保存命令、发行版版本、ISO 校验值、内核版本、机器/主板型号和时间。对外分享日志前,遮盖序列号、WWID、主机名、用户名、网络地址及其他资产标识。

阅读证据时按顺序判断:

  • lspci -nnk 完全没有相关控制器:回到固件或虚拟机配置层。
  • 控制器存在但 Kernel driver in use 为空,或日志报告不支持/缺少固件:查发行版和硬件厂商对该准确型号、发行版版本与架构的支持。
  • 日志出现模块签名、密钥或锁定错误:按 Secure Boot 分支处理,不要随意下载 .ko 文件。
  • lsblk 已出现正确的磁盘,但安装器没有:检查安装器日志、专用存储/多路径/RAID 页面及已知问题,不要改控制器模式来“碰碰运气”。
  • lsblk 只有安装 U 盘:用型号和传输类型确认,避免把 U 盘误认为目标盘。

如果镜像带有 nvme-cli,可以补充运行:

sudo nvme list

没有这个命令不需要在安装环境中临时安装未知软件;lsblk、PCI 绑定和内核日志已经能建立主要证据。

按存储拓扑排查

SATA 与 AHCI

现代 Linux 通常以 AHCI 使用 SATA 盘。2011 年常见的“切到 Compatibility/IDE”只适用于特定旧硬件和旧安装器,不是当前默认方案。先用较新的、受支持的安装镜像;只有设备厂商或发行版针对该准确型号明确要求时,才考虑兼容模式。

改变 SATA 模式会改变现有操作系统看到启动盘的方式。双启动机器必须先完成备份、BitLocker 门槛和 Windows 侧的控制器迁移准备;如果 Windows 报 INACCESSIBLE_BOOT_DEVICE,恢复原控制器模式并停止安装排障。

NVMe

NVMe 盘可能直接暴露给操作系统,也可能位于 VMD、RAID 或其他平台控制器之后。固件看见 NVMe 型号而 Linux 只看见 VMD/RAID 控制器时,应查该机器和发行版对该拓扑的支持,不应因为 /dev/nvme0n1 不存在就判断盘已损坏。

先更新到该发行版当前安装介质或厂商支持的固件版本,并记录升级前后状态。固件升级本身有断电和 BitLocker 恢复风险,必须按厂商流程执行,不应作为无证据的第一步。

Intel VMD/RST 与固件 RAID

VMD/RST 可能把单盘或阵列通过控制器呈现。Canonical 当前文档明确警告:关闭 RST 或从 RST 改为 AHCI 可能破坏阵列可访问性,也可能让现有 Windows 无法启动。

安全顺序是:

  1. 确认这是普通单盘、缓存/Optane、固件 RAID,还是企业管理的阵列。
  2. 检查受支持的新安装镜像能否直接识别。
  3. 如果必须双启动,严格使用发行版和设备厂商针对该型号的 RST-to-AHCI 流程;先备份、准备恢复密钥并验证回滚。
  4. 改一项设置后,先验证原 Windows/现有系统仍能正常启动,再回到 Linux 安装器。
  5. 对真实 RAID,不要关闭控制器、拆散成员盘或新建逻辑盘;交由阵列管理员按备份和恢复计划处理。

硬件 RAID 通常要先在控制器中存在健康的逻辑盘,操作系统才会看见一个安装目标。创建或重建逻辑盘可能清除数据,因此不属于本文的安全诊断步骤。

虚拟机

确认虚拟磁盘确实已挂载、未标记为只在另一快照/虚拟机中使用,并记录虚拟控制器类型。现代虚拟环境常用 VirtIO、SCSI、SATA 或 NVMe;不要把“改成 IDE”当通用修复。

不要删除已有虚拟磁盘。若要区分驱动问题和原盘问题,可在关机和快照/备份后,添加一个明确为空、容易按容量识别的测试盘;验证后移除测试盘,不改变原盘链或快照关系。

安装镜像、内核与驱动

优先使用发行版仍支持的当前点版本镜像,并验证其签名和校验和。旧 ISO 的内核可能早于控制器;“磁盘在新 Live 镜像可见、旧镜像不可见”是强证据,但仍不授权写盘。

只有发行版、硬件厂商或可信控制器厂商明确说明需要时,才加载与准确发行版、版本、内核、架构和控制器 ID匹配的官方驱动更新介质。Red Hat 的当前安装文档也把驱动更新定义为可选、仅在确有需要时使用。

Secure Boot 开启时,附加内核模块可能因签名不被信任而拒绝加载。保留 Secure Boot 是默认选择;获取发行版或厂商签名的匹配驱动,并检查日志。不要把永久关闭 Secure Boot 或强制加载未知模块当作首选修复。

BitLocker、加密与“盘存在但内容不可见”

BitLocker 会使未解锁内容对 Linux 安装器不可读;这与固件或内核完全看不到磁盘不同。Canonical 说明,某些并排安装流程无法在 BitLocker 启用时安全映射 Windows 数据。

  • 想保留 Windows:停止安装,按当前 Ubuntu/微软文档和你的 Windows 版本处理 BitLocker;先验证备份与恢复密钥。
  • 想覆盖整个 Windows:只有数据所有者明确接受不可恢复的数据删除,且再次核对目标磁盘后,才在安装器中选择破坏性路径。
  • 企业设备:BitLocker、Secure Boot、VMD/RST 和固件策略可能由组织管理,应联系管理员,不要规避策略。
  • LUKS、硬件加密盘和其他加密同理:能看到块设备却不能读取内容,不是加载存储驱动的理由。

一个变化、一个验证、一个回滚点

尝试 成功证据 失败或停止条件 回滚
换用已验证的当前安装镜像 同一固件配置下出现正确磁盘 仍无控制器/块设备 回到原介质;保留日志比较
使用官方匹配驱动更新 控制器绑定预期驱动,磁盘按型号/容量出现 签名失败、版本不符、异常 I/O 移除驱动介质,重启干净环境
按官方流程从 RST/VMD 改为 AHCI 原系统和 Linux 都能正确识别 Windows 不启动、阵列/缓存警告、盘数变化 立即恢复记录的原固件设置
调整虚拟控制器 测试盘和目标盘映射符合预期 快照链、磁盘路径或启动盘含糊 关机并恢复虚拟机快照/原控制器
固件更新 厂商发布说明覆盖该问题,更新后证据改善 型号/版本不匹配、供电或恢复条件不足 使用厂商支持的恢复路径;不要强刷

磁盘出现后仍要做最后一道门槛:比较型号、序列号、容量、现有分区和预期安装目标;让另一位操作者复核更好。只有完成备份并明确接受写入后,才离开本文的只读诊断阶段。

什么时候应该停止并升级处理

  • 固件看不到盘,或出现介质错误、掉盘、重复控制器重置、I/O 错误。
  • RAID 降级、外来配置、缓存未落盘,或成员盘数量不符。
  • 设备属于公司/学校,固件、BitLocker 或 Secure Boot 受管理。
  • 唯一数据副本在目标盘上,或恢复密钥/备份未经验证。
  • 需要未知来源驱动、关闭安全策略、拆盘或写入元数据才能继续。

此时应保存去标识化证据,联系设备厂商、发行版支持、存储管理员或数据恢复专业人员。

当前官方资料

历史原文存档(2011,仅供考证)

存档说明: 以下是 source_export 的完整可见正文,仅规范化了行尾空白;未作删节或安全/隐私替换。它保留了当年的 IDE 兼容模式建议、旧发行版举例和措辞,不是当前操作指南。链接位于纯文本代码块中,不会作为操作入口。

解决:安装linux时出现:No hard drives have been found

Table of Contents

Toggle

- [问题描述](https://blog.lazying.art/en/html/computer_internet/unix_linux/429/%e5%ae%89%e8%a3%85linux%e6%97%b6%e5%87%ba%e7%8e%b0%ef%bc%9ano-hard-drives-have-been-found.html/#%E9%97%AE%E9%A2%98%E6%8F%8F%E8%BF%B0)
- [原因分析](https://blog.lazying.art/en/html/computer_internet/unix_linux/429/%e5%ae%89%e8%a3%85linux%e6%97%b6%e5%87%ba%e7%8e%b0%ef%bc%9ano-hard-drives-have-been-found.html/#%E5%8E%9F%E5%9B%A0%E5%88%86%E6%9E%90)
- [解决方案](https://blog.lazying.art/en/html/computer_internet/unix_linux/429/%e5%ae%89%e8%a3%85linux%e6%97%b6%e5%87%ba%e7%8e%b0%ef%bc%9ano-hard-drives-have-been-found.html/#%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88)

  - [虚拟机](https://blog.lazying.art/en/html/computer_internet/unix_linux/429/%e5%ae%89%e8%a3%85linux%e6%97%b6%e5%87%ba%e7%8e%b0%ef%bc%9ano-hard-drives-have-been-found.html/#%E8%99%9A%E6%8B%9F%E6%9C%BA)
  - [实体机](https://blog.lazying.art/en/html/computer_internet/unix_linux/429/%e5%ae%89%e8%a3%85linux%e6%97%b6%e5%87%ba%e7%8e%b0%ef%bc%9ano-hard-drives-have-been-found.html/#%E5%AE%9E%E4%BD%93%E6%9C%BA)

    - [方案1](https://blog.lazying.art/en/html/computer_internet/unix_linux/429/%e5%ae%89%e8%a3%85linux%e6%97%b6%e5%87%ba%e7%8e%b0%ef%bc%9ano-hard-drives-have-been-found.html/#%E6%96%B9%E6%A1%881)
    - [方案2](https://blog.lazying.art/en/html/computer_internet/unix_linux/429/%e5%ae%89%e8%a3%85linux%e6%97%b6%e5%87%ba%e7%8e%b0%ef%bc%9ano-hard-drives-have-been-found.html/#%E6%96%B9%E6%A1%882)

## 问题描述

安装linux时出现:

No hard drives have been found.

You probably need to manually choose device drives for the installation to succeed.

Would you like to select drives now?

## 原因分析

如果你是在本身机器上安装,需要把硬盘接口设置成IDE的;如果你是用虚拟机的话必须创建一个IDE硬盘。

## 解决方案

### 虚拟机

虚拟机默认创建的硬盘是SCSI的。

具体操作:

在虚拟机里把现在的scsi硬盘删除,然后再添加一个ide硬盘就可以了。

### 实体机

#### 方案1

找你的 SATA 驱动,在安装时载入 SCSI 的地方载入 SATA 驱动。不过前提是你的 Linux 系统是特殊的一些版本,基本都是服务器专用版本,因为新版本的内核自带 SATA 驱动,所以一把厂家只提供特殊需要的一些系统版本,一般都只有 RHEL 4/5 系列,SUSE 企业版两个。另外还需要你的主板是特殊的主板,一般都是服务器专用主板(就是一个主板价格顶上一台家用机的那种)。

#### 方案2

打开主板 SATA 的兼容模式(有的叫传统模式),但这样如果你的 Windows 系统是 SATA 状态下面安装的,它会变得不能使用,听说需要重装,但也不绝对。但这样 SATA 的性能优势全无,听说也不能打开 DMA 来加速硬盘的读写。但性能损失多少不知道。

具体操作

按F1(或F2、ESC)进入BIOS,Config–>SATA–>Compatibility[或IDE]

Leave a Reply