TerraMaster has sent me the D1 SSD Plus portable SSD enclosure for review, and helped me get a 2TB WD_BLACK SN850X NVMe SSD for testing, since the PCIe Gen4 x4 storage device reached up 7,300 MB/s to sequential read speeds, and 6,600 MB/s sequential write speeds, well beyond the 40Gbps capabilities of the enclosure.
I had reviewed two ORICO NVMe enclosures previously, namely the ORICO COM2-T3 and ORICO M234C3-U4, which were both based on an Intel JH7440 Thunderbolt 3 chip. I tested the COM2-T3 up to 3166.71 MB/s with a fast SSD, but TerraMaster claims up to 3,853MB/s sequential read speed and 3,707 MB/s sequential write speed with a 4TB Samsung 990 PRO SSD, while connected to an Apple M4 Pro Mac mini (MacOS version 15.3.2) using AJA System Test software. So I thought it might be a good idea to give it a try.
TerraMaster D1 SSD Plus unboxing
I received the D1 SSD Plus enclosure in its retail package with key features such as 40 Gbps data rate, Thunderbolt 4/ USB4, support for M.2 NVMe 2280 SSDs, backward compatibility with USB 3.2/3.1/3.0, 3,200 MB/s Thunderbolt speed (not quite the 3800MB/s advertised on the product page), passive cooling, and compatibility with Windows 10/11 and Mac OS 12+.

The bottom side of the enclosure has more specifications, including support for Thunderbolt 5 (limited to 40 Gbps), M-Key and B&M-Key SSD support, and Linux is added to the list of supported operating systems.

Inside the package, we have the SSD enclosure, a pouch, a USB-C cable, a thermal pad, a screwdriver, a Quick Installation Guide, and a few other documents about warranty and “compensation promises”. There’s no Type-A port, so if you need to temporarily connect the SSD enclosure to a system without a USB-C port, you’ll need to find a USB-A to USB-C adapter.

The device features a thick aluminum enclosure to enable fanless operation, and the only port is the 40 Gbps USB-C port.
Teardown SSD installation
The bottom side of the metal case has a single screw, which we will remove to open the SSD enclosure.

There’s an M.2 socket for PCIe Gen4 x4 2280 SSDs, and shorter SSDs are not suitable for this enclosure.

