dd loop input File to output device?

На веб-сайте OpenSSH есть страница, посвященная устаревшим проблемам как этот. Он предлагает следующий подход, на клиенте :

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 123.123.123.123

или более постоянно, добавляя

Host 123.123.123.123
    KexAlgorithms +diffie-hellman-group1-sha1

в ~ / .ssh / config .

Это активирует старые алгоритмы на клиенте , позволяя ему подключаться к серверу.

1
17.04.2017, 20:06
2 ответа

/ dev / zero совсем не медленный, возможно, все, что вам нужно, это dd bs = 1M . Должен делать несколько гигабайт в секунду, поэтому жесткий диск / твердотельный накопитель является узким местом.

# dd bs=1M status=progress if=/dev/zero of=/dev/null
234309550080 bytes (234 GB, 218 GiB) copied, 11 s, 21.3 GB/s

Или просто используйте shred .

# shred -v -n 1 /dev/eraseme

Это должно происходить с (псевдо) случайными данными на полной скорости жесткого диска. Если он должен быть равен нулю, тогда -n 0 -z , но с shred он не будет быстрее случайных данных.

1
27.01.2020, 23:34

Проблема здесь для вас в том, что размер блока по умолчанию для dd составляет 512 байт, так что это два системных вызова и два запроса на ввод-вывод на КБ. У вас их два миллиона на гигабайт; неудивительно, что он медленный.

  • Не используйте dd. Используйте cat (это намного быстрее во многих ситуациях и редко, если вообще когда-либо, медленнее):

     cat /dev/zero >/dev/sdX
     
  • Если вам действительно необходимо использовать dd, увеличьте размер блока до разумного:

     dd if=/dev/zero bs=32M of=/dev/sdX
     
  • Если вы пытаетесь стереть диск с псевдослучайными данными, рассмотрите вариант DBAN с одним проходом. (Не заморачивайтесь с многопроходностью; либо достаточно одного прохода, либо вам понадобится молоток.)

1
27.01.2020, 23:34

Теги

Похожие вопросы