Полное клонирование жесткого диска с помощью dd замедляется

252
Martin

Я клонирую диск емкостью 1 ТБ на другой диск емкостью 1 ТБ с помощью команды dd в Ubuntu с использованием живого USB. Я отслеживал прогресс, запустив другой терминал:

sudo kill -USR1 $(pgrep ^dd) 

Сначала все шло хорошо, и я ожидал, что копирование будет сделано чуть более чем за день. Я вернулся через два дня и увидел, что скорость снизилась почти до полной остановки.

1055628+0 records in 1055628+0 records out 69181636608 bytes (69 GB, 64 GiB) copied, 160488 s, 431 kB/s 1055629+0 records in 1055629+0 records out 69181702144 bytes (69 GB, 64 GiB) copied, 160491 s, 431 kB/s 

Что я могу сделать?

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

sudo dd if=/dev/sdb of=/dev/sdd bs=64K conv=notrunc,noerror 

Там не было никаких ошибок или предупреждений. Я не ожидал ошибок и поэтому не использовал никакие другие команды для предварительной проверки диска, хотя в ретроспективе это было бы разумно. Учитывая это, какой сейчас будет лучший курс действий?

edit2: я побежал, dmesgи теперь я вижу, что он столкнулся с несколькими ошибками ввода-вывода и, вероятно, виновник.

Я буду отменять ddи устанавливать и использовать ddrescue. Спасибо за помощь!

0
Assuming the slowdown is not because of I/O errors (see `dmesg` or syslog), try dropping caches with `echo 3 > /proc/sys/vm/drop_caches`. My system sometimes has similar I/O bottlenecks, and that helps. I couldn't identify the reason yet; possible a concurrency pagetable bug, possibly a "can't allocate huge pages" issue. dirkt 6 лет назад 0

1 ответ на вопрос

2
grawity

Попробуйте использовать ddrescueвместо этого. Если диск имеет плохую (нечитаемую) область или две, ddrescue сначала пропустит медленные части (гарантируя, что большая часть диска будет достаточно быстро клонирована), а позже вернется к «очистке» пропущенных областей. этап. Однако, если на диске много поврежденных секторов, очистка все равно займет много времени (возможно, дней), независимо от того, что вы делаете.

ddrescue /dev/sdb /dev/sdd /tmp/sdb-sdd.log 

(Файл журнала можно просмотреть с помощью ddrescueview.)

«очистка все равно займет много времени (возможно, дней), независимо от того, что вы делаете» - правда. [Есть ли способ ускорить `ddrescue`?] (Https://superuser.com/q/413650/432690) Kamil Maciorowski 6 лет назад 1