Назад | Перейти на главную страницу

dd выходной файл больше, чем входной, при выполнении с conv = noerror, sync

Я пытаюсь создать резервную копию LVM на одном из моих серверов с помощью следующей команды:

dd bs = 4M conv = noerror, синхронизация if = / dev / vg_volgroup / LvmName | ssh myuer @ myip "dd of = / home / myuser / LvmName bs = 4M conv = noerror, sync"

На диске, с которого я читаю этот LVM, возвращается поврежденный сектор:

dd: чтение `/ dev / vg_volgroup / Lvmname ': ошибка ввода / вывода
224 + 1 записей в
225 + 0 записей
943718400 байт (944 МБ) скопировано, 1313,12 с, 719 кБ / с

Из-за этого плохого сектора я использую conv = noerror, sync

Исходный LVM составляет 100 ГБ, а выходной LVM - 130 ГБ и продолжает расти. Кто-нибудь знает, почему это так или что я делаю не так?
Насколько мне известно, noerror заполняет дефектные блоки нулями, но мне неясно, как это могло бы увеличить LVM.
Есть ли у кого-нибудь советы или идеи?

Обновить:

Использование kill -USR1 pid
Где pid - это pid процесса dd, отправляющего данные, возвращает следующее:

601 + 1 записей в
601 + 0 записей
Скопировано 2520776704 байта (2,5 ГБ), 4457,14 с, 566 кБ / с

Однако размер выходного файла составляет 154 ГБ.

Вы должны проверить выходной файл, чтобы узнать, что там находится. Знание того, что находится в файле, помогает понять, откуда оно взялось. В качестве отправной точки вы можете попробовать head -c10k /home/myuser/LvmName | hexdump -C и tail -c10k /home/myuser/LvmName | hexdump -C

Я предполагаю, что он будет состоять в основном из символов NUL или из каких-то текстовых сообщений, которые не были предназначены для перенаправления в файл.