If you manage servers with hardware RAID, tools like lsblk or
fdisk only show the logical volumes — not individual disk health. This
guide explains how to use Broadcom's StorCLI utility to inspect RAID controllers,
physical drives, and virtual drives on Linux.

When a server uses a hardware RAID controller (such as a Dell PERC, Broadcom
MegaRAID, or Lenovo ThinkSystem card), the controller presents the RAID array to the operating
system as a single block device — for example, /dev/sda.
Standard Linux tools like lsblk, fdisk -l, and df -h can only
see this virtual disk. They have no visibility into:
To get this critical information, you need a vendor-specific management tool that communicates directly with the RAID controller. For Broadcom/LSI-based controllers, that tool is StorCLI.
StorCLI (Storage Command Line Interface) is the modern command-line utility from Broadcom (formerly Avago/LSI Logic) for managing MegaRAID controllers. It replaces the older MegaCLI tool, which was widely used but is now deprecated.
| Feature | MegaCLI (Legacy) | StorCLI (Modern) |
|---|---|---|
| Maintainer | LSI Logic (discontinued) | Broadcom (actively updated) |
| Command syntax | Verbose and inconsistent | Clean, hierarchical (/cx /ex /sx) |
| JSON output | Not supported | Supported (J flag) |
| Status | Deprecated | Recommended |
StorCLI works with controllers commonly found in:
StorCLI is not available in standard package repositories. You need to download it from the Broadcom support portal.
# Download and extract the package
wget https://docs.broadcom.com/docs-and-downloads/007.2705.0000.0000_storcli_rel.zip
unzip 007.2705.0000.0000_storcli_rel.zip
cd storcli_rel/Unified_storcli_all_os/Ubuntu
# Install the .deb package
sudo dpkg -i storcli_007.2705.0000.0000_all.deb
# Create a symlink for easy access
sudo ln -s /opt/MegaRAID/storcli/storcli64 /usr/sbin/storcli
# Navigate to the Linux directory after extraction
cd storcli_rel/Unified_storcli_all_os/Linux
# Install the RPM package
sudo rpm -ivh storcli-007.2705.0000.0000-1.noarch.rpm
# Create a symlink for easy access
sudo ln -s /opt/MegaRAID/storcli/storcli64 /usr/sbin/storcli
sudo storcli -v
If you see version info and no errors, StorCLI is ready to use.
The first step is to list all RAID controllers detected in your system. The controller is referred to
as /c0 (controller 0), /c1, etc.
# List all controllers
sudo storcli show
# Show detailed info for controller 0
sudo storcli /c0 show
The output will display the controller model, firmware version, number of virtual drives, physical
drives, and overall status. Look for the "Status" field — it should say
Optimal if everything is healthy.
This is the most important command for proactive disk health monitoring. It shows every physical drive connected to the controller across all enclosures and slots.
# Show all physical drives on controller 0
sudo storcli /c0 /eall /sall show
The output will look similar to this:
EID:Slt DID State DG Size Intf Med SED PI SeSz Model
---------------------------------------------------------------
8:0 6 Onln 0 1.745 TB SAS SSD N N 512B SAMSUNG MZ7LH1T9
8:1 5 Onln 0 1.745 TB SAS SSD N N 512B SAMSUNG MZ7LH1T9
8:2 4 UGood - 1.745 TB SAS SSD N N 512B SAMSUNG MZ7LH1T9
8:3 7 Failed 1 1.745 TB SAS SSD N N 512B SAMSUNG MZ7LH1T9

