Если UNMAP неверно переведено вашим корпусом, вы можете по крайней мере вручную обрезать весь диск с помощью hdparm (это использует сквозную передачу протокола SCSI и отлично работает на док-станции hdd UASP). Но вам нужно вычислить сектора вручную, потому что hdparm поддерживает только обрезку 65535 секторов за раз. Я написал короткий скрипт для выполнения математики:
#!/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
Сохраните его как sectors.py и сделайте chmod +x sectors.py. Он дает список секторов, используемых с hdparm --trim-sector-ranges-stdin. Теперь выполните hdparm -I /dev/sdX (как root) и выдержите для строки, которая выглядит так:
LBA48 user addressable sectors: 62533296
Это подсчет сектора устройств (как вы могли бы рассчитать это SSD на 32 ГБ, я часто использую для тестирования).
Скопируйте номер в следующую команду:
./sectors.py SECTOR_COUNT | sudo hdparm --trim-sector-ranges-stdin --please-destroy-my-drive /dev/sdX
ВНИМАНИЕ: Это приведет к стиранию WHOLE DRIVE!
. По завершении запустите sync и подождите несколько секунд. Теперь вы можете перечитать таблицу разделов с помощью hdparm -z /dev/sdX или просто отключить питание устройства. Поздравляем, теперь у вас есть «свежий» SSD.