Как удалить файл из всех снимков в системе btrfs?

3

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

Но, к сожалению, я выбежал из космоса старомодным способом (скопировав в него много чего).

Теперь удаление чего-либо бесполезно, поскольку оно сохраняется во всех моментальных снимках. Чтобы освободить место на диске, я должен был бы удалить все снимки, так как файл был сначала скопирован на устройство. Я не хочу этого делать, потому что

  • Трудно выяснить, когда именно это было (особенно, если файлы были изменены с тех пор)
  • Я не хочу терять историю всех других файлов в этих снимках
  • получить доступ к снимкам можно только путем их монтирования, с root-fs это немного сложнее, чем просто делать rm -f

Итак, как мне сказать btrfs удалить один файл во всех снимках? Фактически это означает, что необходимо установить нулевой внутренний счетчик ссылок, чтобы освободить место.

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

Chaos_99
источник

Ответы:

7

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

Чтобы установить записываемый снимок (из раздела Как сделать снимок btrfs доступным для записи? ):

btrfs property set -ts <snapshot> ro false

Удалите файлы, чтобы освободить место, затем установите их обратно только для чтения с

btrfs property set -ts <snapshot> ro true

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

К сожалению, этот метод не очень помогает, если вы потеряли отслеживание имен файлов. Но вы все еще можете использовать Baobab или K4DirStat или du -h | sort -hнайти большие файлы в моментальных снимках.

Кроме того, вам не нужно отдельно монтировать каждый снимок, если вы можете просто смонтировать каталог, в котором они содержатся.

Ziphilt
источник