Подводные камни при форматировании HDD и SSD

Часто встречающаяся проблема, связанная с аппаратными неисправностями жёстких и SSD дисков, вызванная нечитаемыми секторами, т.н. «отложенным сканированием» или BGMS, либо просто логическим сбоем, проявляющаяся сообщением Windows типа «прежде чем использовать диск в дисководе его нужно отформатировать», наталкивает пользователей на казалось бы очевидное, и вместе с тем крайне опасное, о чём я напишу далее, решение — форматировать диск с тем, чтобы в дальнейшем с помощью всеразличных программ, начиная от нормальной R-Studio или UFS Explorer и заканчивая таким г**ном как Recuva, попытаться вытащить с отформатированного диска файлы.

В работу попал внешний WD Charger с распаянным на плате USB интерфейсом, «тормозящий» при работе из-за background media scan activity процессов, заботливо отформатированный пользователем перед тем, как обратиться за помощью к нам.

Меняем USB плату на SATA аналог для облегчения процессов технологического чтения диска, выключаем «фоновое сканирование», подключаем диск на программно-аппаратный комплекс с параллельным копированием всего прочитанного на диск-приёмник и смотрим на «свежеформатированную» файловую структуру:

Особенности построения транслятора на «новых» SMR HDD и SSD с поддержкой функции Trim (подробнее про транслятор на «старых» дисках можно прочитать по этой ссылке) состоят в том, что диск при запросе содержимого сектора из незанятой с точки зрения диска (не описанной в трансляторе) области не производит фактического чтения содержимого сектора, а автоматически отдаёт паттерн 00h, т.е. нули.

Формируем общую карту секторов LBA, почти на 2Tb и строим на основе «карты голов» в свою очередь полученной на базе разбора существующего SMR транслятора субкарту занятого пространства.

И видим, что после «быстрого» форматирования средствами Windows диск считает, что у него занято всего 703 Mbt. Подчеркну красным: это не на основе разбора bitmap полученный объём, а «аппаратно» высчитанный размер занятой, с точки зрения самого диска, области! При штатном чтении остальных секторов мы будем видеть бесконечную череду нулей, и ни одна программа для восстановления файлов после форматирования не найдёт на таком диске ничего, как ни старайся.

И вот тут начинается самое печальное. Если диск был «самошифрующимся» т.е. в паспорте был бы активен чекбокс SED Drive, то вместе со старым транслятором после быстрого форматирования улетела бы часть ключа шифрования.

Но даже если шифрования не было, чтение пользовательской области в технологическом режиме, когда диск отдаёт реальное содержимое сектора:

Это только начало долгой и нудной работы по вытаскиванию из полученного образа файлов, особенно если речь идёт о сохранении изначально бывшей на диске до форматирования файловой структуры и фрагментированных данных. Файлы на таких дисках пишутся не линейно, диск отдаёт под запись пространство по непредсказуемому заранее алгоритму и ручное определение положения миллионов цепочек, сортировка «мусорных» от тех, где были реальные актуальные данные, работа настолько сложная и нетривиальная, что я затрудняюсь определить её стоимость и сроки выполнения даже в принципе.

Вот к каким последствиям может привести «невинное» быстрое форматирование вашего съёмного винчестера. И ведь обязательно найдутся дятлы, которые будут говорить, что «да я сто раз диски форматировал и без проблем потом программками оттуда файлы восстанавливал». Да, когда-то давно так и было, а сейчас получается вот так вот.