Назад | Перейти на главную страницу

Команда DD для уничтожения данных

Следует ли мне удалить важные файлы с диска, а затем загрузиться на рабочий диск и запустить dd команда или можно запустить dd на /dev/sda без удаления?

Я спрашиваю об этом, потому что уже начал бегать dd if=/dev/urandom of=/dev/sda bs=1M. Просто хотел быть в безопасности, в любом случае я знаю, что это то же самое, но интересно, если dd наносит больший ущерб файлам, которые уже удалены или еще не удалены. Я могу перезапустить dd command но просто нужно подтверждение.

dd это низкоуровневая утилита для чтения или записи фрагментов данных на диск. Он не знает (и не заботится о) файловых системах, структурах каталогов, разрешениях или любых других деталях файла высокого уровня. По сути, это лопатка для размазывания или стирания данных с любой области диска.

В rm, cp, mv или другие высокоуровневые файловые утилиты прилагают большие усилия, чтобы убедиться, что файлы, с которыми вы работаете, имеют полностью обновленные выделенные области и указатели файловой системы на диске, где бы они ни находились. Когда вы удаляете файл, вполне возможно, что область данных на диске просто помечается как «доступная для использования» и фактически не очищается от каких-либо предыдущих данных. Если у вас есть файл с номерами социального страхования, даже после того, как вы rm область данных может быть доступна для чтения такими утилитами, как dd.

Так что, в некотором смысле, ответ на ваш вопрос - «да». dd "наносит больший ущерб" в том смысле, что все, что он пишет, в значительной степени уходит навсегда. Может быть специализированное судебно-медицинское оборудование это могло бы восстановить его, но я могу представить, что цена на такие услуги делает его недоступным для большинства людей.

ОБНОВЛЕНИЕ: как подтвердить dd перезаписал диск. УБЕДИТЕСЬ, что вы используете правильное устройство. Пример записи ниже делает ваши данные безвозвратными:

Прочтите 1 блок данных из загрузочного сектора (512 байт) целевого устройства:

# dd if=/dev/sdX of=/tmp/dd_example/chunk.bin bs=512 count=1
1+0 records in
1+0 records out
512 bytes copied, 0.00162606 s, 315 kB/s

Использовать od команда для проверки данных, которые были прочитаны (для краткости усечена).

# od -t x1 /tmp/dd_example/chunk.bin 
0000000 eb 63 90 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0
0000020 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00
...

Если хотите, используйте strings команда для просмотра любого читаемого ascii в чанке. (ПРИМЕЧАНИЕ: значения, содержащие "непечатаемый" ascii, например 00., не будут отображаться, поэтому вывод strings не обязательно будет коррелировать с шестнадцатеричным выводом, показанным выше). Поскольку это загрузочный сектор GRUB, подпись загрузки легко увидеть. В других операционных системах, вероятно, будет что-то подобное.

# strings /tmp/dd_example/chunk.bin 
ZRr=
`|f 
\|f1
GRUB 
Geom
Hard Disk
Read
 Error

Теперь сотрите загрузочный сектор, записав на устройство 512 нулей.

# dd if=/dev/zero of=/dev/sdX bs=512 count=1
1+0 records in
1+0 records out

Теперь прочтите кусок загрузочного сектора обратно в

# dd if=/dev/sdX of=/tmp/dd_example/chunk.bin bs=512 count=1
1+0 records in
1+0 records out
512 bytes copied, 0.00144648 s, 354 kB/s

od показывает все, что в чанке сейчас 00s

# od -t x1 /tmp/dd_example/chunk.bin 
0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0001000

Строки подтверждают, что на диске больше нет печатаемых ascii

# strings /tmp/dd_example/chunk.bin 
#