Почему GNU уничтожается быстрее, чем dd при заполнении диска случайными данными?

Надежно стирая жесткий диск перед выводом из эксплуатации, я заметил, что dd if=/dev/urandom of=/dev/sda занимает почти целый день, тогда как shred -vf -n 1 /dev/sda займет всего пару часов с тем же компьютером и тем же приводом.

Как это возможно? Я думаю, что узким местом является ограниченный выход /dev/urandom, Использует ли shred какой-то генератор псевдослучайности, который является менее случайным и достаточным только для его единственной цели (то есть более эффективным), чем urandom?

2 ответа

Решение

Шред использует внутренний псевдослучайный генератор

По умолчанию эти команды используют внутренний псевдослучайный генератор, инициализированный небольшой энтропией, но могут быть направлены на использование внешнего источника с опцией --random-source=file. Ошибка файла, если файл не содержит достаточно байтов.

Например, файл устройства / dev / urandom может использоваться в качестве источника случайных данных. Как правило, это устройство собирает шум окружающей среды от драйверов устройств и других источников в пул энтропии и использует пул для генерации случайных битов. Если в пуле не хватает данных, устройство повторно использует внутренний пул для получения большего количества битов, используя криптографически безопасный генератор псевдослучайных чисел. Но имейте в виду, что это устройство не предназначено для генерации объемных случайных данных и является относительно медленным.

Я не убежден, что случайные данные более эффективны, чем один проход нулей (или любое другое значение байта), чтобы скрыть предыдущее содержимое.

Для безопасного вывода из эксплуатации я использую большой магнит и большой молоток.

Я думаю, что это будет вызвано скорее dd используя меньшие порции для записи данных. Пытаться dd if=... of=... bs=(1<<20) чтобы увидеть, если это работает лучше.

Другие вопросы по тегам