Я использую следующую команду, где sda(500GB) - мой жесткий диск ноутбука (немонтированный) и sdc(500GB) - мой внешний usb hd
dd if=/dev/sda of=/dev/sdc bs=4096
При завершении это возвращается
122096647+0 records in
122096646+0 records out
50010782016 bytes (500GB) copied, 10975. 5 s, 45.6 MB/s
Это показывает records in ! = записи вне
fdisk -l
возвращается
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 718847 358407 7 HPFS/NTFS/exFAT
/dev/sda2 718848 977102847 488192000 7 HPFS/NTFS/exFAT
/dev/sdc1 * 2048 718847 358407 7 HPFS/NTFS/exFAT
/dev/sdc2 718848 977102847 976384000 7 HPFS/NTFS/exFAT
Это также показывает различия между размерами блоков
Другой вопрос, нормально ли, что dd занимает 3 часа для копии 500GB. (ноутбучный ssd на обычный не ssd usb hd)
Мой физический сектор в windows - 4096, а логический сектор - 512
Целевой диск должен быть на несколько кБ меньше исходного. "500 ГБ" как размер диска означает "не менее 500 000 000 000 000 байт"; нельзя рассчитывать на то, что все 500 ГБ диски будут иметь одинаковое количество байт. Поскольку все разделы имеют одинаковый размер и положение, часть в конце, которая не помещается, все равно не используется, так что это не проблема.
45 МБ/с - довольно хороший показатель для жесткого диска USB. Но вы, вероятно, получите немного лучшую скорость, если будете использовать более подходящий инструмент: dd
заставляет использовать фиксированный размер буфера, который редко бывает оптимальным, а 4096 - это очень мало. Я провел сравнительные тесты (они, конечно, могут не соответствовать вашей системе) и обнаружил, что cat
быстрее, чем dd
, хотя dd
может приблизиться к cat
по производительности, если вы правильно определите размер блока (обычно около нескольких МБ). Но поскольку использование dd
является сложным и может привести к потере данных, лучше использовать простой cat
.
cat /dev/sda >/dev/sdc
Любой "размер сектора" здесь не имеет значения, это важно для производительности доступа к данным, но не для копирования всего диска.