Btrfs
BTRFS на ALT
Подтом (subvolume) не является блочным устройством, но в каждом томе btrfs создаётся один подтом верхнего уровня (subvolid=5), в этом подтоме могут создаваться другие подтома и снапшоты. Подтома (подразделы, subvolumes) создаются ниже вершины дерева btrfs по мере необходимости, например. для / и /home создаются подтома с именами @ и @home. Это означает, что для монтирования подтомов необходимы определенные параметры вместо корня системы btrfs по умолчанию:
- подтом @ монтируется в / с помощью опции subvol=@
- подтом @home (если он используется) монтируется с помощью параметра монтирования subvol=@home
В данной статье использовался iso-образ ALT 10.0 Workstation K beta 20211222. Т.к. для Timeshift система должна быть установлена на раздел BTRFS с разбивкой на подразделы @ и @home, то в данной статье рассмотрен именно этот вариант.
Установка ALT на btrfs
При установке системы, на этапе «Подготовка диска» воспользоваться профилем разбиения вручную, создать swap и корень системы (файловая система BtrFS):
Далее установить систему как обычно.
После установки, выключить систему и загрузиться в LiveCD.
Создание подтомов
Примонтировать систему в каталог /mnt/alt:
# mkdir /mnt/alt
# mount /dev/sda2 /mnt/alt/
Перейти в каталог /mnt/alt:
# cd /mnt/alt/
Создать подтома (@ и @home) в системе btrfs на разделе /dev/sda2, который смонтирован в /mnt/alt:
# btrfs subvolume create ./@
Create subvolume './@'
# btrfs subvolume create ./@home
Create subvolume './@home'
Убедиться, что подтома созданы верно (вывести список подтомов):
# btrfs subvolume list ./
ID 256 gen 46 top level 5 path @
ID 257 gen 47 top level 5 path @home
Перенести каталоги с пользователями из каталога /home в /@home:
# mv ./home/* ./@home/
Перенести остальные каталоги (кроме /@home и /home) в подтом @:
# mv ./boot ./@/
# mv ./etc ./@/
и т.д. Каталог /home нужно не переносить, а скопировать в подтом @ (т.к. он будет точкой монтирования для подтома @home):
# cp -r ./home ./@/
В каталоге /mnt/alt должно остаться три каталога:
# ls ./
@ home @home
Далее необходимо внести изменения в файл /etc/fstab и обновить загрузчик Grub. Для этого:
- Перейти в /mnt и создать каталог /mnt/alt2
# cd /mnt # mkdir /mnt/alt2
- Проверить расположение системы и параметры монтирования:
# mount |grep alt /dev/sda2 on /mnt/alt type btrfs (rw,relatime,space_cache=v2,subvolid=5,subvol=/)
- Примонтировать btrfs раздел с опцией subvol=@:
# mount /dev/sda2 alt2 -o subvol=@
- Примонтировать временные интерфейсные файловые системы в /mnt/alt2 (из хостовой системы в гостевую):
# for i in dev sys proc run; do mount --bind -v /$i alt2/$i; done mount: /dev bound on /mnt/alt2/dev. mount: /sys bound on /mnt/alt2/sys. mount: /proc bound on /mnt/alt2/proc. mount: /run bound on /mnt/alt2/run.
- Сделать chroot в /mnt/alt2:
# chroot alt2
- Внести изменения в /etc/fstab:
UUID=9306bd96-eaee-41d9-a65d-6385c68357d2 / btrfs relatime,nofail,subvol=@ 1 1 UUID=9306bd96-eaee-41d9-a65d-6385c68357d2 /home btrfs relatime,nofail,subvol=@home 1 1 UUID=14e23578-5cec-48cb-98e4-220e78138123 swap swap defaults
- Обновить загрузчик:
# update-grub Generating grub configuration file ... Found theme: /boot/grub/themes/branding-xalt-kworkstation/theme.txt Found background image: /boot/grub/themes/branding-xalt-kworkstation/grub.png Found linux image: /boot/vmlinuz-un-def skipping symlink: /boot/vmlinuz-un-def Found linux image: /boot/vmlinuz Found initrd image: /boot/initrd.img Found linux image: /boot/vmlinuz-5.14.21-un-def-alt1 Found initrd image: /boot/initrd-5.14.21-un-def-alt1.img Found memtest image: /boot/memtest-5.31b.bin done
- Установить загрузчик в /dev/sda (т.к. только обновления загрузчика недостаточно):
# grub-install /dev/sda
- Выйти из chroot:
# exit
- Перезагрузить систему.
Создание снимков
Снимки/snapshots удобно делать и использовать в программе с графическим интерфейсом Timeshift.
См. также Первая версия