Команда dd занимает слишком много времени? [дубликат]

На этот вопрос уже есть ответ здесь:

Я настроил dd на клонируйте меньший системный жесткий диск на 40,00 ГБ (/ dev / sda) на новый, больший 111,00 ГБ, подключенный через USB-ридер (dev / sdb), и это работает уже два часа. Измеритель активности на новом жестком диске показывает, что он что-то делает. Но CPU всего около 20%. Когда это дело будет завершено? Следует ли мне перезапустить процесс?

24
задан 26 March 2015 в 18:24

5 ответов

У меня была похожая проблема. Причина была другой в моем случае.

Целевым диском является внешний жесткий диск.

Если диск был смонтирован автоматически с помощью udisks и udisks-glue, то скорость передачи с компакт-диска на жесткий диск была около 40 кБ / с.

Когда я размонтировал жесткий диск и установил его напрямую через mount, я получил скорость передачи около 2,4 МБ / с.

0
ответ дан 26 March 2015 в 18:24

В прошлом я использовал pv, а также (ps и kill), как предлагалось в других ответах, но в последнее время я просто использовал вместо этого dc3dd, который дает те же результаты, предоставляя отчет о ходе работы по всему процесс.

Вы можете проверить, установлен ли он уже с: which dc3dd

Если не можете установить его с sudo apt-get install dc3dd

Командные переключатели аналогичны dd (для клонирования, хотя вытирать немного проще).

В вашем случае я бы использовал команду dc3dd if=/dev/sda of=/dev/sdb

Редактировать:

Последние версии dd из пакета coreutils Версия 8.24+ включена в Ubuntu 16.04 и более поздние версии, включая параметр состояния. Вы можете добиться того же результата с помощью dd, добавив переключатель status=progress в командную строку dd.

Пример: dd if=/dev/zero of=/dev/null count=1000 status=progress

0
ответ дан 26 March 2015 в 18:24

Вы можете увидеть, как далеко он продвинулся, послав ему сигнал SIGUSR1, чтобы увидеть, сколько данных он скопировал и скорость передачи:

kill -SIGUSR1 $(pidof dd)

Для копирования вы ограничены I / Скорость устройства, поэтому процессор не должен быть полностью загружен, так что не беспокойтесь об этом.

0
ответ дан 26 March 2015 в 18:24

Вместо этого вы можете использовать ddrescue:

sudo ddrescue -v /dev/sda /dev/sdb

v означает многословно.

0
ответ дан 26 March 2015 в 18:24

В будущем вы должны использовать pv, чтобы получить индикатор выполнения.

sudo apt-get install pv

С установленным pv предположим, что вы хотите клонировать диск 20 ГБ, /dev/foo, на другой диск (20 ГБ или больше!), /dev/baz:

[ 1114] sudo dd if=/dev/foo bs=4M | pv -s 20G | sudo dd of=/dev/baz bs=4M

Важные биты, на которые следует обратить внимание: аргумент bs=4M устанавливает размер блока для операций dd равным 4 МБ, что резко повышает скорость всего процесса. А аргумент -s 20G сообщает pv, насколько большой должна быть эта операция, поэтому она может дать вам ETA, а также текущую скорость.

Я люблю pv так сильно, что, вероятно, это должно быть незаконно.

0
ответ дан 26 March 2015 в 18:24

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

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