Technical

870 EVO 1TB Internal SSD Not Reading: Fix SATA Detection in Proxmox

870 EVO 1TB Internal SSD Not Reading: Fix SATA Detection in Proxmox

870 EVO 1TB internal SSD not reading in Proxmox? It’s usually the SATA link or a kernel hiccup, not a dead drive. Check dmesg and smartctl before you RMA it.

Stack of internal hard disk drives for digital storage on white background.

Is the drive even seen by the kernel?

First thing: does Linux see the device at all? Run lsblk and dmesg | grep -i ata. If the drive doesn’t show up in lsblk, check the SATA cable and port. I’ve had a flaky cable cause intermittent detection on a 870 EVO. Swap the cable, try another port, and reseat the power connector.

lsblk
dmesg | grep -i ata

If you see errors like ata1: link is slow to respond or COMRESET failed, the SATA link is unstable. That’s often a cable or power issue, not the SSD itself.

Check smartctl for drive health

If the drive appears but Proxmox won’t use it, run smartctl -a /dev/sdX. A failing 870 EVO might show reallocated sectors or pending sectors. But many “not reading” issues are just a bad connection or a firmware bug. Samsung had a firmware update for some 870 EVO drives that fixed detection problems. Check Samsung’s site for your model.

smartctl -a /dev/sdX
Two NVMe SSDs, Seagate FireCuda, on a gray background for tech enthusiasts.

Proxmox storage layer

If the kernel sees the drive but Proxmox doesn’t, you need to initialize it. Go to Datacenter → Storage → Add → LVM or Directory. For a single disk, I’d use Directory or LVM-thin. If you’re passing it through to TrueNAS, don’t add it as Proxmox storage—just pass the whole disk via qm set or add it to the VM config.

# In /etc/pve/qemu-server/100.conf
sata0: /dev/disk/by-id/ata-Samsung_SSD_870_EVO_1TB_XXXX,size=1000G

For TrueNAS, you’d pass the disk by ID to avoid device name changes. Check ls -l /dev/disk/by-id/ to find the right identifier.

Kernel quirks

Sometimes the 870 EVO has issues with NCQ or power management on certain SATA controllers. You can disable NCQ with libata.force=noncq as a kernel boot parameter. That’s a last resort, but it’s fixed detection for some people.

# Add to /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet libata.force=noncq"
update-grub

If you’re on a newer Proxmox kernel and the drive disappears after a reboot, check for firmware updates for your SATA controller too. The Detected Hardware Unit Hang post has similar kernel-level fixes for NICs, but the ASPM tweak can help SATA too.

My take

Don’t assume the SSD is dead. 870 EVOs are solid, but cables and SATA controllers cause most “not reading” problems. Check dmesg first, reseat everything, then look at smartctl. Only after that should you consider RMA.

Leave a comment

Comments are reviewed before they appear. Your email is never published.