Увы не все дистрибутивы, пока что, способны устанавливаться в BTRFS используя подтома. Некоторые из них ставят систему прямо в корень ФС и для начала полноценного пользования подтомами и резервными копиями, с помощью программы Timeshift, приходится переносить уже установленную систему по подтомам вручную. В этом руководстве я пошагово объясню вам как это сделать.
За основу для инструкции взята система Альт P10 Starterkit установленная на разделы следующим образом:
/dev/nvme0n1p1 — EFI System Partition
/dev/nvme0n1p2 — /boot ext4
/dev/nvme0n1p3 — / btrfs
Итак, начнем:
- Загружаемся в режиме LiveCD с носителя из которого выполнялась установка.
2. Далее переключаемся в root:
su -
3. И создаем каталог с любым удобным именем, в моем примере это будет btrfs:
# mkdir /mnt/btrfs
4. Монтируем раздел с установленной операционной системой в созданный каталог btrfs:
# mount /dev/nvme0n1p3 /mnt/btrfs/
5. Переходим в каталог /mnt/btrfs:
# cd /mnt/btrfs/
6. Создаем нужные нам подтома (@ и @home) в системе btrfs на разделе /dev/nvme0n1p3, который смонтирован в /mnt/btrfs:
Сначала создаем подтом для системы
# btrfs subvolume create ./@
А потом и подтом для домашнего каталога
# btrfs subvolume create ./@home
7. Чтобы убедиться, что все сделано правильно, можно использовать следующую команду, которая выведет список всех подтомов в корне:
# btrfs subvolume list ./
8. Теперь переносим каталоги пользователей из каталога /home в /@home:
# mv ./home/* ./@home/
9. А все остальные каталоги (кроме /@home) переносим в подтом @:
# mv ./bin ./@/
# mv ./boot ./@/
# mv ./dev ./@/
# mv ./home ./@/
# mv ./lib ./@/
# mv ./etc ./@/
И т.д.
10. В каталоге /mnt/btrfs по итогу у вас должно остаться только два каталога @ и @home. Посмотреть список каталогов в корне можно командой:
# ls ./
Ну вот. Половина дела сделана. Осталось внести изменения в /etc/fstab и обновить загрузчик grub. Для этого:
- Создаем еще один каталог с, опять же, любым именем, к примеру /mnt/btrfs2
# mkdir /mnt/btrfs2
2. Заново примонтируем btrfs-раздел, но теперь уже с опцией subvol=@:
# mount /dev/nvme0n1p3 /mnt/btrfs2 -o subvol=@
3. Примонтируем временные интерфейсные файловые системы в /mnt/btrfs2:
# for i in dev sys proc run; do mount --bind -v /$i /mnt/btrfs2/$i; done
4. Примонтируем директории /boot и /boot/efi:
mount /dev/nvme0n1p2 /mnt/btrfs2/boot/
mount /dev/nvme0n1p1 /mnt/btrfs2/boot/efi
5. И теперь делаем chroot в нашу систему:
# chroot /mnt/btrfs2
6. Вносим изменения в /etc/fstab с помощью любого текстового редактора, например nano:
# nano /etc/fstab
Находим строку:
UUID=<uuid раздела> / btrfs relatime 1 1
И добавляем subvol=@, чтобы строка приобрела вид:
UUID=<uuid раздела> / btrfs relatime,subvol=@ 1 1
Ниже добавляем еще одну строку уже для подтома @home:
UUID=<uuid раздела> /home btrfs relatime,subvol=@home 1 1
UUID раздела в нашем случае будет одинаковый для @ и @home, так как они находятся в одном разделе.
7. Устанавливаем загрузчик grub в /dev/nvme0n1:
# grub-install /dev/nvme0n1
8. И обновляем его конфигурацию:
# grub-mkconfig -o /boot/grub/grub.cfg
9. Выходим из chroot:
# exit
10. И перезагружаем систему:
# reboot
На этом все. Система перенесена в подтом @, а пользовательские данные из /home, теперь находятся в подтоме @home. После перезагрузки можно ставить Timeshift и настраивать бэкап вашей системы. Не смотря на кажущуюся сложность, вся процедура занимает не более 10 минут.
[about@Linux ~]# - Сообщество пользователей и любителей ОС на базе ядра Linux и по-совместительству персональный блог одного из таких людей.
Страница ВК: https://vk.com/about_linux