简介:面向 IBM X3100 M4 服务器运维、装机与系统部署人员,这份驱动包用于解决 C100 阵列卡在 Windows Server 2008/2003 环境下识别硬盘、安装系统时缺少兼容驱动的问题,也可为 RAID 0、RAID 1、RAID 5、RAID 10 阵列的驱动更新与故障排查提供参考。压缩包共 82 个文件,约 1.96MB,以 inf、sys、cat、md5、oem、xml 和 megasr 相关文件为主,分别承担驱动安装信息、核心驱动、数字签名、完整性校验、无人值守安装应答等作用,并附使用更新说明与来源链接说明,便于核对安装条件。资源覆盖 W2K8 x86/x64、W2K8 R2 x64 与 W2K3 x86/x64 等多个平台版本,包含签名驱动,适合按系统架构选取对应文件制作启动介质、集成部署镜像或排查驱动版本不匹配问题。目前已有 743 人学习,适合需要补齐阵列卡驱动、确认固件与驱动对应关系、减少系统部署中断的读者参考。
1. 老机器重装系统,卡在「找不到硬盘」:x3100 M4 与 C100 的驱动怎么配
一台 x3100 M4 从库房搬出来,四个盘位插满,开机自检一路正常,结果 Windows Server 2003 或 2008 的安装程序跑到分区那一步,只丢下一句「没有找到任何磁盘」。盘没坏,介质也没做错,多数时候是安装程序手里没有 ServeRAID C100 这个控制器的驱动。C100 是板载软件 RAID,Windows 原生不认,你不给它驱动,它就不报盘。这篇笔记把 x3100 M4 上装 win2k8 和 2k3 的路子拆开:先分清盘挂在哪个控制器名下,再分别处理两套系统完全不同的驱动加载方式,最后记几个反复踩到的坑。适合手里有这台存量机器、要跑老系统或做兼容性验证的人。
2. 先认清盘挂在谁名下:C100、芯片组 SATA 与独立阵列卡的分辨方法
x3100 M4 的存储控制器并不唯一。同一批机器出厂配置就有差别:有人手里是纯芯片组 SATA,有人是带 ServeRAID C100 的版本,还有人在那一个 PCIe 槽上插了独立阵列卡。这三种情况下安装程序要的驱动完全不是一回事,给错了轻则不报盘,重则装到一半蓝屏。所以动手之前,先花两分钟把控制器确定下来,比后面反复试驱动省事得多。
还有一个流传很广的误解:C100 就是芯片组自带的那个 RAID,装个 Intel 的存储驱动就行。不是。C100 走的是嵌入式 RAID 方案,驱动模型、硬件 ID、配置工具都和芯片组 SATA 是两套东西,驱动不能互换。我见过有人把芯片组的 iaStor 系列文件塞进 C100 的目录里,F6 阶段能选到条目,装完重启直接 0x7B,查半天才发现控制器名对不上。
2.1 开机自检那几秒是信息量最大的地方
按下电源之后,POST 阶段会有一行 Option ROM 的横幅,停一两秒。这行字基本就把答案写脸上了:如果是板载 C100,横幅里会带控制器名字,并且提示按某个组合键进配置界面,常见的是 Ctrl 加一个字母;如果是芯片组 RAID,横幅风格更朴素,提示的按键也不同;如果是插卡的硬 RAID,横幅通常是另一种界面入口,进去之后是一套完整的 WebBIOS 风格配置页。三个入口长得完全不一样,进去看一眼就知道自己面对的是谁。
问题是这行字闪得太快。我的做法是手机录像,开机全程录下来,然后逐帧看。听起来土,但对这种只出现一次的信息源来说是最靠谱的办法,比反复重启碰运气强。录下来之后,把控制器名字、Option ROM 版本、提示按键三样记下来,后面找驱动时能直接用上。
如果横幅什么都没显示,说明控制器的 Option ROM 被关掉了,或者盘根本没接在 RAID 控制器上。这时候进 BIOS 的存储相关菜单看:只提供 IDE / AHCI / RAID 三选一的,那是芯片组 SATA;如果有独立的 RAID 配置条目或者单独的控制器开关,那就是 C100 或者独立卡。不同固件版本的菜单命名有差异,但都落在存储这一层,顺着找就能找到。
2.2 用硬件 ID 把控制器确定下来
横幅只能告诉你「有这个东西」,要精确到驱动,还得靠硬件 ID。方法是在一个已经能启动的系统里(哪怕是临时装的、或者 WinPE)查设备的实例 ID,然后拿着这串字符去驱动包的 inf 文件里搜,能搜到就是匹配,搜不到就是给错了。这比看控制器名字靠谱,因为名字可以随便写,硬件 ID 是固件里烧死的。
在 Windows Server 2003 或 2008 上都可以用 wmic,2008 还可以用 PowerShell:
# 列出所有 PCI 设备里名字带 RAID / SATA / Storage 的,输出实例 ID Get-WmiObject Win32_PNPEntity | Where-Object { $_.Name -match "RAID|SATA|Storage|ServeRAID" } | Select-Object Name, DeviceID, Service, Status | Format-Table -AutoSize逻辑说明:Win32_PNPEntity 是即插即用设备表,Name 是可读名称,DeviceID 就是硬件 ID 字符串,Service 是当前绑定的驱动服务名。三个字段一起看,能判断这个设备现在到底被谁接管了——如果 Service 是空的,说明没驱动,那就是安装程序不认盘的直接原因。
参数说明:-match后面是正则,可以按需要加减关键词;Format-Table -AutoSize只是让输出别被截断,去掉也不影响结果。如果是 2003 且不想开 PowerShell,用下面这条等价命令:
wmic path Win32_PnPEntity where "Name like '%RAID%'" get Name,DeviceID,Service /format:list拿到 DeviceID 之后,注意它的结构:前面是总线类型,中间 VEN_ 开头那一段是厂商编号,DEV_ 开头那一段是设备编号,后面还可能跟子系统的 SUBSYS_。去驱动包的 inf 里全文搜索 DEV_ 那一段(连同后面的四位十六进制一起搜),搜得到,这个包就是给这块卡的;搜不到,哪怕文件名写着 C100 也别用。
2.3 驱动包里的文件决定了它能装到哪些系统上
同一个控制器,Windows Server 2003 和 2008 要的文件不一样,32 位和 64 位也不一样。2003 的文本模式安装阶段只认一种特定的描述文件加 sys 的组合,2008 走的是标准的即插即用 inf 加载路径。把这两套搞混,是新手最容易翻车的地方。
| 目标系统 | 安装阶段必须有的文件 | 由谁读取 | 缺了会怎样 |
|---|---|---|---|
| 2003 x86 | txtsetup.oem、.sys、.inf | 安装程序 F6 文本模式 | F6 后无条目可选 |
| 2003 x64 | 同上,且需签名 | 同上,签名校验更严 | 弹未签名警告或直接拒绝 |
| 2008 x86 | .inf、.sys、.cat | 「加载驱动程序」向导 | 向导里显示不兼容 |
| 2008 x64 | 同上,且 inf 需含 64 位段 | 同上 | 同上 |
| 2008 R2 x64 | 同上,且需 R2 对应段 | 同上 | 能装上但可能起不来 |
拿到一个解压好的驱动包,先别急着插 U 盘。跑个小脚本把包里的结构扫一遍,比人肉翻目录快,也不容易漏。
import re import sys import pathlib def scan_inf(path): """返回 (支持的架构列表, 指向的 sys 文件名列表)""" txt = path.read_text(encoding="utf-8", errors="ignore") archs = [] # inf 里用 [xxx.NTx86] / [xxx.NTamd64] 这样的段名声明架构 if re.search(r"^\s*\[.*NTx86.*\]", txt, re.M | re.I): archs.append("x86") if re.search(r"^\s*\[.*NTamd64.*\]", txt, re.M | re.I): archs.append("x64") if re.search(r"^\s*\[.*NTamd64\.6\.1.*\]", txt, re.M | re.I): archs.append("x64-R2") svc = re.findall(r"ServiceBinary\s*=\s*.*?([\w\.\-]+\.sys)", txt, re.I) return archs, sorted(set(s.lower() for s in svc)) def scan_txtsetup(path): """返回 txtsetup.oem 里登记的硬件 ID 条数和样例""" txt = path.read_text(encoding="utf-8", errors="ignore") ids = re.findall(r'^\s*id\s*=\s*"([^"]+)"', txt, re.M | re.I) return len(ids), ids[:3] root = pathlib.Path(sys.argv[1]) for inf in sorted(root.rglob("*.inf")): archs, svc = scan_inf(inf) if archs or svc: print(f"{inf.relative_to(root)}\t架构={','.join(archs) or '未识别'}\t二进制={','.join(svc) or '未识别'}") for oem in sorted(root.rglob("txtsetup.oem")): n, sample = scan_txtsetup(oem) print(f"{oem.relative_to(root)}\t硬件ID条数={n}\t样例={sample}")逻辑说明:脚本做两件事。第一,遍历目录下所有 inf,用正则找段名里的架构标记,同时把 ServiceBinary 指向的 sys 文件名抠出来,这样能立刻看出这个 inf 是给 32 位还是 64 位、对应哪个驱动文件。第二,把 txtsetup.oem 里登记的硬件 ID 数出来,条数为 0 说明这个 oem 文件是空的或者格式坏了,F6 阶段一定选不到东西。
参数说明:sys.argv[1]是驱动包解压后的根目录,必须传。errors="ignore"是为了兼容 OEM 包里常见的 GBK / Latin-1 混编。rglob会递归所有子目录,所以解压后的 x86 / x64 分层目录能一次扫完。如果输出里某个 inf 显示「架构=x86」但它躺在 x64 目录下,这个包八成被人手动整理过,后面一定要用硬件 ID 再核一遍。
3. Windows Server 2003 这条路:F6 软盘、nLite 集成与 x64 签名
2003 的安装程序在文本模式阶段就已经开始访问磁盘了,而这个阶段它只认一种非常古老的加载方式:从软驱 A: 读取一个描述文件,按里面的登记项把驱动塞进内核。这就解释了为什么很多人拿 2008 能装上的 U 盘去装 2003,到分区那步照样不报盘——2003 根本不看 U 盘里的 inf,它只看 A: 盘。
理解这一点之后,三条路就清楚了:给它一个真的 A: 盘;把驱动提前压进安装源,让它变成「原生支持」;或者先装到别的盘上再迁移。第三条在服务器上基本不可行,所以实际就是前两条。
3.1 做一张 2003 能认出来的 F6 驱动盘
F6 盘不是把驱动文件拷到软盘上就行,关键在那个描述文件。它规定了安装程序在 F6 之后显示什么条目、按什么硬件 ID 匹配、从盘上哪个位置加载 sys。文件结构大致如下(具体内容以包内实际为准,这里只说明结构,方便你判断手里的盘是不是做对了):
[Disks] d1 = "ServeRAID C100 Driver Disk", \megaSR, \ [SCSI] megasr = "ServeRAID C100 SATA RAID Controller" [Files] driver = d1, megasr.sys, megasr [HardwareIds.SCSI.megasr] id = "PCI\VEN_xxxx&DEV_xxxx&SUBSYS_xxxxxxxx"逻辑说明:[Disks]声明盘的卷标和根路径;[SCSI]段决定 F6 之后屏幕上显示的那一行文字,写得不清楚你自己都分不清选哪个;[Files]把盘上的 sys 文件和加载后的服务名对应起来;[HardwareIds.SCSI.xxx]是最关键的一段,里面的 id 必须和 2.2 节查到的硬件 ID 对得上,否则安装程序会认为「这个驱动不是给这台机器的」。
参数说明:megasr这个服务名在不同版本的包里可能不同,别照抄,以 inf 里 ServiceBinary 那一行前面的服务名为准,2.3 节的脚本已经把它打出来了。卷标建议改成能一眼认出的名字,因为安装程序会在 F6 之后显示卷标,卷标乱写容易出现「两张盘分不清」的尴尬。
制作方式上,真实 USB 软驱是最省心的,前提是 BIOS 里把 USB 传统支持打开,让它在自检时被识别成 A:。用 U 盘模拟软驱也行,但要确认模拟出来的盘符就是 A:,模拟成 B: 的话 2003 一样读不到。这一步没有捷径,我试过把文件直接放 U 盘根目录然后指望它认,结果当然是浪费一晚上。
3.2 用 nLite 把驱动压进安装源
F6 盘的问题是依赖外部介质,一旦软驱坏了或者 BIOS 不认,整条路就断了。更稳的做法是把文本模式驱动直接集成进安装源,让安装程序启动时就带着这个驱动,压根不需要按 F6。
操作顺序是:先把 2003 的安装光盘内容完整拷到本地目录(注意是解压后的目录结构,不是挂载 ISO),然后在集成工具里指向这个目录,进入驱动集成环节,选择「单个驱动」并指向 inf 文件,模式一定要选文本模式(Textmode driver),最后在弹出的控制器列表里勾选和 2.2 节硬件 ID 匹配的那一项。勾选这一步是整个流程里唯一不能出错的地方,勾错了集成就等于白做,而且不会有任何报错提示,你只会看到装完还是不报盘。
集成完成后重新生成 ISO,再写盘或者做成可引导 U 盘。这里有个细节值得注意:集成过文本模式驱动的安装源,启动时可能会比原版慢几秒,因为安装程序要先加载额外的驱动,这是正常现象,不是卡死。
如果集成了还是找不到盘,别急着怀疑驱动包,先确认三件事:安装源是不是从原版重新拷的(在已集成过的源上二次集成容易出问题)、控制器条目勾的是不是 32 位那一项、以及集成时选的是不是文本模式而不是即插即用模式。这三条我踩过其中两条。
3.3 x64 版本绕不开的签名问题
32 位的 2003 对驱动签名比较宽松,64 位就严格得多。文本模式阶段如果加载的是未签名驱动,安装程序会弹一个警告,可以按键跳过继续,但这个操作只对当次有效。系统装好之后,如果驱动本身没有有效签名,每次启动都可能再弹一次,甚至在某些更新之后直接被拒。
处理办法按优先级排:第一优先是用厂商签过名的正式包,这是唯一干净的路;第二是在安装时看到警告按键跳过,先把系统装起来,装完立刻去补一个签过名的版本;第三才是临时关闭签名强制,而且要知道这属于降低系统保护级别的操作,只适合在隔离的测试环境里用,别在生产机上长期这么干。
还有一个容易忽略的点:2003 x64 对软驱的访问路径和 32 位版本不完全一致,某些 USB 软驱在 64 位安装程序里会被识别但读不出内容。如果 F6 阶段反复读盘失败,换一个软驱试试,比在那里反复重做盘有效。
3.4 装完之后补驱动的正确顺序
有一种情况是系统已经装好了,但当时是用 IDE 兼容模式装的,现在想切到 RAID 模式。这时候不能直接进 BIOS 改模式重启,那样大概率 0x7B。正确顺序是:先在设备管理器里把控制器驱动装上(此时可能显示为未知设备),确认驱动加载成功且没有冲突,再进 BIOS 切换模式,最后重启。切换之后第一次启动会比较慢,因为系统要重新枚举存储设备。
这个顺序反了会怎样?系统在启动早期需要加载存储驱动才能读到系统盘,如果模式已经切了但驱动还没就位,内核在初始化阶段就找不到启动卷,直接蓝屏,而且这个蓝屏发生在任何日志写入之前,事件查看器里什么都查不到,属于典型的黑匣子故障。
4. Windows Server 2008 这条路:加载驱动向导、DISM 注入与 R2 的边界
2008 的安装程序比 2003 现代得多,它本身就跑在一个 WinPE 环境里,支持在图形界面里动态加载驱动。这意味着你不再需要软驱,一个 U 盘就够。但也正因为门槛低了,很多人以为随便丢个驱动进去就行,结果在「不兼容」三个字上卡住。
4.1 安装界面里的「加载驱动程序」
进到安装程序选择安装位置的界面,如果列表是空的,左下角有「加载驱动程序」入口。点进去,浏览到 U 盘上驱动所在目录,注意要指到包含 inf 的那一层,而不是它的上级目录。指对之后,列表里会显示这个包里所有可用的驱动条目,勾选控制器那一项,下一步。
这里有个很实用的判断技巧:加载向导里有一个「隐藏不兼容的驱动程序」的勾选项,默认是勾上的。如果你指向目录之后列表空空如也,先把这个勾去掉看看——如果去掉之后出现了条目但标着不兼容,说明架构给错了(比如 64 位系统给了 32 位包),或者这个 inf 里根本没有当前系统版本对应的段。这个小开关能帮你在一分钟内区分「驱动包不对」和「路径指错了」,比反复换包快得多。
加载成功后返回安装界面,点刷新,磁盘列表就出来了。如果驱动加载显示成功但磁盘还是不出来,问题就不在驱动上了,去 RAID 配置界面看有没有建虚拟磁盘——C100 是软 RAID,没建 VD 的时候物理盘对操作系统就是不可见的。
还有个物理层面的坑:这台机器的前面板 USB 口和后置口在安装环境里的识别情况可能不同。如果 U 盘插前面板在加载向导里看不到,换到后置口再试。老机器的前置 USB 走线长、供电弱,在 WinPE 环境下出问题是常事。
4.2 用 DISM 把驱动打进 boot.wim 和 install.wim
如果不想每次装都手动加载,或者要批量部署,把驱动直接注入安装镜像是更彻底的做法。2008 自带 DISM,在 WinPE 或者任意一个同版本系统里都能跑。
# 1) 准备挂载目录 mkdir C:\mount\boot C:\mount\install # 2) 挂载 boot.wim 的第 2 个映像(Setup 环境) dism /Mount-Wim /WimFile:D:\sources\boot.wim /Index:2 /MountDir:C:\mount\boot # 3) 递归注入驱动,/Recurse 会扫描子目录里的所有 inf dism /Image:C:\mount\boot /Add-Driver /Driver:D:\drv\C100\Win2008\x64 /Recurse # 4) 提交并卸载 dism /Unmount-Wim /MountDir:C:\mount\boot /Commit # 5) install.wim 同样操作,但要按映像索引逐个来 dism /Mount-Wim /WimFile:D:\sources\install.wim /Index:1 /MountDir:C:\mount\install dism /Image:C:\mount\install /Add-Driver /Driver:D:\drv\C100\Win2008\x64 /Recurse dism /Unmount-Wim /MountDir:C:\mount\install /Commit逻辑说明:boot.wim 里通常有两个映像,索引 1 是 WinPE,索引 2 才是安装程序真正运行的 Setup 环境。只在索引 1 上注入,进到图形安装阶段照样不认盘,这是最常见的漏注。install.wim 里的每个索引对应一个系统版本(标准版、企业版等),只注一个索引,装另一个版本时又没有驱动了,所以要按实际要装的版本逐个处理。
参数说明:/MountDir指向的目录必须是空目录,非空会挂载失败。/Recurse的作用是让 DISM 自己往下找 inf,不给这个参数就必须精确指到 inf 所在目录。/Commit不能省,只挂载不提交等于什么都没改,而且下次挂载会因为残留的挂载状态报错——真遇到了用/Cleanup-Wim清一下。注入完成后建议用dism /Image:C:\mount\boot /Get-Drivers复核一遍,确认驱动真的在列表里,别凭感觉。
4.3 2008 与 2008 R2 不能混为一谈
这两个系统的版本号只差一点,但内核代际不同,驱动模型也有差异。最常见的翻车场景是:手里只有一个写着「2008」的驱动包,装 R2 的时候也拿它去加载,向导里能选、能装、能进系统,然后过几天发现某个存储相关的功能异常,或者干脆在某个更新之后起不来。
| 对比项 | Windows Server 2008 | Windows Server 2008 R2 |
|---|---|---|
| 内核代际 | NT 6.0 | NT 6.1 |
| 安装程序 | 支持图形界面加载 inf | 同,但对驱动段要求更严 |
| 驱动包判断方法 | inf 里要有对应架构段 | 除了架构段,还要有 6.1 版本段 |
| 混用的典型后果 | 能装上,稳定性存疑 | 安装阶段就可能拒绝加载 |
判断方法还是回到 2.3 节的脚本:如果扫出来的架构只有 x86/x64 而没有 x64-R2 那一项,那这个包就是针对早期版本的,装 R2 时不要指望它稳妥。反过来,带 R2 段的包一般向下兼容,因为 inf 里通常同时保留了 6.0 的段。
另外,2008 和 2008 R2 的启动管理器版本也不同,这意味着一台机器上如果同时存在两套系统的引导项,改动其中一个的存储驱动可能影响另一个的启动。多系统环境里改驱动之前,先把引导配置备份出来,这是后悔药,平时用不上,用上一次就值了。
5. 避坑清单:蓝屏 0x7B、阵列降级与 PE 里看不见盘
前面几章讲的是「怎么装对」,这一章讲「装的过程中会在哪儿翻车」。下面五条都是我在这台机器上真实遇到的,每条按现象、原因、解决三段写,遇到对得上的直接照做就行。
5.1 安装阶段的三次翻车
现象:系统装完第一次重启,滚条走到一半蓝屏,错误码 0x7B(INACCESSIBLE_BOOT_DEVICE),安全模式也进不去。
原因:安装时的存储控制器模式和现在不一致。典型情况是装系统时 BIOS 里是 IDE 兼容模式,装完改成 RAID 或者 AHCI 再启动;也可能是反过来的,装机时加载了 RAID 驱动,后来有人把模式改回 IDE,驱动加载不上,同样找不到启动卷。本质上是内核启动早期需要的那个驱动,在当前模式下没有被加载。
解决:先改回安装时的模式,让系统能起来,然后在设备管理器里把目标模式的控制器驱动装好并确认没有冲突,再切模式。如果已经切了且起不来,用安装介质进修复模式,加载对应驱动后用离线注册表把服务的启动类型改回来,改完再重启。这一步的关键是不要连续试,每试一次都要想清楚当前模式对应哪个驱动。
现象:加载驱动程序向导里指向 U 盘目录后,列表空白,去掉「隐藏不兼容」的勾之后出现条目但标着不兼容。
原因:架构给错了,最常见是 64 位系统给了 32 位包;其次是这个 inf 里没有当前系统版本对应的段;还有一种少见情况是包被解压工具截断了,inf 内容不完整。
解决:先用 2.3 节的脚本扫一遍包,确认架构;再看 inf 里的版本段是否覆盖当前系统;最后核对文件大小,正常包解压后文件是完整的。三条都过了还是不兼容,那就是包本身不对,换包,别在同一个包上耗。
现象:2003 安装时反复按 F6,屏幕闪了一下但没出现选驱动的界面,或者出现了界面但列表是空的。
原因:前者通常是软驱没被识别成 A:,或者 USB 传统支持没开;后者是描述文件里的硬件 ID 和实际控制器对不上,或者描述文件格式有问题。
解决:进 BIOS 确认 USB 传统支持已开,自检时看软驱有没有被枚举出来;描述文件用文本编辑器打开,检查[HardwareIds]段的 id 是否和 2.2 节查到的一致。这两条都确认无误还是不行,改用集成方式,绕开 F6。
5.2 运行维护阶段的两次翻车
现象:机器跑着跑着突然卡顿,进 RAID 配置界面一看,虚拟磁盘状态是降级,某块盘显示离线。
原因:C100 是软件 RAID,重建逻辑由驱动和固件配合完成,不是纯硬件行为。掉电、非正常关机、或者热插拔顺序不对,都可能让某块盘被判离线。另外盘本身如果有坏道,也会先表现为降级。
解决:先确认离线盘是物理故障还是逻辑离线。物理盘换掉之后,进配置界面把新盘设为热备或者手动触发重建,重建期间不要断电、不要重启。如果是逻辑离线,把盘重新上线再触发重建即可。重建过程对性能影响明显,别在这期间做重负载操作。
现象:用 WinPE 启动做维护,diskpart 里 list disk 只有一个 U 盘,看不到阵列。
原因:WinPE 镜像里没有集成这个控制器的驱动。PE 是个精简环境,不会自动带所有存储驱动,尤其是这种老服务器的板载软 RAID。
解决:用 4.2 节的 DISM 方法把驱动注入 PE 镜像的 boot.wim,重新生成可引导介质。如果只是临时用一次,也可以在 PE 启动后用 drvload 手动加载 inf,但每次都要重来,不如直接注入。
6. 装完不算完:三个验证点和一个我每次都做的动作
系统能起来、能看到盘、能分区,只能说明驱动加载这一步过了,不代表阵列真的在健康工作。我一般会做三层验证,从系统内到固件层,一层层往上收。
第一层看设备管理器。控制器条目名字对不对、有没有黄色感叹号、驱动版本和日期是不是你预期的那个。名字对但带感叹号,说明驱动加载了但初始化和固件通信有问题;名字不对,说明系统用了个兼容驱动顶上了,性能和行为都不可控。
第二层看磁盘和卷。用 diskpart 看物理磁盘的数量和容量,是否和 RAID 配置界面上建的虚拟磁盘一致。这一步能发现「驱动装上了但只认到一半盘」这种隐蔽问题。
diskpart list disk select disk 0 detail disk exit逻辑说明:list disk列出操作系统可见的所有物理磁盘,阵列卡建出来的虚拟磁盘在这里会显示成一个整体,容量等于 VD 的容量而不是单块物理盘。detail disk会打出这个磁盘的总线类型和关联的设备路径,如果总线类型显示成某种通用值而不是预期的存储控制器,说明驱动绑定有问题。
参数说明:select disk 0里的编号以list disk的实际输出为准,选错了会操作到别的盘,执行detail类只读命令问题不大,但养成先看清再选的习惯。
第三层回到固件。重启进 RAID 配置界面,看虚拟磁盘状态是不是最优、物理盘有没有告警、电池或者缓存相关的提示有没有异常。软件层看到的一切都是固件上报的,固件层不对,上面全白搭。
| 验证层 | 正常表现 | 异常时优先看哪里 |
|---|---|---|
| 设备管理器 | 控制器名正确、无感叹号 | 驱动 inf 的硬件 ID 是否匹配 |
| diskpart | 磁盘数等于 VD 数、容量一致 | RAID 配置界面里 VD 是否完整 |
| 固件配置界面 | VD 状态最优、无物理盘告警 | 物理盘健康状态与线缆 |
至于那个每次都做的动作——我会在建完 VD、装系统之前,先把 RAID 配置界面的每一页拍一遍照,包括 VD 属性、物理盘列表、控制器固件版本。听起来多余,但真出问题的时候,这几张照片就是唯一能证明「装之前是什么状态」的东西。有一次一台机器装完系统后容量对不上,翻出照片一看,是建 VD 的时候少勾了一块盘,跟驱动一点关系没有——要是没那几张照片,大概会在驱动上耗掉一整天。
从那以后我每次碰这类老机器,第一件事不是插盘装系统,而是先把自检画面录下来、把固件配置拍照存档,再动手。血泪经验换来的习惯,希望帮到你。
本文还有配套的精品资源,点击获取