Короткий ответ: он будет делать примерно то, что вы хотите, и тогда ничего не будет работать. Использование dd
вы работаете на уровень ниже файловой системы , которая означает , что любые ограничения , которые применяются бы там больше не актуальны (это не означает , что ядро не может помешать вам это делать - но это не делает). Некоторый контент из файловой системы уже находится в памяти, например, ядро и сама dd
программа, а другой будет в кеше. Существует вероятность того, что, если система находится в многопользовательском режиме, некоторые файлы могут быть записаны обратно во время dd
выполнения, при условии, что они действительно изменились, и если вы испытываете нехватку памяти, некоторые страницы могут также быть выгружены (они должны быть зашифрованы и, следовательно, непригодны для использования после перезагрузки).
Большинство команд, которые вы будете выполнять после этого, в том числе reboot
- не будет в кеше и не будет работать. Так что, если вы находитесь в однопользовательском режиме, это будет очень хорошо, если вы находитесь в многопользовательском режиме, это сотрет подавляющее большинство данных. В идеале вы должны загружаться с какого-либо другого носителя (возможно, даже с initrd), чтобы вы могли быть уверены, откуда поступают все записи.
Если вам нужна безопасная очистка, это не сработает, потому что все равно останутся следы исходных данных, если вы просто обнуляете их. Как правило, вы хотите до трех случайных записей, что означает копирование /dev/urandom
вместо /dev/zero
- гораздо медленнее, но безопаснее. Кто-то может предложить использовать /dev/random
устройство для «чистых» случайных данных, а не псевдослучайных, но для этой цели вероятность того, что кому-то удастся взломать начальное число PRNG и успешно замаскировать данные, практически ничтожна.
Если вы действительно параноик, вам нужно бросить устройство хранения в печь, чтобы оно размагничивалось / разряжалось.