Введение

Стандартный Debian Installer при установке системы на выбранный раздел BTRFS создаёт один подраздел @rootfs, при такой разметке программы типа Timeshift или Snapper не будут работать. Эта статья описывает, как выполнить установку, чтобы исправить данную проблему.

Если коротко: вручную создаём канонические subvolume @ для корня и @home для домашних каталогов, а затем прописываем их в /target/etc/fstab. В результате получается разметка, пригодная для снапшотов из коробки.

Подготовка

Понадобится подготовленный накопитель с загрузочным образом Debian или Astra Linux. Подойдёт Netinstall. Установка может производиться только в ручном Экспертном режиме, так как Debian Installer не имеет функционала для редактирования подтомов BTRFS.

ВАЖНО! При установке Astra Linux при загрузке в GRUB требуется указать параметр ядра priority=low, в противном случае инсталлятор автоматически начнёт установку базовой системы сразу после разметки диска.

Установка

Установка системы выполняется в Экспертном режиме со стандартным выбором параметров до момента разметки диска.

В пункте установки «Разметка дисков» создайте 2 раздела:

  • EFI (FAT32 или EXT2) с точкой монтирования /boot/efi ~ 500 МБ (рекомендуемый размер)
  • BTRFS с точкой монтирования / — всё остальное место.

Когда разделы будут созданы и разметка записана на диск, нужно открыть консоль: либо выбрав пункт меню «Запуск оболочки», либо переключившись по Ctrl+Alt+F2.

Узнать имена разделов диска можно командой lsblk или blkid — на этом этапе система довольно ограничена, и других удобных инструментов не так уж и много.

Далее последовательно вводим команды.

Сначала необходимо отмонтировать каталог установки системы:

umount /target/boot/efi
umount /target

Затем примонтируем раздел с BTRFS и внесём необходимые изменения (имя раздела у вас может быть другим):

mount /dev/sda2 /mnt
cd /mnt
mv @rootfs/ @/
btrfs subvolume create @home
cd ..
umount /mnt

Команда mv @rootfs/ @/ переименовывает корневой subvolume, созданный инсталлятором, в канонический @, который ожидают инструменты создания снимков. Отдельный subvolume @home нужен, чтобы снимки корня и домашних каталогов создавались независимо.

Далее перейдём к завершающему этапу (параметры монтирования у вас могут быть другими, читайте документацию):

mount -o noatime,compress=zstd,subvol=@ /dev/sda2 /target
mkdir /target/home
mount -o noatime,compress=zstd,subvol=@home /dev/sda2 /target/home
mount /dev/sda1 /target/boot/efi

Далее нужно обязательно исправить файл с точками монтирования /target/etc/fstab следующим образом:

UUID=<ВАШ UUID> /         btrfs noatime,compress=zstd,subvol=@     0 0
UUID=<ВАШ UUID> /home     btrfs noatime,compress=zstd,subvol=@home 0 0
UUID=<ВАШ UUID> /boot/efi vfat  umask=0077                         0 1

Значение UUID для нужного раздела можно узнать командой blkid /dev/sda2. Если раздел ESP был создан как EXT2, а не FAT32, в строке /boot/efi укажите тип ext2 вместо vfat.

После этого возвращаемся на экран установки по Ctrl+Alt+F1, выбираем пункт «Установка базовой системы» и продолжаем установку в стандартном режиме.

Проверка результата

После завершения установки и первой загрузки убедитесь, что разметка корректна:

btrfs subvolume list /
findmnt -no SOURCE,FSTYPE,OPTIONS /
findmnt -no SOURCE,FSTYPE,OPTIONS /home

В выводе btrfs subvolume list / должны присутствовать @ и @home, а findmnt — показать соответствующие subvolume в параметрах монтирования.

Снапшоты

После окончания установки системы дополнительно установите приложение для создания снимков: Snapper — если требуется консольная утилита, или Timeshift — если работаете в графическом режиме.