В комментариях был вопрос о том, зачем ставить систему на subvolume BTRFS. Одна из приятных возможностей, которые открываются при таком подходе, гибкое использование снимков. Давайте автоматизируем их создание при помощи Snapper. Он из коробки создаёт снимки при работе APT. Один до и один после. Так можно точно увидеть что изменилось в процессе работы пакетного менеджера. Разделение файловой системы на subvolume позволяет точно разделять котлет от мух.

Возьмём систему с двумя subvolume :

  • @rootfs для корневой файловой системы. Тут ты всё сам понимаешь. Именно в этом subvolume будут происходить изменения когда ты что-то устанавливаешь или обновляешь.
  • @home для домашних каталогов. Ты же не хочешь при откате обновлений системы потерять свои документы или фото? Поэтому отделяем.

Установка Snapper

Мы будем использовать Snapper - инструмент, упрощающий и автоматизирующий работу со снимками. Он позволяет удобно создать снимок subvolume как вручную, так и автоматически. Автоматически снимки создаются по таймеру, при загрузке и при работе пакетного менеджера APT. Начнём.

apt install snapper

Если мы работаем в графическом режиме, ставим GUI

apt install snapper-gui

Надо создать начальную конфигурацию под каждый subvolume

snapper -c root create-config /
snapper -c home create-config /home

Использование

Снимки бывают трёх типов:

  • Single. Просто одиночный снимок, созданный вручную или автоматически.
  • Pre. Снимок, созданный перед определённым событием. Например, перед работой APT.
  • Post. Снимок, созданный после определённого события. Например, после работы APT. Обязательно ссылается на pre снимок.

Например я установлю Midnight Commander:

sudo apt install mc

После чего просмотрю снимки:

sudo snapper list

Alt text

Snapper-Gui надо запускать через sudo, иначе снимков не видно. Вот снимки после установки MC:

Alt text

Просмотр изменений

Увидеть что изменилось можно командой сравнения двух снимков. Для этого надо указать номера снимков.

snapper status 1..2

Вывод команды покажет изменения в снимках:

Alt text

В Snapper-Gui выделяем два снимка и нажимаем кнопку Changes:

Alt text

Можно увидеть и разницу в файлах:

sudo snapper diff 1..2

Alt text

В Snapper-Gui всё это удобнее и тоже хорошо видно на скриншоте выше.

Отмена изменений

sudo snapper undochange 1..2

Секунда и APT не знает ни про какой MC.

Alt text

В снимок можно зайти с правами суперпользователя как в каталог и забрать руками нужные файлы.

Alt text

Это простые BTRFS снимки и в случае невозможности загрузиться в систему можно можно загрузиться с флешки и восстановить систему из снимка. Не знаю как Debian, но у Arch Linux можно в Grub добавить пункт загрузки из снимка.

В следующий раз рассмотрим ещё одно аналогичное, но более удобное приложение.