Следует ли мне удалить важные файлы с диска, а затем загрузиться на рабочий диск и запустить 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
показывает все, что в чанке сейчас 00
s
# 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
#