Se o UNMAP não for traduzido corretamente pelo seu gabinete, você pode pelo menos aparar manualmente a unidade inteira usando o hdparm (isso usa o pass-passthrough do protocolo SCSI e funciona bem no meu dock do hdd UASP). Mas você tem que calcular os setores manualmente porque o hdparm suporta apenas o corte de 65535 setores por vez. Eu escrevi um pequeno script para fazer as contas:
#!/usr/bin/env python3
import sys
remaining = int(sys.argv[1])
i = 0
while remaining > 0:
add = min(65535, remaining)
print("%d:%d" % (i, add))
remaining -= add
i += add
Salve como sectors.py
e faça chmod +x sectors.py
. Ele produz uma lista de blocos de setores utilizáveis com hdparm --trim-sector-ranges-stdin
. Agora execute hdparm -I /dev/sdX
(como root) e segure por uma linha que se pareça com:
LBA48 user addressable sectors: 62533296
Esta é a contagem do setor de dispositivos (como você pode calcular, este é um SSD de ~ 32 GB que eu uso com frequência para testes).
Copie o número para o seguinte comando:
./sectors.py SECTOR_COUNT | sudo hdparm --trim-sector-ranges-stdin --please-destroy-my-drive /dev/sdX
AVISO: Isto irá apagar o DRIVE INTEIRO!
Depois que terminar, execute sync
e aguarde alguns segundos. Agora você pode reler a tabela de partições com hdparm -z /dev/sdX
ou simplesmente ligar e desligar o dispositivo. Parabéns, você tem um SSD "novo" agora.