При выполнении действий по удалению данных, таких как удаление файлов и папок, форматирование разделов или разбиение дисков на разделы, фактические данные не удаляются. Скорее, удаляются только указатели на данные. Например, при удалении раздела просто удаляется запись о разделе в таблице разделов, а фактические данные раздела остаются нетронутыми. Это может создать проблему, когда необходимо безопасно удалить данные, например при утилизации диска с конфиденциальными файлами или при продаже жесткого диска.
Чтобы безопасно стереть все файлы и данные на диске, можно перезаписать существующие данные пустыми или случайными. В Linux этого можно добиться с помощью команды dd, указав в качестве входных данных нули или случайные символы.
Шаги по полному очищению диска и раздела в Linux
Откройте терминал.
Отобразите список доступных дисков и разделов в вашей системе.
1 | lsblk |
Пример вывода
1 2 3 4 5 6 7 8 9 | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT ... sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 513M 0 part /boot/efi └─sda3 8:3 0 19.5G 0 part / sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 20G 0 part sr0 11:0 1 1024M 0 rom |
Убедитесь, что диск или раздел, который вы хотите безопасно стереть, не смонтирован.
1 | sudo umount /dev/sdb1 |
Запустите live cd, например, из программы установки Ubuntu, если диск не может быть размонтирован, например, корневая файловая система.
Используйте команду dd, чтобы перезаписать диск или раздел нулями или случайными данными.
1 | sudo dd if=/dev/zero of=/dev/sdb status=progress |
Это займет некоторое время, поскольку dd нужно записать каждый бит данных на диске. Время зависит от размера диска и его скорости.
Замените /dev/zero на /dev/random или /dev/urandom, чтобы заполнить диск случайными символами.
Рекомендуется использовать /dev/random или /dev/urandom и повторять этот шаг несколько раз (multi-pass) для SSD-устройств, поскольку некоторые встроенные функции контроллера SSD могут оставить часть данных нетронутыми при обычном методе обнуления диска.
Если вы удалили весь диск, а не только раздел, обновите таблицу разделов.
1 | partprobe |
Еще раз перечислите диски и разделы, чтобы подтвердить удаление.
1 | lsblk |
Используйте административную учетную запись, чтобы убедиться, что содержимое диска было надежно стерто.
1 | timeout 1 head /dev/sdb |
Команде необходимо задать таймаут, поскольку диск теперь пуст, иначе команде придется просканировать весь диск, прежде чем она завершится.