This blog post falls into the “I hope it is useful to someone” category.
I recently had the pleasure of figuring out how to restore a Cru RTX800-TR RAID array that was suspected to be inoperable.
This thing is a beast, and worth saving.
This was a personal favor for a friend, not related to work.
This is a technical write-up of what I did.
Specs
- Product: RTX800-TR
- Interface: Thunderbolt up to 10 Gbps bi-directional
- Drive Types Supported: 3.5” SATA Hard Drives
- RAID Levels: JBOD, 0, 1, 4, 5, 6, 10, and ATTO DVRAID (!)
- Operating System Requirements
- Windows 7 or 8
- Windows Server 2012 or 2008 R2 (x64 only)
- Mac OS X 10.6.8 or later
- Linux distributions that support the connection type used (LOL)
- Shipping Weight
- 25 pounds (without drives)
- 37 pounds (with drives)
History
I don’t exactly know the full history of this product.
I can tell you that CRU was bought by DigiStore.
But that doesn’t really matter. What matters is the fact that the actual RAID controller is manufactured by ATTO Technology.
Here is what it shows up as in Linux in dmesg:
thunderbolt 0-1: ATTO Technology, Inc. ThunderStream SC 3808E
For the purposes of this RAID array, we need to focus on ATTO stuff, because they make the controller and therefore the drivers.
Plan of Attack
My plan here was:
- If at all possible, use native vendor tooling
- As a last resort, try re-assembling the raid using
mdadm(software raid) by plugging in all 8 drives directly into a PC - As a super last resort try file carving on individual drives to see if there was anything.
This is a 32TB RAID array, unknown RAID level, unknown volume configuration, and unknown filesystem.
First we should probably get some data about what we are working with.
Reading manuals was a great first step, and luckily those were archived online.
False Start: AttoConfig
After reading all the manuals, getting the AttoConfig RAID configuration tooling working sounded like a great first step.
I know a thing about mdadm, but reassembling a hardware RAID using software in Linux is dicey.
Especially if this thing is using a custom RAID level (DVRAID).
Even knowing the volume configuration level and RAID level sounded like something that would help me immensely, so I first started working on getting the configuration tool working.
Luckily, this software works in linux! You can even download it now from ATTO’s website.
Sure, you need to install Java 8, deal with some shisms, but I got it to run:
Indeed it does see the “ThunderStream SC 3808E”, however right in the download page it does warn you:
ATTO ConfigTool requires a supported ATTO Product. The HBA drivers and firmware are not included with the utility.
And yes, it is true, there is no driver included. The AttoConfig tool can’t actually see anything about this RAID array.
Thinking About Drivers
I’m sure a Windows / Mac driver exists, or existed at some point for this thing, but good luck finding it. I doubt one existed for Linux ever.
But maybe it does exist just under a different name?
False Start 2: Trying Ancient Linux Drivers
ATTO has drivers on their website, even for discontinued products. They have Thunderbolt devices, NICs, and HBAs. Nowhere is this particular product listed.
But, I tried downloading and extracting every driver they had anyway.
I looked for the one that looked the closest, lnx_drv_esasraid2_271.tgz, and looked at it.
Right away, I kinda knew this was not going to work.
The thing is, the readme already says that this driver was upstreamed into linux 3.12 (Nov 2013!). I shouldn’t have to install this driver at all.
But, it did have a attocfg module referenced, which the AttoConfig tool needed to be loaded.
Maybe I could build this module and load it?
Bringing this driver up to modern standards was beyond my capabilities. I asked Claude to do it, but in the end failed.
Again though, it didn’t make sense. Linux already has this driver, it seems like it would have worked already out of the box if it was the correct one.
Thinking About Thunderbolt
Thunderbolt is just PCIe over a fancy cable.
I incorrectly thought that I wouldn’t need any special drivers for this at all. I thought that this would be implementing some sort of standard Thunderbolt Mass Storage protocol. (What I had in my mind was Firewire’s mass storage protocol)
But really, it is just PCIe over a cable. What if I looked at the problem as if this was a normal PCIe raid device in my computer? Forget the Thunderbolt part.
Thinking About PCIe RAID Devices
So yea, this is what it shows up as in lspci:
0b:00.0 RAID bus controller [0104]: ATTO Technology, Inc. Device [117c:0067] (rev b0)
Subsystem: ATTO Technology, Inc. Device [117c:4067]
The vendor (117c) is in the PCI Database, but not this specific device (0067).
grep revealed that none of my drivers were configured to understand this PCI id at all.
But, screw it, what if this RAID device just got a new number, but was actually something Linux already knew how to talk to?
What does it take to “force” linux to use the esas2r driver I was looking at to try this device ID, even if it isn’t programmed to do so?
Turns out that is WAY easier than I thought:
modprobe esas2r
echo "117c 0067" > /sys/bus/pci/drivers/esas2r/new_id
I didn’t need to recompile the driver at all! You can hot-bind any device like this, even if the modinfo doesn’t officially autoload for that particular device ID.
Incredibly, IT WORKED!
[10937.575362] esas2r 0000:0b:00.0: enabling device (0000 -> 0002)
[10949.174025] scsi host7: ATTO ExpressSAS 6GB RAID Adapter (bus 0x0B, device 0x00,
IRQ 0x39) driver version: 1.00 firmware version: 1.15
[10949.185340] scsi 7:0:0:0: Enclosure ATTO Virtual SES 0001 PQ: 0
ANSI: 6
[10949.385448] esas2r: request failure - cdb:a0 reqstatus:7 target:0
[10949.385613] scsi 7:0:1:0: Direct-Access ATTO Media201800 0001 PQ: 0
ANSI: 5
There were errors, but the volumes showed up.
Even the userspace CLI tools (not AttoConfig) allowed me to access the RAID controller.
I used the provided atraidcli_x64 CLI tool to access RAID info, drive status, etc:
$ ./atraidcli_x64 -c 1 -x DumpEventLog
Channel 1: DumpEventLog
ATTO ThunderStream SC Event Log
Reading all 23 entries
0000 00:00:00 SYS System date has changed. Current date:[01/01/2000]
0001 00:00:00 INFO Boot/reset due to Thunderbolt link up
0002 00:00:00 INFO Reset. Reason: Chip Reset.
0003 00:00:00 WARN-Target Change on 0
0004 00:00:00 WARN-Target Change on 1
0005 00:00:00 INFO [5001086000595c88] for disk [K7J7RGZL ]
0006 00:00:00 INFO discovered
0007 00:00:00 INFO [5001086000595c89] for disk [K7JGNB3L ]
0008 00:00:00 INFO discovered
0009 00:00:01 INFO [5001086000595c8a] for disk [K7JGW3TL ]
0010 00:00:01 INFO discovered
0011 00:00:01 INFO [5001086000595c8b] for disk [K7JH1ZRL ]
0012 00:00:01 INFO discovered
0013 00:00:01 INFO [5001086000595c8c] for disk [K7JGBWYT ]
0014 00:00:01 INFO discovered
0015 00:00:01 INFO [5001086000595c8d] for disk [K7JH1VXL ]
0016 00:00:01 INFO discovered
0017 00:00:01 INFO [5001086000595c8e] for disk [K7JESM6T ]
0018 00:00:01 INFO discovered
0019 00:00:01 INFO [5001086000595c8f] for disk [K7JGLZPL ]
0020 00:00:01 INFO discovered
0021 00:00:02 INFO RAID Group state now Online: Media2018
0022 01:32:23 SYS System date has changed. Current date:[11/22/2025]
Ready.
$ ./atraidcli_x64 -c 1 -x RGDisplay
Channel 1: RGDisplay
;GroupName Type Interleave Capacity Partitions Members Status
;----------------------------------------------------------------------------
Media2018 RAID5 128 KB 25.47TB 1 8 ONLINE
Ready.
It was a good old RAID 5 array, and amazingly NOT degraded! (Although a RAID 5 array of this size is not recommended)
To make this force load permanent, I added this file in:
# in /etc/modprobe.d/esas2r.conf
options esas2r pci_device=0x117c,0x0067
It was a hfsplus (Mac) filesystem that Linux could mount with no problem.
I mounted it in ReadOnly mode and handed it back over to the owner.
Conclusion
The fix was easy, but it took me a number of hours to get there.
Luckily I didn’t have to scrounge together docks to get all 8 drives plugged in and experiment with mdadm, assembling the RAID array by hand.
In the end Linux already knew how to talk to this thing with esas2r, it just needed a little hint that this was the same class of RAID controller, and it just happened to be external over Thunderbolt with a different PCI Device ID.
Comment via email

