Ism писал(а): ↑13.04.2013 21:11
можно ли восстановить файл на SSD после того как его очистил TRIM ?
не знаю. За то знаю, что TRIM только
запускает стирание в фоне. Но не даёт гарантии, что блок _сейчас_ сотрётся. Время его стирания неизвестно. Т.е. выполнение TRIM откладывается, причём насколько - неизвестно.
Кроме того, TRIM стирает остров целиком, т.е. если TRIM поступила для острова, в котором 1 из 64х блоков занят, то зачем его стирать, если туда можно записать ещё 63 блока? И вот когда(и если) испачкается много из 64х блоков на острове, тогда его нужно стирать.
Блок может находится в трёх состояниях:
1. чистый. Готовый для записи.
2. используемый. На нём нужные данные.
3. грязный. На нём данные, но они не нужны (поступила TRIM, или запись в тот же логический сектор)
Сначала они все на острове в (1). Записывая мы переводим в (2). А TRIM переводит в (3). Также в (3) переводит запись в логический LBA сектор, который уже используется.
Сборщик мусора может перевести ВЕСЬ(это важно!) остров из (3) в (1). Если там есть (2), он может их перекинуть на другие острова. И именно сборщик мусора как раз и стирает, а вовсе не TRIM. Данные могут зависнуть на острове в грязных блоках, а GC их не будет трогать потому что, там много (1) и/или (2) (он будет и их чистить в условиях дефицита места, но это очень долго, и убивает SSD)