У меня завалялся свободный диск на 2 ТБ, и я решил использовать его
для резервного копирования основной системы. Система у меня на Btrfs. В
принципе, можно просто копировать файлы через rsync или
делать полные копии диска, но это неудобно и неэффективно. Btrfs
предоставляет гораздо более мощные возможности для бэкапа.
Для начала нужно создать snapshot текущей системы:
btrfs subvolume snapshot -r / /.snapshots/@-snap-$(date +%Y-%m-%d)
Создаём файловую систему на бэкап-диске:
mkfs.btrfs -L backupdisk -f /dev/mapper/backup
Где:
- L — метка тома,
- f — принудительное создание, даже если на диске уже есть файловая система.
Монтируем диск:
mount /dev/mapper/backup /mnt/backup
Создаём подтом (subvolume) для бэкапов:
btrfs subvolume create /mnt/backup/laptop0
Запускаем первый бэкап:
sudo btrfs send /.snapshots/@-snap-2025-10-31 | sudo btrfs receive /mnt/backup/laptop0/
Готово — бэкап создан. Через месяц достаточно выполнить:
btrfs send -p /.snapshots/@-snap-2025-10-31 /.snapshots/@-snap-2025-11-30 | sudo btrfs receive /mnt/backup/laptop0/
Эта команда передаст только изменения между снапшотами от 31 октября
до 30 ноября, при этом в laptop0 будут храниться оба
снапшота. Можно откатиться к любому из них. В этом и заключается главное
удобство — резервные копии занимают минимум места и создаются на уровне
файловой системы.