На даний момент доступна велика кількість програм для відновлення разі видалення файлів і розділів на жорсткому диску або USB накопичувачі. Всі ці програми грунтуються на тому, що при видаленні файлу з файлової системи, його дані і метадані продовжують зберігається на фізичному носії, поки не будуть перезаписані новими файлами. Програми відновлення видалених файлів дозволяють просканувати диск і знайти вилучені файли за сигнатурам на диску і при аналізі невикористовуваних блоків диска. Однак класичний підхід відновлення файлів не працює з пристроями SSD (Solid State Drive) з підтримкою функції ОБРІЗКА. Давайте розберемося чому.

Видалення файлів з SSD накопичувача і команда TRIM

Процес видалення файлів на SSD кардинально відрізняється від процесу видалення файлів на класичному жорсткому диску. При видаленні файлу ОС посилає на SSD пристрій команду інтерфейсу ATA – ОБРІЗКА, Яка повідомляє що ці дані не потрібні. Пристрій SSD позначає ці осередки на видалення і в фоновому режимі обнуляє їх (фоновий процес збору сміття). Це дозволяє більш швидко зберігати дані в вільні комірки SSD і збільшує термін служби пристрою. Таким чином команда TRIM змушує накопичувач фізично очищати невживані блоки даних.

В результаті будь-яка програма відновлення файлів бачить в незайнятих осередках SSD тільки нулі.

Виходить, що якщо ваш SSD диск підключений до комп’ютера через SATA інтерфейс, то практично неможливо відновити з нього видалені дані. Це відноситься і до SSD дисків з інтерфейсом NVMe. Для таких пристроїв є аналог команди TRIM, яка називається – Виділити (Є аналогом TRIM для ATA, підтримується в Windows 8 і вище).

Як Windows визначає SSD диски?

Windows за замовчуванням включає підтримку команду TRIM для SSD дисків, які підключені через інтерфейс ATA / IDE / SATA / M.2 / PCI Express (але не USB!) В режимі AHCI (буває, що внутрішні SSD диски некоректно відображаються як знімні пристрої) . Це необхідно для оптимізації роботи твердотільних накопичувачів. Крім того, TRIM використовується тільки для файлових систем NTFS і REFS. При виконанні цих умов при видаленні файлу автоматично виконується команда TRIM і фоновий процес SSD практично відразу очищає осередки.

У MacOS TRIM включений за замовчуванням для SSD від Apple з файловими системами APFS і HFS +. Команда TRIM також відправляється відразу після видалення файлу.

Таким чином ви зможете відновити вилучені файли і розділи з SSD накопичувача якщо:

  • SSD накопичувач підключений до комп’ютера через USB або FireWire порт;
  • У вас використовується RAID масив з SSD (Windows не включає TRIM для такого пристрою);
  • У вас використовується старі версії ОС: Windows Vista, Windows XP, MacOS до OS X 10.10.4 (в цих версіях TRIM не підтримується);
  • TRIM відключено на рівні ОС;
  • Ваш SSD не підтримує команди TRIM (можливо на старих моделях SSD);
  • SSD диск відформатований НЕ файлової системи NTFS (наприклад в FAT32, exFat і т.д).

Приклад відновлення видалених файлів з SSD накопичувача

Розглянемо особливості відновлення даних на SSD накопичувачі за допомогою програми EaseUS Data Recovery Wizard Free. Безкоштовна версія програми дозволяє відновити до 500 Мб віддалених файлів (або до 2 Гб, якщо ви поділилися посиланням на програму в Facebook або Twitter). Але ви можете скористатися будь-який аналогічною програмою для відновлення видалених файлів або навіть вбудованою утилітою Відновлення файлів Windows.

Отже, у мене до комп’ютера підключений SSD диск. Перевіримо, що один з дисків (21 Гб), визначається як SSD за допомогою команди PowerShell Get-PhysicalDisk:

Get-PhysicalDisk | Select Number, PhysicalLocation, MediaType, Size

команда powershell для визначення ssd диск по mediatype

Перевіримо, чи включена для нього функція Trim:

fsutil behavior query DisableDeleteNotify

fsutil behavior query DisableDeleteNotify перевірка активна послуга TRIM в Windows

Наступний рядок означає, що TRIM включено:

NTFS DisableDeleteNotify = 0 (Disabled)
ReFS DisableDeleteNotify = 0 (Disabled)

Спробую видалити з SSD накопичувача один файл і відновити його за допомогою EaseUS Data Recovery Wizard:

  1. Я скачав і встановив безкоштовну версію програми з сайту розробників.

    Для запобігання випадкового перезапису віддалених блоків на диску, не можна встановлювати програми відновлення даних на той же диск, з якого ви хочете відновлювати файли!

  2. Тепер я видаляю довільний файл на SSD накопичувачі;
  3. Запускаю утиліту відновлення, виконую повне сканування SSD диска. У моєму випадку утиліта відновлення даних не знайшла віддалений файл.

пошук видалених файлів на ssd диск з підтримкою trim

Тепер спробуємо відключити підтримку TRIM в Windows за допомогою команди:

fsutil behavior set DisableDeleteNotify 1

Якщо TRIM відключений успішно, ви побачите повідомлення “NTFS DisableDeleteNotify = 1 (увімкнено)“.

Можна відключити TRIM тільки для певної файлової системи. так:

fsutil behavior set disabledeletenotify NTFS 1

або так

fsutil behavior set disabledeletenotify ReFS 1

У macOS ви можете відключити TRIM командою:
sudo trimforce disable

fsutil встановлено поведінку DisableDeleteNotify відключити TRIM у Windows

Я видаляю ще один файл з SSD накопичувача і запускаю повне сканування диска утилітою відновлення. Програма моментально знаходить віддалений файл і запропонує відновити його.

на ssd диску знайдені віддалений файли

Виберіть файл, який потрібно відновити і натисніть кнопку Recover. При відновленні файлу бажано вказати інший диск, щоб випадково не перезатереть метеданние на диску.

Щоб назад включити TRIM, виконайте команду:

fsutil behavior set DisableDeleteNotify 0

Отже, ми убеділесь що при включеному TRIM можна відновити віддалений файл з SSD диска. Не допомагає навіть пошук по файлових сигнатурам.

Таким чином, щоб команда TRIM не застосовувалася до SSD диску, ви можете:

  • підключити SSD пристрій через інтерфейс USB, FireWire або Thunderbolt;
  • Відключити TRIM на рівні ОС. Однак це скорочує термін служби SSD накопичувача і зменшує швидкість запису на диск.

Leave a Reply

Your email address will not be published. Required fields are marked *