Участник:ДонВенчензо
Перенос снапшотов btrfs на другой раздел в отдельном файле
Снапшоты являются составной частью системы btrfs и находятся с ней на одном разделе, что не совсем безопасно, так как поломка самой файловой системы отправит в небытие и все ваши резервные копии. Так же может возникнуть необходимость использовать ваш снапшот в новой, только что переустановленной ОС или использовать снапшот на другом ПК. Один из вариантов решения этих задачь - это сохранить снапшот в отдельный файл и разворачивать его там, где в этом есть необходимость
Процесс установки btrfs и создание подтомов подробно описан в статьях: Установка_Rosa_в_btrfs_с_подтомами_на_этапе_установки и Установка Rosa в btrfs с переносом в подтома после установки. По моему мнению, первый метод с переносом в подтома на этапе установки более прост и понятен.
Для упрощения примера переносить будем только снимок корня системы @.
Перенос снапшота в отдельный файл:
sudo mount /dev/sda2/ /mnt/ # примонтируем нашу систему btrfs, находящуюся на sda2 в папку /mnt
sudo mount /dev/sdb1/ /media/ # примонтируем раздел(не обязательно btrfs), на который будем переносить снапшот
sudo btrfs subvolume snapshot -r /mnt/@ /mnt/@_snapshot # создадим снапшот корня системы с флагом -r (read-only). Это обязательное условие, без которого команда send работать не будет
sync # сбросим все из кэша на диск
sudo btrfs send /mnt/@_snapshot -f /media/@_snapshot # создадим файл с именем @_snapshot в папке /media/
Созданный файл @_snapshot в дальнейшем можно будет развернуть в существующей файловой системе или в другой btrfs.
sudo mount /dev/sda2/ /mnt/ # примонтируем систему btrfs на которой будем разворачивать наш снапшот @_snapshot
sudo mount /dev/sdb1/ /media/ # примонтируем раздел, на котором лежит наш файл снапшота
sudo btrfs receive /mnt -f /media/@_snapshot # развернем файл снапшота @_snapshot в папку /mnt/
Нужно, чтобы в папке /mnt не было другого снапшота с таким же именем, иначе система выдаст сообщение об этом.
Важно!!! помнить, что наш снапшот @_snapshot создавался с флагом "только для чтения". Чтобы можно было работать с ним надо поменять его свойства, т.е. убрать флаг "только для чтения".
sudo btrfs property get /mnt/@_snapshot # просмотрим свойства нашего снапшота. Система выдаст сообщение ro=true, что значит режим "только для чтения" включён.
sudo btrfs property set /mnt/@_snapshot ro false # отключаем флаг "только для чтения"
Теперь можно грузить систему с этого снапшота (если переименовать его в @), переносить файлы из него в другие снапшоты и подтома.