Используйте DD для рекурсивной записи определенного файла
У меня есть жесткий диск, который я хочу перезаписать, но не с нулевыми байтами, а с сообщением.
48 69 64 64 65 6e 20 = "Скрытый"
Вот моя команда до сих пор:
echo "Hidden " > /myfile
dd if=/myfile of=/dev/sdb bs=1M
Примечание: я также попробовал ряд параметров, таких как количество и убедить, но безрезультатно
Теперь это хорошо. Когда я бегу:
dd if=/dev/sdb | hexdump -C | less
Я вижу первые несколько байтов, записанных поверх, однако остальное не изменяется. Я хотел бы рекурсивно написать "Скрытый" на диск.
3 ответа
У меня нет запасного диска, чтобы попробовать это, но вы можете использовать yes
Команда непрерывно толкать вашу строку в трубу:
yes "Hidden" | dd of=/dev/sdb
Я предполагаю, что после того, как dd записал весь диск, он закроет канал, и эта команда завершится.
Выше будет новая строка-разделитель "скрытой" строки. Если вы хотите разделить пробелами, как в вопросе вы можете сделать:
yes "Hidden" | paste -d' ' -s - | dd of=/dev/sdb
Или, если вы хотите, чтобы он был разделен нулями:
yes "Hidden" | tr '\n' '\0' | dd of=/dev/sdb
Если вы не укажете if
параметр, вход считывается из стандартного ввода. Это позволяет вам сделать что-то вроде этого:
dd of=/dev/sdb < for((i=0;i<100000;i++)); do echo 'Hidden '; done;
Значение 100000
очевидно должно быть как минимум diskSizeInBytes / strlen('Hidden ')
,
Учитывая последствия, я не проверял это для вас, но это должно сработать;)