or a Broadcom/LSI MegaRAID adapter—the Operating System does not maintain direct line-of-sight to the physical Hard Disk Drives (HDDs) or Solid State Drives (SSDs). Instead, the RAID controller acts as a protective mediator:
$ smartctl --scan /dev/sda -d scsi # /dev/sda, SCSI device /dev/bus/0 -d megaraid,0 # /dev/bus/0 [megaraid_disk_00], SCSI device /dev/bus/0 -d megaraid,1 # /dev/bus/0 [megaraid_disk_01], SCSI device
smartctl -t short -d megaraid,2 /dev/sda When you run smartctl -a /dev/sda , you
Once you have identified your disk coordinates, append the target block syntax to isolate individual components. Querying an Individual Enterprise SAS Drive
/dev/sda -d scsi # /dev/sda, SCSI device /dev/bus/0 -d megaraid,0 # /dev/bus/0 [megaraid_disk_00], SCSI device /dev/bus/0 -d megaraid,1 # /dev/bus/0 [megaraid_disk_01], SCSI device /dev/bus/0 -d megaraid,2 # /dev/bus/0 [megaraid_disk_02], SCSI device Use code with caution. smartctl requires direct ATA/SCSI commands, which the PERC
When you run smartctl -a /dev/sda , you are communicating with the RAID controller driver, not the hard drive itself. The controller denies this request, resulting in: Smartctl open device /dev/sda failed: Dell or MegaRAID controller The Solution: Using -d megaraid,N
Smartctl open device: /dev/sda failed: DELL or MegaRaid controller, please try adding '-d megaraid,N' smartctl requires direct ATA/SCSI commands
Dell PERC controllers are hardware RAID controllers. The OS doesn't see the raw physical disk; it sees a "Logical Drive" created by the PERC firmware. smartctl requires direct ATA/SCSI commands, which the PERC controller intercepts.
smartctl -a -d megaraid,<N> /dev/sda
If you manage servers with hardware RAID controllers—especially Dell PowerEdge servers with PERC (PowerEdge RAID Controller) or any system using a Broadcom (formerly LSI) MegaRAID controller—you have likely encountered a frustrating error when trying to check disk health with smartctl :
# Try N=0, then N=1, etc. smartctl -i -d megaraid,0 /dev/sda smartctl -i -d megaraid,1 /dev/sda