| State | Meaning | Action Required? |
|---|---|---|
Onln |
Online — Drive is healthy and part of a RAID array | No |
UGood |
Unconfigured Good — Drive is healthy but not assigned to any array | No (can be used as hot spare) |
UBad |
Unconfigured Bad — Drive has errors and is not assigned | Yes — investigate or replace |
Failed |
Drive has failed within a RAID array | Yes — replace immediately |
Rbld |
Rebuild — A replacement drive is being rebuilt into the array | Monitor progress |
DHS |
Dedicated Hot Spare — Standby replacement drive | No |
GHS |
Global Hot Spare — Standby for any array | No |
Tip: For detailed SMART data and error counts on a specific drive, use:
# Show all details for enclosure 8, slot 0
sudo storcli /c0 /e8 /s0 show all
Virtual drives (VDs) are the logical volumes that the OS sees as block devices. Check them with:
# Show all virtual drives on controller 0
sudo storcli /c0 /vall show
Sample output:
DG/VD TYPE State Access Consist Cache Cach sCC Size Name
----------------------------------------------------------------------
0/0 RAID1 Optl RW Yes RWBD - ON 1.745 TB main
1/1 RAID5 Dgrd RW No RWBD - ON 5.236 TB data
| State | Meaning | Action |
|---|---|---|
Optl |
Optimal — All drives healthy, full redundancy | None |
Dgrd |
Degraded — One or more drives failed; reduced redundancy | Replace failed drive ASAP |
Pdgd |
Partially Degraded — Multiple failures in nested RAID | Critical — immediate action |
OfLn |
Offline — Array is inaccessible | Data may be lost |
Rbld |
Rebuilding — A new drive is syncing into the array | Monitor with /vall show rebuild |
To check rebuild progress:
sudo storcli /c0 /v1 show rebuild
In a server chassis with many drive bays, finding the exact failed disk can be challenging. StorCLI can activate the drive's identification LED to make it blink:
# Start blinking the LED for enclosure 8, slot 3
sudo storcli /c0 /e8 /s3 start locate
# Stop the blinking after you've found the drive
sudo storcli /c0 /e8 /s3 stop locate
The LED will blink on the front panel of the drive bay, allowing data center staff to identify and physically pull the correct disk for replacement.

When you discover a Degraded virtual drive or a Failed physical disk,
follow this workflow:
sudo storcli /c0 /eall /sall show
# Look for drives with State = Failed
sudo storcli /c0 /e8 /s3 start locate
Hot-swap the failed drive with a new one of equal or greater capacity. Most servers with hardware RAID support hot-swapping without downtime.
If a hot spare was configured, the rebuild starts automatically. Otherwise, after
inserting the new drive, it may appear as UGood. You can manually start a rebuild or
assign it as a replacement:
# Check if rebuild started automatically
sudo storcli /c0 /vall show rebuild
# If needed, replace the failed drive manually
sudo storcli /c0 /e8 /s3 replace /e8 /s4
sudo storcli /c0 /v0 show rebuild
Important: Do not reboot or power off the server during a rebuild. The process can take several hours depending on drive size and I/O load.
No. StorCLI is designed for Broadcom (formerly LSI/Avago) MegaRAID and compatible
controllers such as Dell PERC, Lenovo ThinkSystem, and Cisco MegaRAID cards. For other vendors like
Adaptec or HPE Smart Array, use their respective tools (arcconf or
ssacli).
MegaCLI is the legacy tool from LSI Logic, now deprecated. StorCLI is its modern successor from Broadcom, offering cleaner syntax, JSON output support, and active maintenance. All new deployments should use StorCLI.
No. StorCLI communicates directly with the RAID controller hardware, which requires root
or sudo privileges on Linux.
UGood stands for Unconfigured Good. It means the drive is healthy but
not currently assigned to any RAID virtual drive. You can use it as a hot spare or add it to a new
array.
Append J to any command to get machine-readable JSON output. This is useful for
scripting and monitoring:
sudo storcli /c0 /eall /sall show J
Yes. You can create a cron job that runs StorCLI commands periodically and sends alerts if a drive
state changes from Onln to Failed or a VD becomes Dgrd. Many
administrators integrate this with Nagios, Zabbix, or Prometheus.
StorCLI is an essential tool for any Linux administrator managing servers with Broadcom-based hardware RAID controllers. While standard Linux commands only see the logical volumes, StorCLI gives you full visibility into every physical disk, virtual drive, and the controller itself.
Make it a habit to periodically run sudo storcli /c0 /eall /sall show and
sudo storcli /c0 /vall show — or better yet, automate these checks with a monitoring
script. Catching a Failed drive early can be the difference between a routine hot-swap
and catastrophic data loss.
Related resource: The Complete Guide to Installing StorCLI on Linux and Windows (Lineserve)