Я видел различные сообщения, в которых обсуждается использование dd для создания образа диска и хранения только «использованных данных». Прежде чем ставить проблему / вопрос, давайте предположим несколько вещей.
Предположения
Вопрос / Проблема
Используя что-то вроде cp
с --sparse=always
вариант в сочетании с dd
должен создать разреженный файл, чтобы он имел размер 1 ГБ:
cp --sparse=always <(dd if=/dev/sda bs=8M) /mnt/remote/location/disk.img
В качестве альтернативы что-то вроде ниже должно сжать все обнуленное пространство:
dd if=/dev/sda1 | gzip -c > /mnt/remote/location/disk.img.gz
Так, каково влияние разреженного файла образа на восстановление? Будут ли переданные данные иметь размер 1 ГБ или 10 ГБ, включая воспринимаемое пустое / обнуленное пространство? Очевидно, это необходимо для оценки потенциальной сетевой нагрузки и времени восстановления.
P.S. Я понимаю, что есть и другие варианты, такие как Clonezilla и что-то вроде ddrescue, которое позволит возобновить работу, но вопрос конкретно об использовании dd в контексте выше.
Спасибо.
Ты можешь использовать ddrescue с этими -S
вариант:
-S
--sparse
Use sparse writes for outfile. (The blocks of zeros are not actually allocated on disc). May save a lot of disc space in some cases. Not all systems support this. Only regular files can be sparse.
Вы можете оформить что-то похожее на ddrescue /dev/sda1 /path/to/outfile
В слово от Microsoft это: «В файловых системах Windows NTFS файлы не делаются разреженными по умолчанию. Приложение или пользователь должны явно пометить файл разреженным с помощью управляющего кода FSCTL_SET_SPARSE». К сожалению, Linux не отмечает эти файлы через SMB1. По сообщениям если вы сначала сделаете файл разреженным на стороне Windows (с помощью Cygwin dd if=/dev/zero of=BigFile bs=1M count=1 seek=150000
), то вы можете продолжать писать его как разреженное от Linux. Я считаю, что чтение будет неоптимизированным.
С RHEL6 coreutils-8.4 cp --sparse=always local_file /mnt/cifs/file_on_cifs
не записывает разреженный файл. При чтении файла CIFS он считывает обнуленные области (нет карта оптимизация). В RHEL6 и резервное копирование, и восстановление передают весь файл по сети; лучше сжать его.
Такая же ситуация с coreutils-8.25 в Ubuntu 14x.
Eсть Патч 2014 г. «Добавить поддержку разреженных файлов для SMB2 / SMB3», поэтому есть надежда, что разреженные файлы будут поддерживаться на подключенных общих папках Windows 8.1 и других платформ.
Когда вы монтируете на клиенте Linux общий ресурс Samba с некоторого сервера Linux, вы можете сделать запись разреженных файлов даже на SMB1. Оптимизации чтения нет.