Я ищу способ перезаписать только те части файла, которые отличаются от того, что должно быть записано в него, чтобы файл был изменен с наименьшим количеством записей на диск.
Мой план состоит в том, чтобы сделать небольшую дедупликацию, в то время как я делаю резервную копию своего раздела NTFS в файл образа, чтобы этот файл образа был ссылкой на предыдущий образ резервной копии в BTRFS.
(Думайте об этом как о жесткой ссылке, в которую вы можете писать без изменения исходного файла)
Я добавляю неиспользуемые части моего NTFS-раздела в нули, добавляя в него partclone
, поэтому ввод - это канал, а не устройство.
Думайте об этом как
cat /dev/sda4 | command -i - -o newbackup.img
где command
- это то, что я ищу, а newbackup.img
- это файл, который уже содержит 894 ГБ данных, которые в основном совпадают с вводом, но фактическое использование диска в файле образа равно количеству блоков, которые были перезаписаны.
rsync
может сделать это с параметрами --no-whole-file --inplace
(IIRC) благодаря его дельта-передаче, но излишне медленному (не считывает входные и выходные данные одновременно, обрабатывает дельты в одном потоке и обычно очень мало времени) и rsync
также не работает с конвейерами (насколько я знаю), поэтому об этом не может быть и речи.