Использование команды dd не удается после первого монтирования

387
nikozavar

Я использую ddкоманду для копирования диска /dev/sdaна /dev/sdb. Я делаю следующее: я бегу

  1. dd if=/dev/sda of=/dev/sdb
  2. затем смонтировать /dev/sdb1(обратите внимание, что /dev/sdb1не загружается при загрузке), чтобы убедиться, что все есть.

Это отлично работает.

Затем я делаю некоторые изменения /dev/sdaи пытаюсь снова скопировать диск. Так я umount /dev/sdbи выдаю одну и ту же команду ( dd if=/dev/sda of=/dev/sdb).

После /dev/sdb1повторного монтирования промежуточные изменения не отражаются, /dev/sdbи состояние /dev/sdbстановится таким же, как и после первого монтирования /dev/sdb1.

Я использую ext3. Может быть, метаданные повреждены или мне просто нужно перезагрузить систему? Или, может быть, это как-то связано с журналом. Не могли бы вы сказать мне, что является причиной проблемы и как я могу ее исправить?

4
Вы используете `sdb` и` sdb1` взаимозаменяемо. Пожалуйста, проверьте все вхождения этих, чтобы убедиться, что они правильные. Также обратите внимание, что вам нужно размонтировать `/ dev / sda [1]` (что бы вы ни монтировали на самом деле), чтобы убедиться, что все обновления файловой системы действительно попали на диск. Копирование блочного устройства, пока оно еще подключено, ожидает проблем ... wurtel 8 лет назад 1
Да, я знаю, что монтировать / dev / sda1 во время выполнения dd опасно. Но, между прочим, есть ли другой способ убедиться, что все обновления файловой системы действительно попали на диск, кроме как размонтировать его или запустить синхронизацию. nikozavar 8 лет назад 0

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

1
Fred Thomsen

Judging by your question /dev/sda1 is a mounted disk and using dd in this manner will most likely get you a corrupted copy as dd doesn't properly handle writes in progress.

More information is here in an answer to a question on serverfault.

Похожие вопросы