Featured image of post Timeshift BTRFS бекапы на Manjaro

Timeshift BTRFS бекапы на Manjaro

Автоматические бекапы системы перед установкой пакетов

Введение

Timeshift инструмент просто обалденный! Помогает делать автоматические бекапы системы. Можно и вручную делать, если очень хочется. Поддерживает он работу в двух режимах.

  1. Копирование куда-то rsync-ом, с хитрым линкованием, чтобы место экономить по максимуму
  2. Использование BTRFS snapshot

Первый вариант вообще не интересует. Это долго и не забавно, а вот BTRFS это то, что нужно! Делается мгновенно и где дубликаты, как можно сэкономить, решает сама файловая система напрямую. Кроме того, можно с них грузиться прямо при загрузке системы.

Требования к системе

Часть, описана на главной странице репозитория, но есть ещё и то, что я нашёл сам.

  1. Подраздел по умолчанию для файловой системы BTRFS должен быть /

Когда монтируешь раздел с BTRFS куда либо без указания опции монтирования subvol=… должен монтироваться именно корень, иначе программа падает. Вот скрипт, который это проверяет и ставит правильно.

1
2
3
4
MP="$(mktemp -d)"
mount | awk '/on \/ type btrfs/{print $1}' | sudo xargs -I{} mount {} "$MP" && \
sudo btrfs subvolume set-default 5 "$MP"; \
sudo umount "$MP"
  1. В /etc/fstab корневой раздел системы должен быть прописан корректно

Та самая опция subvol=… должна быть установлена в @ или /@, не важно. Вот этот скрипт подскажет прописано ли у Вас всё верно.

1
2
3
4
5
6
grep -E '^[^#].+/\s+btrfs' /etc/fstab | \
grep -oE 'subvol=[^,]+' | \
cut -d= -f2 | \
grep -qE '^/[email protected]$' && \
echo 'OK' || \
echo 'Not OK'

Как работает

При установке любого пакета через pamac или yay, в моём случае, timeshift срабатывает автоматически, если в /etc/timeshift-autosnap.conf не прописано его пропускать.

И вот, у меня даже два бекапа теперь

Licensed under Apache License, Version 2.0
Обновлено Dec 25, 2022 19:15 +0200
All rights reserved
Создано при помощи Hugo
Тема Stack, дизайн Jimmy