Найти в Дзене
Пикабу

Использование Timeshift для управления снимками в Debian на Btrfs

Всем привет, на связи Уханов. В прошлом посте мы поприкалыавались на тему создания автоматических снимков файловой системы BTRFS в Debian. Тогда в конце заметки я упомянул, что Grub можно научить грузить систему прямо из снимка. Давайте сделаем это, а заодно, рассмотрим другую программу для управления снимками.

Нюанс установки системы

В посте про установку Debian на subvolume BTRFS я подробно рассказывал про процесс. Принцип действий будет тот-же, но subvolume должно быть только два: @ и @home. Subvolume @ мы будем использовать для корня файловой системы. Вот только нюанс в том, что установщик создаёт первый subvolume с именем @rootfs. Начнём.

Итак, дорогой друг, ты уже разметил диск, создал файловую систему и дошёл до этапа установки базовой системы. Словом, всё как в руководстве.

Итак, жми CTRL+ALT+F2 и погружайся в консоль. Осмотримся что у на по дискам:

df.

Отмонтируем всё, что касается /target.

umount /dev/sda1 && umount /dev/sda3.

Примонтируем нашу BTRFS для работы с ней:

mount /dev/sda3 /mnt.

Посмотрим что там внутри.

cd /mnt ls.

Как я и говорил, там один subvolume с именем @rootfs. Нам надо его переименовать, но система сделать это не даст. Ты же помнишь, что в BTRFS снимок - это тоже subvolume? Делаем финт ушами снимок subvolume, называем его @ и удаляем старый subvolume с именем @rootfs.

btrfs subvolume snapshot /mnt/@rootfs /mnt/@ btrfs subvolume delete /mnt/@rootfs.

Создаём subvolume для домашних каталогов:

btrfs subvolume create @home.

Проверяем сделанное:

btrfs subvolume list /mnt.

Мы должны видеть два subvolume: @ и @home. Отмонтируем и монтируем корень уже куда надо:

umount /mnt mount -o rw, noatime, compress=lzo, space_cache, subvol=@ /dev/sda3 /target.

Создадим каталоги:

mkdir -p /target/boot/efi mkdir -p /target/home.

Монтируем оставшееся:

mount /dev/sda1 /target/boot/efi

mount -o rw, noatime, compress=lzo, space_cache, subvol=@home /dev/sda3 /target/home.

.
.

Заметьте, что в отличие от предыдущей заметки я монтирую не через subvolid, а через subvol. То есть не по id, а по имени. Это важно. Там-же пишем и в fstab.

nano /target/etc/fstab.

Примерно так:

-3

Жмём CTRL+ALT+F1 и продолжаем установку.

Установка Timeshift

Timeshift - Свободная программа, предназначенная для автоматического периодического резервного копирования и восстановления системы Linux. Она умеет создавать резервные копии через rsync или снимки BTRFS вручную или по расписанию. Установим:

sudo apt install timeshift.

Пройдём несложную процедуру настройки и создадим тестовый снимок:

Создание снимков при работе APT

Для того, чтобы снимки автоматически создавались при установке, удалении и обновлении пакетов, необходимо поставить пакет timeshift-autosnap-apt. Начнём.

sudo apt install git make

git clone https://github.com/wmutschl/timeshift-autosnap-apt.git /home/$USER/timeshift-autosnap-apt

cd /home/$USER/timeshift-autosnap-apt

sudo make install.

Проверим создание снимков установкой Midnight Commander:

sudo apt install mc.

Видим, что снимок создан:

-5

Загрузка системы из снимка

Для этого нам потребуется пакет grub-btrfs. Установим его.

git clone https://github.com/Antynea/grub-btrfs.git /home/$USER/grub-btrfs

cd /home/$USER/grub-btrfs

sudo make install.

Теперь надо включить пункт меню загрузки:

nano /etc/default/grub-btrfs/config.

Раскомментируйте пункт GRUB_BTRFS_SUBMENUNAME.

-6

Мы видим, что теперь при установке пакетов редактируется меню загрузчика GRUB:

-7

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

-8

Восстановление

При восстановлении снимка программа создаёт текущий снимок, чтобы восстановление можно было отменить.

-9

У меня не заработала кнопка “Обзор” и средствами программы мне не удалось увидеть файлы в снимке. Впрочем, снимок можно примонтировать вручную.

Программа умеет делать копии и на файловой системе EXT4 при помощи rsync.

Оригинал как обычно в моём блоге.

Пост автора mfc166.

Узнать, что думают пикабушники.