Я нашел, что существует по крайней мере два метода для клонирования карты с интерфейсом USB: (с /dev/sdb
как источник, в то время как /dev/sdc
цель)
Клонирование с cp
:
sudo cp /dev/sdb /dev/sdc
Клонирование с dd
:
sudo dd if=/dev/sdb of=/dev/sdc bs=4096
Есть ли между двумя командами какие-либо существенные различия и почему dd предпочтен по CP?
В этом случае различие - это dd
ограничивается к чтению 4 096-байтовых блоков за один раз, так как Вы использовали bs=4096
. Вероятный эффект - это dd
будет очень, намного медленнее, чем cp
. Попробуйте большим размером блока (10M
, 50M
?).
Конкретный размер буфера это подходит лучше всего для текущих устройств, мог бы отличаться от cp
(или cat
). Вы не можете легко управлять cp
буферизация. dd
утилита сияет когда:
count
ограничить, сколько блоков копируется.cp
, но можно попробовать dd
, при помощи seek
и skip
опции.Вы хотите передать его по каналу к стандартному входу чего-то (по общему признанию, cat
будет работать здесь также):
dd if=/dev/sda bs=10M | ssh host dd of=/dev/sdb
dd
полноценность очень хорошо обсуждена в этом сообщении Unix и Linux: dd по сравнению с кошкой — dd все еще релевантен в эти дни?