notby.NET Logo

Безвозвратное удаление данных с SSD/HDD/Флешки в Linux

Простое удаление файлов или форматирование накопителя не удаляет данные и их можно будет восстановить в дальнейшем. Для надежного удаления необходимо перезаписать весь объем накопителя произвольными (случайными) данными. Для перезаписи и удаления данных с накопителя в операционных системах Linux подойдет утилита dd или shred.

1. Эффективность удаления информации и данных

Гарантированное 100% удаление данных и информации, это только физическое уничтожение накопителя.

Общий принцип безвозвратного удаления данных сводится к перезаписыванию информации, чтобы данные невозможно было восстановить программными или простыми аппаратными средствами. Данный метод удаления данных подойдет для 99.9% пользователей и таких случаев, как: продать жесткий диск, твердотельный накопитель на доске объявлений, отдать на время фотоаппарат с флешкой, сдать usb-флешку с проектом и аналогичные.

Каждый накопитель имеет разные принципы работы, и для некоторых будет недостаточно многократной перезаписи информации:

  • USB-флешка, карты памяти (microSD): будет достаточно перезаписать данные в два прохода.
  • Жесткий диск (HDD): необходимо будет перезаписывать в четыре прохода, так как на жестком диске остается намагниченность от старых данных.
  • Твердотельный накопитель (SSD): безвозвратно удалить данные в несколько проходов могут не дать нужного результата. Контроллер SSD записывает данные в произвольных местах и затрагивает “резервные” области, но для продажи накопителя несколько проходов будет достаточно. 

Многие производители SSD выпускают фирменное программное обеспечение, которое позволяет удалить все данные и вернуть SSD в заводской вид. Но эти программы с закрытым исходным кодом, как и прошивки SSD, и они могут удалить только сигнатуру разметки чипов памяти, но саму информацию оставлять.

2. Определение накопителя в системе

Все дальнейшие действия в статье выполняются от root пользователя или с его привилегиями через sudo.

su -

Выводим список всех накопителей в системе Linux

fdisk -l
В консоли Debian выполнена команда “fdisk -l”, показана USB флешка объемом 2 Гб по адресу устройства /dev/sda с одном разделом /dev/sda1 в файловой системе FAT32

В моем случае /dev/sda необходимый накопитель с которого необходимо полностью удалить данные.

Внимательно выбирай необходимый накопитель, все данные на нем будут необратимо удалены. И если ошибится, то можно безвозвратно удалить данные с системного раздела или другого накопителя.

3. Удаление данных с накопителя

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

3.1. Утилита dd

Утилита dd используется в Linux для копирования, создания файлов и данных, переноса информации, записи образов. Также при помощи нее можно заполнить весь накопитель случайными данными или нулями.

Заполняем весь накопитель случайными данными

dd if=/dev/random of=/dev/sda status=progress

где /dev/sda — накопитель который необходимо очистить.

USB-флешка объемом 2 ГБ заполнена случайными данными при помощи команды “dd if=/dev/zero of=/dev/sda status=progress” в консоли Debian

Заполняем весь накопитель нулями

dd if=/dev/zero of=/dev/sda status=progress

где /dev/sda — накопитель который необходимо очистить.

USB-флешка объемом 2 ГБ заполнена нулями при помощи команды “dd if=/dev/zero of=/dev/sda status=progress” в консоли Debian

Накопитель был забит случайными данными и затем все данные были стерты.

Для флешки будет достаточно заполнить случайными данными и затем нулями. Для жесткого диска, твердотельного накопителя нужно повторить процедуру минимум 2-3 раза. Хотя в зависимости от паранойи, можно 10 и более проходов сделать.

3.2. Утилита shred

Утилита shred специально разработана для удаления данных и она позволяет удалить отдельный файл, перезаписывая его несколько раз. Это может быть полезно, если необходимо удалить не все данные с накопителя, а конкретный файл. Когда происходит удаление данных со всего накопителя, утилита shred по умолчанию поступает аналогично команде dd и делает три прохода перезаписи накопителя случайными данными.

Безвозвратно уничтожаем данные с накопителя

shred -v /dev/sda

где /dev/sda — накопитель который необходимо очистить, параметр -v — выводит информацию о процессе уничтожения данных.

Накопитель объемом 2 ГБ перезаписан случайными данными в три прохода при помощи утилиты shred командой “shred -v /dev/sda” в консоли Debian

Накопитель был успешно перезаписан в три прохода случайными данными.


Уничтожим данные с накопителя, добавив для утилиты shred дополнительные параметры:

shred -v -n 5 -z /dev/sda
  • /dev/sda — накопитель, который необходимо очистить;
  • параметр -v — выводит информацию о процессе уничтожения данных;
  • параметр -n — количество перезаписи накопителя случайными данными;
  • параметр -z — в конце заполнить накопитель нулями.
Накопитель объемом 2 ГБ перезаписан случайными данными в шесть проходов при помощи утилиты shred командой “shred -v -n 5 -z /dev/sda” в консоли Debian

Произошла перезапись накопителя случайными данными 5 раз, и затем, на шестой раз накопитель был заполнен нулями. Этот вариант идеально подходит для жестких дисков.


Если необходимо уничтожить отдельный файл, вместо накопителя необходимо указать путь до файла.

Перезапись в несколько подходов отдельного файла не подойдет для твердотельного накопителя, так как контролер SSD может перезаписывать случайные данные каждый раз в произвольные места. При этом оригинальный файл может где-то остатся в чипах памяти накопителя.

Монтируем накопитель средствами графической рабочей среды (KDE, Xfce, GNOME, …) или через консоль

mount /dev/sda1 /mnt/drive/

где /dev/sda1 — раздел накопителя, /mnt/drive/ — точка монтирования.

Безвозвратно затираем (перезаписываем) файл на накопителе

shred -v -n 10 -u /mnt/drive/private
  • /mnt/drive/private — путь до файла, который необходимо затереть;
  • параметр -v — выводит информацию о процессе уничтожения файла;
  • параметр -n — количество перезаписи файла случайными данными;
  • параметр -u — в конце удалить файл через переименование.
Содержимое файла /mnt/drive/private уничтожено командой “shred -v -n 10 -u /mnt/drive/private” в консоли Debian, вначале файл перезаписан случайными данными в десять проходов и затем удален через ступенчатое переименовывание.

Файл был перезаписан 10 раз случайными данными и затем был удален через метод переименования.

4. Заключение

Методы, описанные в данной статье рабочие и они безвозвратно удаляют информацию с накопителя. Для программ восстановления случайно удаленных файлов, метод перезаписывания даст почти 100% гарантию уничтожения всех данных. Тот, кто купит накопитель на доске объявления, не будет обладать знаниями и сложными техническими средствами для восстановления информации. Даже если такая возможность у покупателя будет, то нет никакой гарантии что получится восстановить данные.

Из того что я прочитал в интернете, есть методы получения информации по остаточной намагниченности, рентгенографии чипов памяти и их химическое травление, и еще более сложные. А главное эти методы будут экономически нецелесообразными, так как цена восстановления будет на несколько порядков дороже цены накопителя.

Рекомендую всегда использовать полнодисковое шифрование накопителя, о том как шифровать флешки и накопители читать: Шифрование накопителя или раздела утилитой cryptsetup (LUKS) в Linux. Даже если получится восстановить информацию, она все равно останется зашифрованной.