TRIM. Опасности технологии и как с ними бороться

Пользователи новых версий Windows (Windows 8, 8.1 и 10), Mac OS X (начиная с версии 10.10.4) и новейших сборок Linux, компьютеры которых оборудованы твердотельными дисками (SSD), даже не подозревают, что может произойти, если они вдруг, случайно, удалят нужные данные или отформатируют раздел на своем SSD.

А произойдет вот что. Данные будут удалены навсегда, их невозможно будет восстановить никакими программами. Почему?

Потому что последние версии операционных систем поддерживают технологию TRIM.

Что такое TRIM?

TRIM (от английского to trim — вырезать) — АТА-команда, позволяющая операционной системе указать твердотельному диску, в каких блоках его памяти нет данных. Это позволяет SSD физически удалять ненужные данные из этих ячеек памяти, чтобы можно было проводить процессы внутренней дефрагментации информации и таким образом увеличить срок службы накопителя.

Как работает TRIM?

Работа этой технологии предельно проста. Удаляя данные, операционная система отправляет SSD своего рода «уведомление»: данные, находящиеся по таким-то координатам, больше не нужны. Контроллер твердотельного диска преобразует логические координаты операционной системы в физические, и блоки памяти, которые попали в список содержащих ненужную информацию, проходят очистку: в них больше не содержится никаких данных.

После того, как SSD очистит достаточное количество блоков памяти, начнется процесс переноса: области, содержащие информацию, будут группироваться с такими же областями, а области, не имеющие информации, также будут группироваться. Это заметно повышает производительность и ресурс SSD и называется фоновой дефрагментацией.

Чем опасен TRIM?

Единственная опасность этой технологии заключается в том, что после удаления информации ее уже невозможно восстановить, так как твердотельный накопитель необратимо очистит блоки, содержавшие удаленные данные. Вы скажете: и что с того? Ведь данные-то удалены, а значит они не нужны больше.

К сожалению, это не всегда так. Да, бесспорно, большинство операций удаления информации производятся добровольно, но случаются (и довольно часто) операции случайного удаления или форматирования. И вот в таких случаях удаляются нужные данные, и удаляются навсегда.

Я проиллюстрирую это на примере.

В работу поступил ноутбук HP Probook 430, оборудованный SSD емкостью 256 GB. На этом ноутбуке проводились работы по написанию диссертации. И вот, в один «прекрасный» момент пользователь, при удалении с рабочего стола ненужного ярлыка, случайно зацепил две нужные папки. И очистил корзину. Спохватился он через время — но было уже поздно, данные исчезли навсегда. Теперь пользователю предстоит кропотливо восстанавливать набранный текст вручную.

Файл JPEG после того, как он прошел через TRIM
Исправный JPEG-файл

Отключение TRIM

Если вы считаете, что безопасность ваших данных важнее потери производительности и некоторого уменьшения ресурса твердотельного накопителя, то я бы рекомендовал отключить TRIM. Если на вашем накопителе нет таких данных, потеря которых была бы для вас ощутима, TRIM можно не трогать. В любом случае, решение принимать вам. На моих накопителях TRIM отключен.

В системе Windows проверить состояние TRIM и отключить или задействовать его достаточно просто. Для начала нажмите кнопку «Пуск» и наберите в строке поиска cmd. В появившемся результате, в разделе «Программы» выберите cmd и запустите ее от имени администратора.

Поиск и запуск командной строки Windows
Ответ на запрос состояния TRIM в операционной системе: TRIM отключен

В открывшемся окне командной строки необходимо ввести команду:

fsutil behavior query DisableDeleteNotify

Ответом на эту команду будет состояние TRIM в вашей операционной системе. Если в строке DisableDeleteNotify стоит статус 0, значит TRIM включен. Если 1 — выключен.

Для включения или отключения TRIM также используется командная строка, но вместо команды запроса (query) нужно использовать команду установки (set):

fsutil behavior set DisableDeleteNotify 0

для включения TRIM, и

fsutil behavior set DisableDeleteNotify 1

для отключения TRIM.

Включение TRIM с последующей проверкой статуса

Почему восстановленные файлы не работают?

Даже после того, как на накопителе отработал TRIM, если диск отсканировать программами, предназначенными для восстановления данных, эти программы «найдут» удаленные данные. Многие пользователи вздыхают с облегчением: фух, данные нашлись, страшного не произошло. Но, увы, ни один из восстановленных файлов работать не будет. Почему?

Выше я привел скриншоты с нормальным и удаленным после TRIM JPEG-файлами (обычно этот формат используется для сохранения фотографий). Прошедший через TRIM JPEG-файл не несет в себе данных, он полностью заполнен нулями. Но при этом программа для восстановления данных его обнаружила. Как так?

Все очень просто. Программа работает с файловыми таблицами — и представляет результат их сканирования. В этих таблицах хранится информация обо всех (включая удаленные, но еще не переписанные) файлах. Поскольку TRIM работает не с записями в файловой таблице, а с файлами, то очищается именно область, в которой находился файл — при этом запись в файловой таблице не очищается. Вот и получается, что запись есть, а файла по факту уже нет.



Мы принимаем к оплате | We accept payments


Мы стажировались и работали в странах | We worked or practiced in following countries