As part of the teardown, I loosen four more screws to take out the board. The PCB design is quite pleasing, and the main chip is covered by a thermal pad in contact with the metal case for optimal cooling.
The main chip is an ASMedia ASM2464PD USB4/Thunderbolt to PCIe Gen4 x4/NVMe 1.4c accessory controller compatible with existing legacy USB 3.2 interfaces, as well as Thunderbolt 3. So at least, it’s different from the two Intel JH7440 SSD enclosures we previously reviewed.
Please put the board back in place and install our WD_BLACK SN850X NVMe SSD, securing it with the provided screw and screwdriver. Make sure to peel the protective film off from the thermal pad for the SSD.
Testing TerraMaster D1 SSD Plus enclosure with an Ubuntu 24.04 mini PC
We’ll need a computer or laptop with a USB4 or Thunderbolt 4 port. I used the UP Xtreme i11 Edge mini PC running Ubuntu 24.04.3 with Linux 6.14 for testing.
I often use the mini PC headless, simply connecting over SSH, and I noticed the drive did not show up with lsblk, so I checked the kernel log:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[ 60.172998] thunderbolt 0-1: new device found, vendor=0xb8 device=0x2463 [ 60.173008] thunderbolt 0-1: TerraMaster TDAS [ 60.178456] thunderbolt 0-1: device disconnected [ 61.677720] thunderbolt 0-1: new device found, vendor=0xb8 device=0x2463 [ 61.677729] thunderbolt 0-1: TerraMaster TDAS [ 61.683197] thunderbolt 0-1: device disconnected [ 63.169491] thunderbolt 0-1: new device found, vendor=0xb8 device=0x2463 [ 63.169500] thunderbolt 0-1: TerraMaster TDAS [ 63.174931] thunderbolt 0-1: device disconnected [ 64.652270] thunderbolt 0-1: new device found, vendor=0xb8 device=0x2463 [ 64.652280] thunderbolt 0-1: TerraMaster TDAS [ 64.657715] thunderbolt 0-1: device disconnected [ 65.742376] thunderbolt 0-1: new device found, vendor=0xb8 device=0x2463 [ 65.742385] thunderbolt 0-1: TerraMaster TDAS [ 65.747812] thunderbolt 0-1: device disconnected |
The TerraMaster TDAS was detected, but immediately disconnected. Then I decided to connect the display, and the drive was mounted shortly after as /dev/sdb1:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[ 77.198468] usb 2-1: new SuperSpeed Plus Gen 2x1 USB device number 2 using xhci_hcd [ 77.210083] usb 2-1: New USB device found, idVendor=174c, idProduct=2463, bcdDevice= 1.00 [ 77.210089] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1 [ 77.210092] usb 2-1: Product: TDAS [ 77.210095] usb 2-1: Manufacturer: TerraMaster [ 77.210097] usb 2-1: SerialNumber: 202507050096 [ 77.231027] usbcore: registered new interface driver usb-storage [ 77.234163] scsi host2: uas [ 77.234267] usbcore: registered new interface driver uas [ 78.088394] scsi 2:0:0:0: Direct-Access TM D1 SSD Plus 0 PQ: 0 ANSI: 6 [ 78.189823] sd 2:0:0:0: Attached scsi generic sg1 type 0 [ 79.925459] sd 2:0:0:0: [sdb] 3907029168 512-byte logical blocks: (2.00 TB/1.82 TiB) [ 79.925565] sd 2:0:0:0: [sdb] Write Protect is off [ 79.925568] sd 2:0:0:0: [sdb] Mode Sense: 43 00 00 00 [ 79.925724] sd 2:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA [ 79.949171] sd 2:0:0:0: [sdb] Preferred minimum I/O size 512 bytes [ 79.949177] sd 2:0:0:0: [sdb] Optimal transfer size 2097152 bytes [ 79.960043] sdb: sdb1 [ 79.960169] sd 2:0:0:0: [sdb] Attached SCSI disk [ 80.132746] EXT4-fs (sdb1): mounted filesystem 3418dc52-83e6-4782-b8d6-86aec737524b r/w with ordered data mode. Quota mode: none. |
I didn’t immediately pick that it was an issue, especially since the TerraMaster TDAS was listed as a USB4 device with boltctl, albeit in a disconnected status:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
devkit@UPX-i11:~$ boltctl ○ TerraMaster TDAS ├─ type: peripheral ├─ name: TDAS ├─ vendor: TerraMaster ├─ uuid: b09d2814-0557-4c17-ffff-ffffffffffff ├─ generation: USB4 ├─ status: disconnected ├─ authorized: vr 15 aug 2025 10:15:58 UTC ├─ connected: vr 15 aug 2025 10:15:58 UTC └─ stored: vr 15 aug 2025 09:38:56 UTC ├─ policy: iommu └─ key: no |
When I ran iozone to test performance, I realized something was wrong since the speed was consistent with a 10 Gbps USB 3.x connection:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
devkit@UPX-i11:/media/devkit/D1-PLUS-CNXSOFT$ sudo iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Iozone: Performance Test of File I/O Version $Revision: 3.506 $ Compiled for 64 bit mode. Build: linux-AMD64 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 4 49665 49738 49750 49749 32989 49731 1024000 16 186553 197083 194504 194808 101846 197406 1024000 512 784541 791162 747534 747781 642354 791618 1024000 1024 871392 877549 848666 846962 774367 874042 1024000 16384 1027664 1026487 1027581 1023793 1016040 1027115 iozone test complete. |
That’s where I understand we had good and bad news. The good news is that USB 3.x backward compatibility is working, and the bad news is that the enclosure would not connect as a Thunderbolt/USB4 device. What probably happened was that it attempted to connect using the Thunderbolt protocol, and after a while, it fell back to USB 3.x mode. I should have picked it up immediately, as a working SSD enclosure would mount as a /dev/nvme device, instead of /dev/sdb1.
|
1 2 3 4 5 |
devkit@UPX-i11:/media/devkit$ lsblk | grep D1 └─sdb1 8:17 0 1,8T 0 part /media/devkit/D1-PLUS-CNXSOFT devkit@UPX-i11:/media/devkit$ lsusb -t | grep uas |__ Port 001: Dev 003, If 0, Class=Mass Storage, Driver=uas, 10000M |
I then tested the USB4 with an Orico Thunderbolt 3 enclosure to make sure there were no issues with the mini PC itself. First, it was detected properly as a Thunderbolt 3 device using boltctl:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Intel USB4.0 SSD ├─ type: peripheral ├─ name: USB4.0 SSD ├─ vendor: Intel ├─ uuid: 00166a50-7dc4-8680-ffff-ffffffffffff ├─ generation: Thunderbolt 3 ├─ status: authorized │ ├─ domain: 10be9e3f-dda3-8780-ffff-ffffffffffff │ ├─ rx speed: 40 Gb/s = 2 lanes * 20 Gb/s │ ├─ tx speed: 40 Gb/s = 2 lanes * 20 Gb/s │ └─ authflags: none ├─ authorized: vr 15 aug 2025 10:38:34 UTC ├─ connected: vr 15 aug 2025 10:38:34 UTC └─ stored: ma 04 jul 2022 04:54:51 UTC ├─ policy: iommu └─ key: no |
Testing it with iozone confirmed that (2.4GB/s reads, 1.8 GB/s writes):
|
1 2 3 4 5 6 7 8 9 10 |
devkit@UPX-i11:/media/devkit/TB3-EXT4$ sudo iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 4 163502 177165 213029 215096 72623 171859 1024000 16 423137 451333 489340 484584 202417 419341 1024000 512 1096841 1108583 1102062 1104593 1002927 1083956 1024000 1024 1676646 1671301 1700821 1704552 1580561 1620963 1024000 16384 1897379 1856384 2404535 2424854 2422506 1891557 iozone test complete. |
Sadly, the UP Xtreme i11 is the only computer I have with a proper USB4Thunderbolt 4 port. So at this point, I contacted TerraMaster, and they answered as follows:
1. This is due to outdated Thunderbolt interface firmware on the PC. We recommend updating the Thunderbolt firmware version to NVM 43.2. The ORICO NVMe hard drive enclosure is a Thunderbolt 3 device, not a USB4 device (ASM2464 controller).
So basically, the typical “it works for us”. The computer is running Ubuntu 24.04 with a recent Linux 6.14, and I tried fwupdmngr to get new firmware, but there was nothing to update. So I contacted AAEON. They tested the UP Xtreme i11 Edge with an ORICO M2V02-C4 NVMe SSD enclosure and reached USB4 speeds (3,000+ MB/s), telling me the firmware is probably fine. Another “it works for me”. That’s what usually happens when interoperability issues occur: each side points the finger at the other. Intel Tiger Lake SoCs are quite mature now, so the likelihood of the D1 SSD Plus firmware having an issue is higher. But who knows?
While waiting for feedback, and enabled Thunderbolt debugging
|
1 2 3 |
devkit@UPX-i11:~$ sudo modprobe -r thunderbolt devkit@UPX-i11:~$ echo "module thunderbolt +p" | sudo tee /sys/kernel/debug/dynamic_debug/control devkit@UPX-i11:~$ sudo modprobe thunderbolt |
But when I went to check the kernel log, I had a little surprise:
|
1 2 3 4 5 |
[ 6062.030892] thunderbolt 0-1: device disconnected [ 6062.032438] ACPI: bus type thunderbolt unregistered [ 6096.269384] ACPI: bus type thunderbolt registered [ 6096.766102] thunderbolt 0-1: new device found, vendor=0xb8 device=0x2463 [ 6096.766111] thunderbolt 0-1: TerraMaster TDAS |
The TerraMaster TDAS enclosure was not only detected, but with an authorized status:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
devkit@UPX-i11:~$ boltctl ● TerraMaster TDAS ├─ type: peripheral ├─ name: TDAS ├─ vendor: TerraMaster ├─ uuid: b09d2814-0557-4c17-ffff-ffffffffffff ├─ generation: USB4 ├─ status: authorized │ ├─ domain: 90b1c97f-e1d9-8780-ffff-ffffffffffff │ ├─ rx speed: 40 Gb/s = 2 lanes * 20 Gb/s │ ├─ tx speed: 40 Gb/s = 2 lanes * 20 Gb/s │ └─ authflags: none ├─ authorized: ma 18 aug 2025 03:50:39 UTC ├─ connected: ma 18 aug 2025 03:50:39 UTC └─ stored: vr 15 aug 2025 09:38:56 UTC ├─ policy: iommu └─ key: no |
I assume that just unloading and reloading the module did the trick, or debug mode changed some timing.
Here’s the first iozone run:
|
1 2 3 4 5 6 7 8 9 10 |
devkit@UPX-i11:/media/nvme0n1p1$ sudo iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 4 175794 195145 158402 157744 72448 196248 1024000 16 459123 497612 449447 433597 174156 497066 1024000 512 1160493 1176580 1094340 1099154 989744 1176581 1024000 1024 1168364 1174716 1111444 1111786 1082625 1154915 1024000 16384 1740947 1758354 1679673 1680363 1671105 1758010 iozone test complete. |
It works, but at about 1.6 GB/s read speed and 1.7GB/s write speed, it’s underwhelming.
The second try was better:
|
1 2 3 4 5 6 7 8 9 10 |
devkit@UPX-i11:/media/nvme0n1p1$ sudo iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 4 175727 197352 161317 159007 72780 197754 1024000 16 459374 495060 425759 450702 173180 496601 1024000 512 1153358 1162467 1090216 1093834 983607 1162120 1024000 1024 1156046 1156291 1110066 1105072 1067837 1157484 1024000 16384 2634095 2624582 2403806 2399458 2393645 2621731 iozone test complete. |
2.6GB/s writes and 2.4GB/s reads are much better but still short of expectations.
That’s unfortunate that I don’t have another USB4-capable device right now. However, I’m expecting new boards and mini PCs with 40 Gbps USB ports in the next few months, and I would have been able to perform more tests in November. TerraMaster did not seem willing to wait, and even asked to publish a review without the test results above… So here we go, and right now, what I have is an unreliable SSD enclosure that does not perform up to expectations.
But since they mention having tested the enclosure with AJA System Test software, and a Linux version is available, I did a final test with it on Ubuntu 24.04. Despite multiple attempts and trying to follow the steps above, I was unable to mount the SSD enclosure as an NVMe drive for this test, so it was only tested as a USB 3.0 drive. All I can report is that the utility is working on Ubuntu 24.04, and the test is very short (only 2 or 3 seconds), which always makes me uneasy when testing storage due to potential caching, although I have to say the results are similar to what I got with iozone.

