ОРИГИНАЛЬНЫЙ ВОПРОС:
Если у меня есть 2 одинаковых жестких диска со следующими характеристиками:
- SATA 6,0 Гбит / с
- 5400 об / мин
- 3TB
Сколько времени должна занять полная дд копия?
Пока он работает 5 часов и все еще идет ...
Я использую Linux Ubuntu 12.04 64bit, и я использую команду:
dd if=/dev/sdb of=/dev/sdc
ОБНОВЛЕНИЕ: 1
Теперь я вижу прогресс, и прошло более 6 часов для копирования 430 ГБ. Жесткий диск 3 ТБ ...
Нет ли более быстрого способа сделать это?
ОБНОВЛЕНИЕ: 2
Это выглядит намного лучше, чем раньше (спасибо Groxxda за предложения):
sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K
ETA составляет около 9 часов для 3 ТБ, тогда как до того, как он достиг 430 ГБ через 6 часов, поэтому я предполагаю, что с помощью предыдущей команды потребовалось бы около 36 часов.
SIGUSR1
, а BSD dd используетSIGINFO
bs=
аргументdd
). Также рассмотрите возможность подключения каждого жесткого диска к собственному порту sata.Ответы:
dd
был полезен в старые времена, когда люди использовали ленты (когда размер блоков имел значение) и когда более простые инструменты, такие как,cat
не могли быть бинарно-безопасными.В настоящее время
dd if=/dev/sdb of=/dev/sdc
это просто сложный, подверженный ошибкам, медленный способ написанияcat /dev/sdb >/dev/sdc
. Несмотря на то, что он по-dd
прежнему полезен для некоторых относительно редких задач , он гораздо менее полезен, чем количество учебных пособий, в которых упоминается, что это позволит вам поверить. В этом нет магииdd
, магия все в/dev/sdb
.Ваша новая команда
sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K
снова излишне медленная и сложная. Данные считываются 128 КБ за один раз (что лучше, чемdd
значение по умолчанию 512 В, но не так хорошо, как даже большие значения). Затем он проходит через две трубы, прежде чем быть написанным.Используйте более простую и быструю
cat
команду. (В некоторых тестах, которые я сделал пару лет назад под Linux, онcat
работал быстрее, чемcp
при копировании между различными дисками, иcp
быстрее, чемdd
при любом размере блока;dd
при копировании на тот же диск большой размер блока был немного быстрее).Если вы хотите запустить эту команду
sudo
, вам нужно, чтобы перенаправление происходило от имени пользователя root:Если вам нужен отчет о прогрессе, так как вы используете Linux, вы можете легко получить его, отметив PID
cat
процесса (скажем, 1234) и посмотрев на позицию его дескриптора входного (или выходного) файла.Если вам нужен отчет о проделанной работе, а ваш вариант Unix не предоставляет простой способ получить доступ к позициям дескриптора файла, вы можете установить и использовать
pv
вместоcat
.источник
cat
быстрееdd
? Может ли быть так, чтоcat
использует кеш?sudo sh -c 'pv /dev/sdb >/dev/sdc'
вместоsudo sh -c 'cat /dev/sdb >/dev/sdc'
?pv
там , где вы будете использоватьcat
.cat /dev/sdc1 >/dev/sdb1 && cat /dev/sdd1 >/dev/sde1
. Объединение двух частей не имеет смысла. Если вы хотите изменить структуру тома btrfs, изменить его с двух подобъемов на один, вам нужно использовать инструменты btrfs, чтобы изменить структуру, или, как вы делали, создать новую файловую систему с желаемой структурой и скопировать файлы. ,dd
по умолчанию использует очень маленький размер блока (512 байт). Это приводит к большим накладным расходам (одинread()
иwrite()
syscall на каждые 512 байт).Это происходит намного быстрее, когда вы используете больший размер блока. Оптимальные скорости начинаются с
bs=64k
или около того. Большинство людей используют еще больше,bs=1M
так что оно становится читаемым человеком (когдаdd
говорят, что оно скопировано1234 blocks
, вы знаете, что1234 MiB
без какой-либо математики). Использование блоков большего размера вряд ли приведет к повышению скорости, только к увеличению потребления памяти.Итак, команда должна быть:
Если у вас уже есть медленный
dd
запуск, вы можете прервать его и продолжить с более быстрымdd
экземпляром. Для этого важно знать, насколько далеко продвинулась копия.dd
обычно печатает прогресс, когда вы отменяете его, или вы можете отправить емуUSR1
сигнал во время его работы, чтобы заставить его печатать свой прогресс.Например, если он скопирован больше
1234MiB
, вы можете возобновить с позиции,1234MiB
используя:Если оно скопировано меньше чем
1234MiB
, ваша копия будет неполной. Если он скопировал больше, чем1234MiB
он, он будет повторно скопировать некоторые уже скопированные части, что обычно не приносит никакого вреда. Поэтому, если вы сомневаетесь, вам следует выбрать значение, немного меньшее, чем, по вашему мнению, уже было скопировано.источник
Получение статистики о текущем процессе дд
Вы можете использовать
kill
команду с соответствующим сигналом дляdd
вывода статистики на стандартную ошибку.Со страницы руководства GNU dd:
Не забудьте сначала проверить правильность сигнала на своей странице руководства, поскольку она может отличаться в разных реализациях dd: (BSD dd использует SIGINFO).
Ускорение процесса
bs=
аргумент. Посмотрите эту тему на superuser и попробуйте некоторые значения для себя.dd
вызовы для чтения и записи и используйте канал для их соединения (dd if=/dev/sda bs=1M | dd of=/dev/sdb bs=1M
).Если вы сделаете это и зададите размер блока, убедитесь, что вы используете один и тот же размер блока при каждом вызове.
direct
аргумент.источник
Вы пробовали gparted? Вы можете буквально скопировать и вставить раздел с одного диска на другой и соответственно изменить его размер по мере необходимости. Вы получаете скорость передачи и оставшееся время. Он использует 'e2image' внизу для разделов Linux.
источник
Существует коммерческое программное обеспечение под названием HDClone . Он лицензируется как бесплатное и коммерческое. Любая версия может создавать загрузочный Pendrive или DVD, а также копировать диски. Подключите исходный и целевой HD и следуйте инструкциям на основе графического интерфейса.
Бесплатный будет передавать со скоростью около 80 МБ / с, в то время как платные версии могут идти намного быстрее. Для файловых систем NTFS и FAT платные версии могут быть сконфигурированы для клонирования только занятых битов HD, что резко увеличивает скорость каждого клона.
источник