Я пытаюсь сделать сжатые инкрементные резервные копии раздела Windows, используя ntfsclone в Linux. В настоящее время я делаю полные образы ntfsclone, используя что-то вроде следующей команды:
sudo ntfsclone -s -t -o - /dev/sda2 | xz -zc > new-backup.ntfsclone.xz
Я хотел бы выполнить инкрементное резервное копирование, создав дельта-файл с использованием предыдущей резервной копии и выходного потока ntfsclone, а не создавать новый образ ntfsclone при каждом сеансе резервного копирования.
Я понимаю, что создавать различия в двоичных файлах непросто, и что для этого существует несколько инструментов (rdiff, xdelta, bsdiff и т.д.); однако все они требуют наличия двух исходных файлов на диске и не могут сравнивать данные непосредственно из потоков вывода.
Другими словами, есть ли решения для двоичных потоков, которые делают что-то вроде следующей команды?
diff -u <(xz -dc old-backup.ntfsclone.xz) \
<(sudo ntfsclone -s -t -o - /dev/sda2) \
| xz -zvc > new-backup.ntfsclone.delta.xz
Очевидно, что приведенная выше команда не работает, но я хотел бы иметь возможность распаковать старый образ, сравнить его с ntfsclone-представлением раздела Windows и создать сжатый дельта-образ из сравнения за один шаг.
Несколько условий:
- Процесс должен использовать ntfsclone
- Дельты должны быть исправлены непосредственно на диск
- Желательно, чтобы все происходило за один шаг
Также возможно (и может быть предпочтительнее) создать дельта-файл путем восстановления изображения ntfsclone в конвейер и создания diff путем сравнения непосредственно с /dev/sda2
, так как это, вероятно, создаст меньший выходной файл, но это усложнит фильтрация нераспределенного дискового пространства.
(То есть мы должны обнулить неиспользуемое дисковое пространство или сделать что-то вроде diff -u <(xz -dc old-backup.ntfsclone.xz | ntfsclone -r -t -o - -) <(sudo ntfsclone -t -o - /dev/sda2) | xz -zc > new-backup.img.delta.xz
чтобы предотвратить архивирование всех данных удаленного файла. Тьфу!)
Любой берущий?
ПРИМЕЧАНИЕ: инструмент под названием ntfsddup от Wei Dong действительно существует для почти точного выполнения этой задачи , но мне трудно заставить его работать. Программное обеспечение находится на ОЧЕНЬ ранних стадиях и требует много работы.