在linux下用megacli查看raid卡状态需先确认megaraid卡被lspci识别且megaraid_sas等驱动已加载,再安装匹配固件版本的megacli工具,最后以root权限执行megacli64命令获取适配器、逻辑盘、物理盘及bbu状态信息。

在Linux下用megacli查看物理服务器RAID卡状态,核心是确认MegaRAID卡存在、安装对应版本的megacli工具,并以root权限执行命令获取信息。
确认RAID卡型号和驱动是否加载
先检查系统是否识别到LSI/MegaRAID控制器:
- 运行 lspci | grep -i raid 或 lspci | grep -i lsi,看到类似 LSI Logic / Symbios Logic MegaRAID SAS 2108 的输出,说明硬件已被识别
- 运行 lsmod | grep mpt 或 lsmod | grep megaraid,确认 megaraid_sas 或 mpt3sas 等驱动已加载
- 若无输出,可能需手动加载驱动或检查BIOS中RAID模式是否启用(如Enable RAID in UEFI/BIOS)
安装megacli工具
megacli是LSI官方提供的命令行管理工具(现属Broadcom),不同发行版安装方式略有差异:
- CentOS/RHEL:下载对应版本的RPM包(如MegaCli-8.07.14-1.noarch.rpm),执行 rpm -ivh MegaCli-*.rpm
- Ubuntu/Debian:需从Broadcom支持页面获取DEB包,或解压tar.gz后将MegaCli64二进制文件拷贝至/usr/local/bin/并赋予可执行权限:chmod +x /usr/local/bin/MegaCli64
- 注意:务必选择与RAID卡固件兼容的megacli版本,旧卡(如2108)通常用8.07.x,新卡(如3508)建议用StorCLI替代
常用megacli查看命令
所有命令需用root权限运行(加sudo或切换为root):
- MegaCli64 -AdpAllInfo -aALL:显示所有RAID适配器的详细信息(厂商、型号、FW版本、温度、电池状态等)
- MegaCli64 -LDInfo -Lall -aALL:列出所有逻辑磁盘(即RAID阵列)的配置,包括RAID级别、条带大小、状态(Optimal/Dependent/Failed)
- MegaCli64 -PDList -aALL:列出所有物理磁盘(硬盘)详情,含Slot号、Enclosure ID、介质类型(SAS/SATA)、转速、状态(Online/Unconfigured/Good/Failed)、坏块数(Media Error Count)
- MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL:专查电池/缓存模块(BBU)状态,判断是否需要更换
快速定位异常的技巧
生产环境排查时,可组合使用参数缩小范围:
- 只看告警状态:在上述命令后加 | grep -E "(State|Status|Failed|Critical|Degraded)"
- 查某块盘详情:例如Slot 5上的盘,运行 MegaCli64 -PDInfo -PhysDrv [32:5] -a0(其中32是Enclosure ID,5是Slot号,a0表示适配器0)
- 导出完整日志便于分析: MegaCli64 -AdpEventLog -GetEvents -f event.log -aALL
- 注意:部分老卡(如PERC H700)虽兼容megacli,但更推荐用Dell专属工具omconfig或storcli
不复杂但容易忽略的是权限和路径——确保用root执行、命令名是MegaCli64(不是megacli)、且RAID卡驱动正常工作。如果命令报“Cannot access controller”,大概率是驱动未加载或卡不在PCIe插槽上被识别。