I’d like to thank TerraMaster for sending the D1 SSD Plus for review and sponsoring an NVMe SSD. For reference, it is sold on Amazon for about $100 after ticking the 10% off coupon box, or you’ll find it on the TerraMaster store for $109.99.

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.








Nice to read a honest review.
Even when the enclosure is not working as expected you didn’t try to cover it up.
[ Thanks for the review.
Are there external USB3.2/4-pcie-nvme bridges or thunderbolt-pcie-nvme bridges that support the ‘nvme’ command for direct access without protocol translation/conversion between USB and PCIe (since NVMe standard is no(t only a) specific protocol description (it has NVM command set), but an interface specification)?
“The NVMe 2.3 specifications consists of multiple documents, including the NVMe Base specification, Command Set specifications (e.g., Computational Programs Command Set Specification, NVM Command Set specification, SLM Command Set Specification, KV Command Set Specification, ZNS Command Set specification), Transport specifications (e.g., NVMe over PCIe Transport specification, NVMe over RDMA Transport specification and NVMe over TCP Transport specification), NVMe Boot specification, and the NVMe Management Interface specification.
The NVM Express Base (NVM Express Base) Specification defines a protocol for host software to communicate with non-volatile memory subsystems over a variety of memory-based transports and message-based transports.”
(thx) ]
All NVMe SSD enclosures directly access the SSD using the NVMe protocol without USB to PCIe conversion.
[ Thanks for Your fast response.
Do ‘smartctl -d {scsi, etc.}’ (mostly, from my experience with supported devices) or ‘nvme-cli’ command line tools work with all USB 3.0 (3.1) version usb to pcie/nvme bridge ics?
Maybe You can test the ‘nvme’ command (does it provide access for thunderbolt devices?) with this article device?
‘Vendor’ ‘Bridge Chip(s)’ ‘Protocol’ ‘Linux NVMe Command Support’
ASMedia ASM2362, ASM2364, ASM2464PD/PDX USB 3.2 / USB4 → PCIe/NVMe ‘Designed for full passthrough’
JMicron JMS583, JMS586 USB 3.2 → PCIe/NVMe ‘Known to support UASP, TRIM’
Realtek RTL9210B (USB-to-NVMe) USB → PCIe/NVMe ‘Partial to full support improving steadily’
(thx) ]
I can’t with the device used in this review, because it’s not properly detected, and falls back to USB.
The easiest way to find whether USB or NVMe is used is to check the device name:
[ what’s irritating me:
kernel log shows:
‘usb 2-1: new SuperSpeed Plus Gen 2×1 USB device number 2 using xhci_hcd’
‘usbcore: registered new interface driver usb-storage
[etc.]
usbcore: registered new interface driver uas
scsi 2:0:0:0: Direct-Access TM D1 SSD Plus 0 PQ: 0 ANSI: 6
sd 2:0:0:0: Attached scsi generic sg1 type 0’
and the (udev? daemon initialized) driver for the usb (bridge) device is
‘thunderbolt’
while also compatible to USB4?
therefore, registered with ‘/dev/sdb{}’ (and not ‘/dev/nvme{}’ for direct cpu/chipset connections)?
What’s [c]modinfo thunderbolt[/c], please? (thx) ]
Please read the review. The TerraMaster D1 SSD Plus does not work properly with the UP Xtreme i11 Edge mini PC. That’s why USB shows up.
Also, as far as I know, USB4 is actually Thunderbolt.
[ Did read the review, just don’t have experience with USB4 or Thunderbolt external bridge ic storage devices.
Even me not finding a thunderbolt module on a 6.15 kernel for to enable (for x86_64).
Maybe You can provide a
(for having some information on that part)?
(and it seems ‘only supporting Thunderbolt 3 whose support is optional in USB4’ USB4 is not generally supporting all Thunderbolt versions?)
(thx) ]
Here’s the output of modinfo thunderbolt:
[ Thanks for the information.
Also found, that for compiling Thunderbolt Kernel modules, it has to be searched for ‘USB4’ with Kernel configuration (e.g. 6.15 from kernel.org), what includes the Thunderbolt parts (being a combined driver for Linux, same for ‘thunderbolt-net’ module). Just searching for ‘Thunderbolt’ or ‘TB’ was only of limited success for an Intel specific module. Just if someone else is looking for that detail. (thx) ]
[ if it’s possible and no big task for You, maybe You could give the output for
or
and
if the device is registered with (modprobe) ‘thunderbolt’ driver.
(thx) ]
That’s not quite accurate, USB4 builds in part on Thunderbolt 3, but unlike Thunderbolt 3/4, it supports USB 3.2 Gen 2×2 (20 Gbps) and USB4 for data transfers. There are also some other minor differences, most of which are Intel proprietary things like Thunderbolt networking, some docking specific features and some things in the spec that no USB4 host controller lacks, yet Intel claims Thunderbolt offers as a superior feature. In theory, USB4 has a slightly better feature set if you have USB 3.2 Gen 2×2 devices, but the difference are fairly minor.
USB4 does PCIe tunnelling, so it all depends on what the device you plug it in to, handles the USB4 host controller and which protocol it asks for. Afaik, there’s no user control over this, but in theory, NVMe should go over PCIe, as long as the system host controller is willing to communicate over PCIe and doesn’t “fall back” to USB4 or USB 3.x.
There’s no such thing as an NVMe to PCIe bridge, since NVMe is a protocol on top of PCIe.
[ Is it suitable calling NVMe an interface specification, including a (or several) NVM command set(s), that is(/are) transported over USB, TB or PCIe interfaces and their communication layers/frames/’protocols’?
If a Thunderbolt device is initialized (and registered) being a ‘/dev/nvme{0,1,2,etc.} device, it can be accessed by ‘tbtadm devices/topology’, ‘boltctl list’ and/or ‘nvme list’ commands?
What’s the Linux system driver for a NVMe storage device being accessed as a PCIe device (‘lspci’?) on a USB4/TB bridge?
(to previous post: irritating, meant confusing)
(thx) ]
NVMe is a protocol, not an interface. M.2 is one of many interfaces that NVMe can use, if we’re talking the physical port you slot the drives in and the M.2 interfaces are connected to the PCIe bus, alongside U.2, U.3, CFexpress and others that rely on NVMe.
It’s a bit like you have UASP (USB Attached SCSI Protocol) which uses SCSI commands over USB.
However, there’s no NVMe or USB, at least not as yet, but there shouldn’t really be a need for it either.
I don’t know enough about Linux and how it handles devices to answer your question, but considering NVMe over Thunderbolt has worked for years, it should work in the same way with USB4, as long as the host controller supports PCIe, which all current host controllers do to my knowledge.
An external enclosure with an NVMe drive in it should be visible to the system as an NVMe drive, but possibly other things too.
[ Well, yes, partly, me would have agreed with NVMe being a protocol until lately seeing a wiki entry, more specific to NVMHCIS, too.
en.wikipedia.org/wiki/NVM_Express maybe You can see where’s the discrepancy in understanding ‘NVMe’? (thx) ]