2

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

Мой план состоит в том, чтобы сделать небольшую дедупликацию, в то время как я делаю резервную копию своего раздела NTFS в файл образа, чтобы этот файл образа был ссылкой на предыдущий образ резервной копии в BTRFS.
(Думайте об этом как о жесткой ссылке, в которую вы можете писать без изменения исходного файла)

Я добавляю неиспользуемые части моего NTFS-раздела в нули, добавляя в него partclone , поэтому ввод - это канал, а не устройство.
Думайте об этом как

cat /dev/sda4 | command -i - -o newbackup.img

где command - это то, что я ищу, а newbackup.img - это файл, который уже содержит 894 ГБ данных, которые в основном совпадают с вводом, но фактическое использование диска в файле образа равно количеству блоков, которые были перезаписаны.

rsync может сделать это с параметрами --no-whole-file --inplace (IIRC) благодаря его дельта-передаче, но излишне медленному (не считывает входные и выходные данные одновременно, обрабатывает дельты в одном потоке и обычно очень мало времени) и rsync также не работает с конвейерами (насколько я знаю), поэтому об этом не может быть и речи.

0