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

| Функция | dwipe | nwipe | shred | dd |
|---|---|---|---|---|
| Аппаратное затирание (SATA/NVMe secure erase) | ✓ | ✗ | ✗ | ✗ |
| Программное затирание (нули, псевдослучайные данные) | ✓ | ✓ | ✓ | ✗ |
| Интерактивный TUI | ✓ | ✓ | ✗ | ✗ |
| Несколько одновременных затираний | ✓ | ✗ | ✗ | ✗ |
| Сохранение состояния затирания | ✓ | ✗ | ✗ | ✗ |
| Обнаружение / извлечение горячей замены | ✓ | ✗ | ✗ | ✗ |
| Блокировка устройства/раздела | ✓ | ✗ | ✗ | ✗ |
| Возобновление прерванных программных затираний | ✓ | ✗ | ✗ | ✗ |
| Журналирование операций затирания | ✓ | ✗ | ✗ | ✗ |
| Обнаружение/предотвращение монтирования | ✓ | ✓ | ✗ | ✗ |
| Быстрая статистическая выборочная проверка | ✓ | ✗ | ✗ | ✗ |
| Сертифицированное уничтожение (стандарты DoD/Gutmann, полная проверка, сертификаты) | ✗ | ✓ | ✗ | ✗ |
- Аппаратное затирание (SATA/NVMe) — самое полное и быстрое: Аппаратно-ускоренное стирание выполняется на уровне контроллера (секунды–минуты), очищает все таблицы отображения диска, но требует затирания всего устройства без отчёта о прогрессе или видимой проверки.
- Программное затирание одним проходом нулями достаточно: Современные диски (после 2001 г.) надёжно затираются одним проходом нулей (NIST SP 800-88). Многопроходные режимы доступны для дополнительной уверенности, но не дают дополнительных гарантий безопасности.
- Проверка использует интеллектуальную статистическую выборку: Даже 1% проверочных выборок по всему диску через 100 секций обеспечивает всестороннее покрытие без полного последовательного чтения.
/dev/, /sys/, /proc/)Опционально (для копирования в буфер обмена на экране истории):
apt install xclip или xsel)apt install wl-clipboard)pipx install dwipedwipe --helppipx uninstall dwipedwipedwipe из терминала (sudo будет запрошен автоматически)w для затирания диска, необходимо ввести аббревиатуру (например, Rand, Zero, Crypto); варианты затирания представлены от наименее рекомендуемого к наиболее рекомендуемому, последний отмечен *. Обычно выбирайте последний вариант, но ...Rand или Zero (прерываемо, показывает прогресс).dwipe автоматически обнаружит возобновление и выполнит повторное сканирование. Или нажмите для ручного повторного сканирования. Диск должен разморозиться.dwipe предоставляет комплексные возможности затирания дисков с функциями безопасности:
Примечание:
dwipeпоказывает метки файловых систем, а если их нет — метки разделов. Рекомендуется правильно именовать разделы и файловые системы для упрощения выбора.
Просто запустите dwipe из командной строки без аргументов: dwipe
Примечание: Все опции предпочтений по умолчанию используют последние сохранённые значения. Эти значения по умолчанию показаны в --help и могут быть изменены интерактивно с помощью сочетаний клавиш. Параметры командной строки переопределяют сохранённые предпочтения.
--mode {-V,+V} — Режим проверки (по умолчанию: ваше последнее предпочтение)
-V — Затирание без автоматической проверки+V — Проверить устройство после завершения затирания--passes {1,2,4} — Количество проходов для программного затирания (по умолчанию: ваше последнее предпочтение)
--verify-pct {1,3,10,30,100} — Процент проверки (по умолчанию: ваше последнее предпочтение)
--dense {True,False} — Компактный режим просмотра (по умолчанию: ваше последнее предпочтение)
True — Компактное расположение (меньше пустых строк между дисками)False — Разреженное расположение (пустые строки между дисками для читаемости)--port-serial {Auto,On,Off} — Отображение порта/серийного номера диска (по умолчанию: ваше последнее предпочтение)
Auto — Показывать порт/серийный номер только для целых дисков (рекомендуется)On — Всегда показывать порт и серийный номерOff — Никогда не показывать порт и серийный номер--slowdown-stop {0,4,16,64,256} — Остановить, если диск замедляется (по умолчанию: ваше последнее предпочтение, миллисекунды)
0 = Отключено--stall-timeout {0,60,120,300,600} — Тайм-аут зависания в секундах (по умолчанию: ваше последнее предпочтение)
0 = Отключено (никогда не завершать по тайм-ауту)--firmware-wipes или -F — Включить аппаратное затирание
--dump-lsblk — Вывести разобранную информацию об устройстве и выйти (для отладки)--help — Показать справку со всеми доступными параметрамиdwipe использует цветовое кодирование для мгновенной визуальной обратной связи о состоянии устройства и операции:
dwipe поддерживает несколько цветовых тем для улучшения видимости и эстетики.
Доступные темы:
default — Стандарт терминала (базовые цвета ANSI)dark-mono — Тёмная монохромная (почти белый на почти чёрном с яркими цветами)light-mono — Светлая монохромная (почти чёрный на почти белом с яркими цветами)solarized-dark — Палитра Solarized Darksolarized-light — Палитра Solarized Light (для светлого фона терминала)gruvbox — Палитра Gruvbox Darknord — Палитра NordСмена тем:
Особенности тем:
Столбец STATE показывает текущий статус каждого устройства:
Верхняя строка показывает доступные действия. Некоторые из них контекстно-зависимы (доступны только для определённых устройств):
Нажмите h для просмотра журнала истории затираний. Экран истории показывает все операции затирания и проверки с временными метками, информацией об устройстве и результатами.
Действия на экране истории:
/ для глубокого поиска по JSON)Методы копирования в буфер обмена (обнаруживаются автоматически):
Примечание: Если OSC 52 не работает с вашим терминалом, текст всё равно отображается на экране для ручного выделения. Для tmux включите буфер обмена с помощью
set -g set-clipboard onв вашем.tmux.conf.
dwipe поддерживает аппаратное затирание (аппаратно-ускоренное) и программное затирание. Аппаратное затирание требует флага --firmware-wipes или -F. Таблицы ниже перечисляют методы затирания от наиболее предпочтительных (Ранг 1) к наименее.
Примечание: HDD не имеют выравнивания износа или скрытых блоков, поэтому программные затирания так же тщательны, как и аппаратные, но обеспечивают лучший контроль (прогресс, пауза/возобновление, прерывание).
| Ранг | Сокр. | Официальное название | Примечания |
|---|---|---|---|
| 1 | Rand | Software Random Write | Предпочтительный; непредсказуемый шаблон; статистическая проверка |
| 2 | Zero | Software Zero Write | Проще; быстрая проверка (неудача на первом ненулевом байте) |
Примечания:
- Аппаратное затирание показывает только методы, поддерживаемые каждым диском (см. столбец FwCAPS).
- Аппаратное затирание включает автоматическую выборочную проверку.
- Суффикс
+Vвключает автоматическую проверку после программного затирания. Без+Vнажмите v для ручной проверки.- Многопроходные программные затирания (2 или 4) чередуют нулевые/случайные шаблоны, заканчивая выбранным режимом.
- USB-диски и разделы лишены аппаратного стирания — доступны только программные затирания.
Остановленные затирания (состояние s) можно возобновить, нажав w на устройстве. Выберите тот же тип затирания, иначе оно начнётся с 0% завершения.
Как работает возобновление:
Примеры возобновления:
Преимущества:
Программные затирания используют интеллектуальную проверку со статистическим анализом и оптимизациями быстрого сбоя. Проверка настраиваема и опциональна.
Интеллектуальная выборка:
--verify-pct (сохраняется как предпочтение)Обнаружение шаблонов:
Режимы проверки:
+V (Rand+V или Zero+V) и установите процент проверки > 0Почему статистическая выборка лучше последовательной:
Стирание прошивки (SATA/NVMe secure erase) использует безусловную выборочную верификацию, которая выполняется автоматически для всех стираний прошивки. Это подтверждает, что команда аппаратного стирания действительно выполнилась.
Метод выборочной проверки:
Почему выборочные проверки эффективны:
Важное примечание: Стирания прошивки не показывают процентную верификацию, как программные стирания. Выборочная проверка происходит незаметно в рамках операции стирания, а результат (успех/неудача) записывается в постоянный маркер состояния стирания.
При программном стирании устройства dwipe отображает:
Состояния W (стерто) и s (частично стерто) сохраняются между перезагрузками. Это достигается записью метаданных в первые 16 КБ устройства:
Когда устройство с постоянным состоянием отображается, дополнительно показывается:
При нажатии ? отображаются доступные клавиши и параметры командной строки с их текущими настройками.
Вы можете перемещаться по списку устройств с помощью:
Клавиша / активирует инкрементальную фильтрацию поиска в стиле vim:
Как это работает:
Примеры фильтров:
Фильтр поддерживает regex-шаблоны. Вот несколько полезных примеров:``` /sda # Show only sda and its partitions /sd[ab] # Show sda, sdb and their partitions /nvme # Show all NVMe devices /nvme0n1p[12] # Show only partitions 1 and 2 of nvme0n1 /usb # Show devices with "usb" in their labels
Нажмите **ESC** на главном экране, чтобы очистить фильтр и вернуться к отображению всех устройств.
**Примечание:** Некорректные регулярные выражения игнорируются — фильтр остаётся на последнем правильном шаблоне во время ввода.
## Соображения безопасности
**Важные ограничения программных затираний:**
- `dwipe` поддерживает многопроходное затирание с чередующимися шаблонами, но не реализует сертифицированные последовательности шаблонов DoD 5220.22-M или Gutmann
- Более чем достаточно для **личных и корпоративных данных**, не требующих (устаревшей) сертифицированной деструкции
- **НЕ подходит** для секретных, совершенно секретных или высокочувствительных данных, требующих сертифицированного затирания с определёнными шаблонами и сертификатами соответствия
- **Особенности SSD**:
- Современные SSD используют выравнивание износа и могут сохранять данные в незанятых блоках
- TRIM/DISCARD может препятствовать полному удалению данных
- Для SSD рассмотрите заводские утилиты безопасного стирания для максимальной безопасности
- Режим случайной записи может не обеспечивать дополнительную безопасность по сравнению с нулями на SSD
**Лучшие практики:**
- Внимательно проверяйте метки и размеры устройств перед затиранием
- Используйте функцию **Block**, чтобы защитить критические диски
- Рассмотрите шифрование для чувствительных данных как основную меру безопасности
---
---
## Устранение неполадок
### dwipe не запускается
- **Ошибка: "cannot find lsblk on $PATH"** — установите пакет `util-linux`
- **Отказано в доступе** — `dwipe` автоматически запрашивает sudo; убедитесь, что вы можете использовать sudo
### Проблемы с отображением в терминале
- **Искажённый экран после сбоя** — выполните команду `reset` или `stty sane`
- **Цвета не работают** — убедитесь, что ваш терминал поддерживает цвета (большинство современных терминалов поддерживают)
### Проблемы с затиранием
- **Не удаётся затереть устройство** — проверьте столбец STATE:
- **Mnt** — сначала отмонтируйте раздел: `sudo umount /dev/sdXN`
- **Blk** — нажмите **b** для разблокировки
- **Busy** — другой раздел на диске в данный момент затирается
- **Затирание очень медленное** — нормально для больших дисков; проверьте скорость записи, чтобы оценить прогресс
- **Затирание зависло** — скорее всего из-за плохого диска; прямой ввод/вывод обеспечивает почти постоянный прогресс на хороших дисках.
---
### Особенности прошивки при затирании
Затирание прошивки (операции безопасного стирания SATA/NVMe) имеет особенности, отличные от программного затирания:
**Замороженные диски:**
- SATA-диски обычно замораживаются BIOS/UEFI во время POST в качестве меры безопасности
- Это функция безопасности на уровне диска, а не ограничение `dwipe`
- **Решение**: кратковременно переведите систему в спящий режим и выведите из него; `dwipe` автоматически обнаружит выход из режима и выполнит повторное сканирование (или нажмите **r** вручную). При входе/выходе из спящего режима происходит перезапуск канала SATA, что снимает заморозку.
- Если диск остаётся замороженным после пробуждения, попробуйте полное отключение питания (10+ минут, чтобы разрядить конденсаторы диска), затем загрузку и повторное сканирование
**Особенности устройств и совместимость:**
- Накопители имеют различные реализации прошивки и аппаратные особенности, влияющие на операции безопасного стирания
- Некоторые диски могут не полностью поддерживать определённые операции очистки, иметь проблемы с таймингом или вести себя непредсказуемо
- `dwipe` не может гарантировать успешное затирание всех устройств — некоторые аппаратные средства могут просто не выполнять команды стирания
- Всегда проверяйте диск после затирания (клавиша **v**), чтобы убедиться, что стирание действительно завершено
- Для критически важного уничтожения данных на нестандартном оборудовании рассмотрите возможность использования заводских утилит безопасного стирания как запасной вариант
---
### Работа с плохими или выходящими из строя дисками
dwipe включает встроенные средства защиты для проблемных накопителей:
**Автоматическая обработка ошибок.** При возникновении ошибок диска во время затирания:
* Последовательные ошибки записи: затирание прерывается после 3 последовательных неудачных записей
* Порог общего количества ошибок: затирание прерывается после 100 ошибок записи
* Автоматические повторы: при сбое записи устройство автоматически закрывается и переоткрывается (восстановление после временных ошибок)
* Восстановление файловых дескрипторов: обнаруживаются состояния повреждённых FD и обновляются их дескрипторы
**Обнаружение остановок и замедлений.** dwipe отслеживает скорость записи и может прерывать проблемные операции:
* Обнаружение остановки: прерывается, если прогресса нет 5 минут (настраивается)
* Обнаружение замедления: измеряет начальную скорость в течение первых 5 секунд, прерывается, если скорость падает ниже порога (например, 1/4 от начальной)
* Отслеживание прогресса: непрерывный мониторинг гарантирует, что запись действительно достигает устройства
**Если затирание застряло...** Если кажется, что затирание зависло или не реагирует:
* Первая попытка: нажмите s для корректной остановки выбранного затирания
* Наберитесь терпения: некоторые операции с диском могут занимать минуты, пока истечёт тайм-аут на уровне ядра
* Если всё ещё зависло: нажмите S (Shift+s) для остановки ВСЕХ затираний
* Крайняя мера: если интерфейс полностью завис:
* Нажмите Ctrl-Z для приостановки `dwipe`
* В терминале выполните: `sudo pkill -f "python.*dwipe"` (убивает только процессы dwipe)
* Выполните reset для восстановления терминала, если отображение искажено
**Предотвращение проблем с проблемными носителями.** Для заведомо плохих дисков или сомнительного оборудования:
* Начните с проверки: сначала нажмите v для тестирования читаемости
* Используйте более низкие скорости: включите ограничение грязных страниц (клавиша d) для снижения нагрузки ввода-вывода
* Мониторьте системные журналы: проверяйте dmesg -w в другом терминале на предмет ошибок диска
* Рассмотрите аппаратные проблемы: корпуса USB, кабели и контроллеры часто вызывают проблемы
**Распространённые шаблоны ошибок диска**
* Потеря USB-соединения: dwipe обнаружит и попытается восстановиться
* Плохие сектора: ошибки будут учитываться; задание прерывается при избыточном количестве
* Тайм-ауты контроллера: ядро может зависнуть; должно сработать обнаружение остановки
* Полный диск: ошибки записи за пределами устройства обрабатываются корректно
**Восстановление после прерывания.** Если затирание прервано из-за ошибок диска:
* Состояние устройства покажет s (остановлено/частично)
* Можно попытаться возобновить (w) — может сработать, если ошибка была временной
* Или проверить (v), чтобы увидеть, что было фактически записано
* Рассмотрите замену диска, если ошибки повторяются
Примечание: Некоторые диски фундаментально повреждены и не могут быть надёжно затёрты. dwipe защитит себя и вашу систему, но не может исправить аппаратные неисправности.
---
#### Рекомендации по затиранию SATA через USB
* Требование 1: Поддержка SAT (SCSI-ATA Translation)
* USB-мост должен уметь «пропускать» команды ATA.
* Тест: Если приложение видит раздел «Security» в деталях диска, мост поддерживает SAT.
* Требование 2: Стабильное питание
* Затирание прошивки (особенно на 3,5" HDD) потребляет значительную пиковую мощность.
* Риск: Если используется USB-кабель «только питание от шины», напряжение может просесть во время затирания, что приведёт к сбросу моста и «замораживанию» диска в заблокированном состоянии.
* Рекомендация: Всегда используйте USB-док с внешним питанием для 3,5" дисков.
* Требование 3: Надёжность тайм-аута команд
* Мост не должен иметь агрессивного «сторожевого таймера».
* Риск: Некоторые мосты отключаются, если не видят «данные» в течение 60 секунд. Во время затирания прошивки диск занят внутренними операциями и не отправляет данные.
* Рекомендация: Используйте качественные чипсеты, такие как ASMedia (1153E) или JMicron (JMS578).
##### Разблокировка заблокированного устройства```
sudo hdparm --user-master u --security-unlock NULL /dev/sdX
sudo hdparm --user-master u --security-disable NULL /dev/sdX
Вопросы и запросы на слияние приветствуются на github.com/joedefen/dwipe
Лицензия MIT - подробности в файле LICENSE.
rdwipe заблокировал его, пароль — NULL; в противном случае используйте пароль, которым он был заблокирован.DEL для извлечения, физически замените диски, затем r для повторного сканирования (при необходимости).| Состояние | Значение |
|---|
| - | Устройство готово к затиранию |
| ^ | Устройство готово к затиранию И было добавлено после запуска dwipe (горячая замена) |
| Mnt | Раздел смонтирован или диск имеет смонтированные разделы — не может быть затёрт |
| N% | Затирание в процессе (показывает процент завершения, 0-100%) |
| vN% | Проверка в процессе (показывает процент завершения, v0-v100%) |
| STOP | Затирание или проверка останавливается |
| s | Затирание остановлено — устройство частично затёрто (можно перезапустить или проверить) |
| W | Затирание успешно завершено (можно снова затереть или проверить) |
| Blk | Диск вручную заблокирован — разделы скрыты и не могут быть затёрты |
| Unbl | Диск только что разблокирован (переходное состояние) |
| Клавиша | Действие | Описание |
|---|
| w | затереть | Затереть выбранное устройство (требует подтверждения) |
| v | проверить | Проверить затёртое устройство или обнаружить шаблон на немаркированном диске (контекстно-зависимо) |
| s | остановить | Остановить выбранное затирание в процессе (контекстно-зависимо) |
| S | Остановить все | Остановить все затирания в процессе |
| DEL | удалить | Удалить диск из системы (только целые диски, контекстно-зависимо) |
| b | блокировать/разблокировать | Заблокировать или разблокировать диск для предотвращения случайного затирания |
| / | фильтр | Фильтровать устройства по регулярному выражению (показывает подходящие устройства + все активные затирания) |
| r | пересканировать | Пересканировать все устройства и сбросить обнаружение аппаратных возможностей |
| h | история | Показать журнал истории затираний |
| t | темы | Открыть экран предварительного просмотра темы для просмотра и изменения цветовых тем |
| q или x | выход | Выйти из приложения (сначала останавливает все затирания) |
| ? | справка | Показать экран справки со всеми действиями и клавишами навигации |
| ESC | очистить фильтр | Очистить фильтр и перейти в начало списка |
| ESC | назад | Вернуться на предыдущий экран, если находитесь на вложенном экране |
| a | формат времени | Циклическое переключение формата отображения времени в истории затираний (назад+время, назад, время) |
| Окружение | Метод | Примечания |
|---|
| SSH-сессия | OSC 52 | Управляющая последовательность терминала; требует поддержки терминалом (iTerm2, kitty, alacritty, Windows Terminal, tmux с set-clipboard on) |
| Wayland | wl-copy | Требуется пакет wl-clipboard |
| X11 | xclip/xsel | Требуется пакет xclip или xsel |
| Запасной | Терминал | Возврат в оболочку, вывод текста для ручного копирования |
| Ранг | Сокр. | Официальное название | Примечания |
|---|
| 1 | Crypto | Sanitize Cryptographic Erase | Самый быстрый; стирает ключи шифрования; мгновенная инвалидация данных |
| 2 | Block | Sanitize Block Erase | Быстрый; сбрасывает все блоки в освобождённое состояние |
| 3 | FCrypto | Format with Crypto Erase | Быстрый; переформатирует пространство имён с удалением ключей |
| 4 | FErase | Format with User Data Erase | Быстрый; переформатирует с простым стиранием данных; менее тщательное, чем крипто |
| 5 | Ovwr | Sanitize Overwrite | Минуты; записывает шаблон во все блоки; наиболее тщательный, но редко необходим |
| 6 | Rand | Software Random Write | Запасной; записывает случайные данные программно; часы для больших дисков |
| 7 | Zero | Software Zero Write | Запасной; записывает нули программно; проверяемый, но медленнее |
| Ранг | Сокр. | Официальное название | Примечания |
|---|
| 1 | SCrypto | Sanitize Cryptographic Erase | Самый быстрый; стирает ключи шифрования; требует функцию SANITIZE |
| 2 | Enhanced | ATA Security Erase Enhanced | Быстрый; вендор-специфичное глубокое стирание с уничтожением криптоключей |
| 3 | SBlock | Sanitize Block Erase | Быстрый; сбрасывает блоки в заводское состояние; требует функцию SANITIZE |
| 4 | Erase | ATA Security Erase Normal | Минуты; записывает нули во все секторы; широко поддерживается |
| 5 | SOverwrite | Sanitize Overwrite | Минуты; перезаписывает шаблоном; требует функцию SANITIZE |
| 6 | Rand | Software Random Write | Запасной; не может достичь блоков с выравниванием износа или перераспределённых |
| 7 | Zero | Software Zero Write | Запасной; не может достичь блоков с выравниванием износа или перераспределённых |
| Ранг | Сокр. | Официальное название | Примечания |
|---|
| 1 | Rand | Software Random Write | Предпочтительный; прерываемый, возобновляемый, показывает прогресс |
| 2 | Zero | Software Zero Write | Предпочтительный; прерываемый, возобновляемый, быстрая проверка |
| 3 | Enhanced | ATA Security Erase Enhanced | Медленный (часы); не прерывается; нет прогресса; тот же результат, что и программный |
| 4 | Erase | ATA Security Erase Normal | Медленный (часы); не прерывается; нет прогресса; тот же результат, что и программный |
| Остановлено на | Текущие проходы | Что происходит |
|---|
| 50% | 1 проход | Возобновление: запись оставшихся 50% |
| 150% (1.5 из 4 проходов) | 1 проход | Уже завершено (150% > 100%) |
| 150% (1.5 из 4 проходов) | 4 прохода | Возобновление: запись ещё 2.5 проходов (150% → 400%) |
| 100% (1 проход завершён) | 2 прохода | Возобновление: запись прохода 2 (100% → 200%) |