2

Я просто использовал команду DD, чтобы скопировать содержимое одного раздела в другой раздел на другом диске, например так:

dd if=/dev/sda2 of=/dev/sdb2 bs=4096 conv=noerror

Размер раздела sda2 составлял 66 ГБ, а sdb2 - 250 ГБ. Я прочитал, что при этом дополнительное пространство на диске, на который я копирую, будет потрачено впустую, это правда?

Однако пока я не беспокоился о том, чтобы потерять дополнительное пространство, я просто побежал:

sudo kill -USR1 (PID)

чтобы просмотреть текущее состояние DD и он записал более 66 ГБ данных, будет ли он продолжать запись данных, пока не достигнет 250 ГБ? Если это так, есть ли способ остановить процесс, не повредив его, так как ожидание записи пустого пространства кажется пустой тратой времени.

1 ответ1

4

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

Обратите внимание, что вы должны использовать sync с noerror чтобы обеспечить копирование копируемых данных туда, где они ожидаются в случае обнаружения ошибок в источнике. Лучше всего сначала проверить исходный носитель, чтобы убедиться, что он не содержит ошибок перед копированием.

Так что да, дополнительное пространство в разделе эффективно расходуется. Речь идет не только о размере раздела, но и о размере копируемой файловой системы, которая в вашем случае составляет 66 ГБ. Однако, в зависимости от используемой файловой системы, вы часто можете расширить файловую систему до размера раздела. Для файловых систем ext вы можете использовать

resize2fs /dev/sdb2

Обязательно прочитайте эту команду перед ее использованием и сохраняйте исходный код до тех пор, пока не убедитесь, что все работает с новым диском.

Использование rsync -ax вместо dd между разделами разного размера часто является лучшим вариантом - это также позволяет вам выбрать другой тип файловой системы для места назначения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .