Изображение DD меньше скопированного диска

410
Scu11y

Я сделал резервную копию OS диска моего сервера через живой USB. Используя команду:

dd if=/dev/sda bs=512 count=(30 gb worth of sectors) conv=noerror,sync status=progress | gzip -c > /path/to/removable/media 

Команда выполнена без ошибок, и изображение было создано. Размер файла img.gz составляет 16 ГБ.

(Операционная система сервера занимает ~ 15 ГБ памяти), но когда я открываю .gz в winrar, он сообщает, что его содержимое составляет всего 2,21 ГБ, а архив - 16 ГБ.

Означает ли это, что в процессе резервного копирования произошла ошибка или архив обычно больше, чем образ в нем?

Спасибо

1
Это ошибка в WinRar. Ipor Sircer 6 лет назад 0
Так было бы безопасно для меня предположить, что я могу использовать эту резервную копию в случае сбоя диска? Scu11y 6 лет назад 0
Распакуйте его и проверьте с помощью rsync. Ipor Sircer 6 лет назад 0
Единственная надежная резервная копия, которую можно использовать, - это та, с которой вы успешно протестировали восстановление. Итак, попробуйте это. Восстановите где-нибудь (виртуальную машину?) И посмотрите, работает ли она. Примечание: я бы не стал указывать `count`, если бы мне нужен был полный диск. Насколько большой диск вашего сервера? Не используется пространство, но в натуральную величину. Bob 6 лет назад 0
@Bob Диск емкостью 500 ГБ, и я передал свой последний запасной жесткий диск другу, поэтому мне некуда было выложить файл, который мог бы вместить изображение размером 500 ГБ. Поскольку ОС занимает всего ~ 15 ГБ пространства, я указал количество, которое будет равно 30 ГБ секторов, чтобы быть в безопасности. Scu11y 6 лет назад 0
@IporSircer хорошо, я распаковываю изображение с помощью winrar. Я не знаком с rsync, но у меня есть некоторые общие настройки samba на сервере. Что я должен сделать, чтобы проверить это с rsync? Scu11y 6 лет назад 0
Да, файловые системы работают не так: нет никакой гарантии, что ваши данные существуют в первых 30 ГБ диска. Я напишу ответ с альтернативами, когда немного вернусь к ПК. Bob 6 лет назад 0
@Bob Спасибо за вашу помощь. В настоящее время я конвертирую необработанный файл изображения в .vdi. Если это не сработает, я куплю диск, который сможет вместить дд дамп в полном размере. Я опубликую свои результаты с VirtualBox. Я полностью забыл о возможности фрагментации диска. Думаю, мне не следует заниматься этим, когда я устал. Scu11y 6 лет назад 0

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

3
Bob

Резервные копии

Во-первых, несколько советов по резервному копированию в целом: вы не можете полагаться на резервную копию, пока не проверите и не проверите, что ваш процесс восстановления работает. Есть несколько методов для тестирования резервных копий:

  • Полное восстановление физического оборудования, если у вас есть удобное оборудование и оно является критически важным резервным копированием.
  • Полное восстановление виртуальной машины, если вам не хватает запасного оборудования.
  • Извлечение данных и проверка правильности и полноты, если вам не нужно восстанавливать загрузочную ОС.

Как правило, я не считаю проверку несжатого размера WinZip особенно полезной. Однако полученные результаты могут указывать на то, что вы указали неверные данные count, что приводит нас к ...


Проблемы с вашей ddкомандой

count=(30 gb worth of sectors) 

Моя первая мысль, увидев это, заключается в том, что вы никогда не должны указывать countпри резервном копировании диска. Если вы хотите создать резервную копию определенного раздела, вы должны использовать блочное устройство раздела ( /dev/sdXNгде Nэто число). В противном случае вы должны просто ddвзять весь диск; указавcount риск (фактически, почти гарантию), что вы будете отбрасывать данные и, возможно, повредить файловую систему.

В комментарии вы предоставили обоснование:

Накопитель емкостью 500 ГБ, и я передал свой последний запасной жесткий диск другу, поэтому у меня не было места, куда можно записать файл, который может вместить изображение размером 500 ГБ. Поскольку ОС занимает всего ~ 15 ГБ пространства, я указал количество, которое будет равно 30 ГБ секторов, чтобы быть в безопасности.

К сожалению, файловые системы работают не так. Большинство файловых систем не гарантируют, что все данные будут храниться в начале диска.


альтернативы

Есть несколько других способов сделать то, что вы хотите.

Архивирование только файлов / данных

Если вам нужна только резервная копия данных, и вам не нужно слишком много возможности восстанавливать загрузочную ОС, вы можете создавать резервные копии файлов только с помощью tarкоманды. Это означает, что у вас все еще будут ваши данные, но вам придется переустанавливать ОС с нуля и восстанавливать данные вручную (и любые установленные приложения).

  1. Скопируйте файлы в архив с помощью tarканала gzip.

Сжатые резервные копии с нулевым свободным пространством

Это более или менее то, что вы уже пытались. У вас есть правильная идея gzip: надеюсь, это сожмет любое неиспользуемое пространство ( очень сжимаемое) до нуля. Вам просто нужно отказаться countот вашей команды.

К сожалению, это не обязательно сработает, поскольку удаленные файлы могут все еще существовать на диске и не будут отображаться как пустые gzip. Поэтому сначала вы должны очистить неиспользуемое пространство . Ваш процесс резервного копирования становится:

  1. Очистить неиспользуемое пространство с zerofreeили аналогичным
  2. Скопируйте диск в сжатый образ с помощью dd(без count!)gzip

Используйте инструмент, который создает резервные копии только используемых блоков, например partclone

Существуют, например partclone, некоторые инструменты, которые достаточно умны, чтобы распознавать и резервировать только использованные блоки. В вики Arch есть несколько примеров использования с gzip, а в руководстве есть несколько примеров внизу. Это эффективно заменяет ddв вашем конвейере.

Вам нужно будет использовать тот же инструмент снова при восстановлении данных.

Спасибо. Я полностью пропустил этот аспект файловых систем. Я подтвердил, что в образе есть ошибка: когда он загружается в Virtualbox, я получаю приглашение grub rescue, и попытка открыть каталог / boot приводит к ошибке «Чтение / запись вне HD0». Я ценю ваш хорошо написанный ответ на мой вопрос, и я сделаю резервную копию завтра после ночи хорошего сна. Scu11y 6 лет назад 0

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