新硬盘显示Foreign State需先清除外来配置:执行MegaCli64 -cfgforeign -scan -a0确认存在,再运行-cfgforeign -clear -a0清除元数据(不损数据),确保scan返回“No foreign configuration”后再操作;硬盘位置参数必须用[E:S]格式,通过-PDList查Enclosure ID与Slot Number精确匹配。

新硬盘显示为 Foreign State 怎么办
新插入的硬盘如果之前在别的 RAID 卡上用过,MegaCli64 -PDList -aALL 里会看到 Foreign State: Foreign。不处理就直接加进阵列,执行 CfgLdAdd 时会报错:The specified physical disk does not have the appropriate attributes to complete the requested command. Exit Code: 0x26。
必须先清除外来配置:
-
MegaCli64 -cfgforeign -scan -a0确认存在 foreign 配置 -
MegaCli64 -cfgforeign -clear -a0清除(注意:这不会擦除硬盘数据,但会丢弃原 RAID 元数据) - 再跑一次
-scan确保输出是There is no foreign configuration
怎么确认硬盘位置参数(E:S)
RAID 卡识别硬盘靠的是 Enclosure Device ID 和 Slot Number 组合,格式固定为 [E:S],比如 [32:5]。别凭直觉写成 [0:5] 或漏掉方括号。
查法有两个最稳的:
-
MegaCli64 -PDList -aALL | egrep 'Enclosure Device ID|Slot Number'—— 逐行对应看 -
MegaCli64 -AdpAllInfo -a0 | grep "Device ID"确认当前卡的 Enclosure ID(通常是 32,但多卡环境可能不同)
Slot Number 就是物理槽位编号,和服务器机箱标签、背板丝印一致,不是系统里的 sdb 这类设备名。
在线加入现有 RAID 组(如 RAID 5/6)是否可行
不行。MegaCli 不支持向已存在的 RAID 5/6 逻辑盘(LD)在线添加物理盘扩容。所谓“加入组”,实际只有两种合法路径:
- 新建一个独立 RAID(比如单盘 RAID 0):
MegaCli64 -CfgLdAdd -r0[32:5] WB -a0 - 替换故障盘后触发自动重建(需原盘已标记为
Failed或Offline):MegaCli64 -PDReplaceMissing -PhysDrv[32:5] -Array0 -Row0 -a0
想给 RAID 5 加盘,只能备份 → 删除原 LD → 用新盘集合重建更大 RAID → 恢复数据。没有热扩容命令。
写缓存模式(WB/WT)选哪个
加盘建新 RAID 时,-WB(Write Back)和 -WT(Write Through)直接影响性能和安全性:
-
-WB:默认且推荐,但要求 BBU/CacheVault 正常(MegaCli64 -AdpBbuCmd -a0查状态)。否则写入可能丢失 -
-WT:绕过缓存直写磁盘,安全但慢,适合没电池保护或测试环境 - 漏写参数会 fallback 到控制器默认策略,可能和预期不符
执行完 CfgLdAdd 后,用 MegaCli64 -LDGetProp -Cache -L0 -a0 确认实际生效的缓存策略,别只信命令行输入。
真正容易被忽略的是 Slot Number 的实时性——热插拔后,PDList 输出可能延迟刷新,建议插好盘等 10 秒再查;另外多 RAID 卡环境(-a0 vs -a1)务必核对 adpCount,输错卡号会导致命令静默失败。











