Btrfs

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

BTRFS на ALT

Подтом (subvolume) не является блочным устройством, но в каждом томе btrfs создаётся один подтом верхнего уровня (subvolid=5), в этом подтоме могут создаваться другие подтома и снапшоты. Подтома (подразделы, subvolumes) создаются ниже вершины дерева btrfs по мере необходимости, например, для / и /home создаются подтома с именами @ и @home. Это означает, что для монтирования подтомов необходимы определенные параметры вместо корня системы btrfs по умолчанию:

  • подтом @ монтируется в / с помощью опции subvol=@
  • подтом @home (если он используется) монтируется с помощью параметра монтирования subvol=@home
Внимание! Дальнейшее описание представлено для legasy-режима.


В данной статье использовался 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. Для этого:

  1. Перейти в /mnt и создать каталог /mnt/alt2
    # cd /mnt 
    # mkdir /mnt/alt2
    
  2. Проверить расположение системы и параметры монтирования:
    # mount |grep alt
    /dev/sda2 on /mnt/alt type btrfs (rw,relatime,space_cache=v2,subvolid=5,subvol=/)
    
  3. Примонтировать btrfs раздел с опцией subvol=@:
    # mount /dev/sda2 alt2 -o subvol=@
    
  4. Примонтировать временные интерфейсные файловые системы в /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.
    
  5. Сделать chroot в /mnt/alt2:
    # chroot alt2
    
  6. Внести изменения в /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
    
  7. Обновить загрузчик:
    # 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
    
  8. Установить загрузчик в /dev/sda (т.к. только обновления загрузчика недостаточно):
    # grub-install /dev/sda
    
  9. Выйти из chroot:
    # exit
    
  10. Перезагрузить систему.

Создание снимков

Снимки/snapshots удобно делать и использовать в программе с графическим интерфейсом Timeshift.

См. также Первая версия