Я пытаюсь создать резервную копию 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 или из каких-то текстовых сообщений, которые не были предназначены для перенаправления в файл.