В комментариях был вопрос о том, зачем ставить систему на 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
Snapper-Gui надо запускать через sudo, иначе снимков не видно. Вот снимки после установки MC:
Просмотр изменений
Увидеть что изменилось можно командой сравнения двух снимков. Для этого надо указать номера снимков.
snapper status 1..2
Вывод команды покажет изменения в снимках:
В Snapper-Gui выделяем два снимка и нажимаем кнопку Changes:
Можно увидеть и разницу в файлах:
sudo snapper diff 1..2
В Snapper-Gui всё это удобнее и тоже хорошо видно на скриншоте выше.
Отмена изменений
sudo snapper undochange 1..2
Секунда и APT не знает ни про какой MC.
В снимок можно зайти с правами суперпользователя как в каталог и забрать руками нужные файлы.
Это простые BTRFS снимки и в случае невозможности загрузиться в систему можно можно загрузиться с флешки и восстановить систему из снимка. Не знаю как Debian, но у Arch Linux можно в Grub добавить пункт загрузки из снимка.
В следующий раз рассмотрим ещё одно аналогичное, но более удобное приложение.