Перенос снапшотов(snapshots) btrfs на другой раздел в отдельном файле
Снапшоты (snapshot) являются составной частью системы btrfs и находятся с ней на одном разделе, что не совсем безопасно, так как поломка самой файловой системы отправит в небытие и все ваши резервные копии. Так же может возникнуть необходимость использовать ваш снапшот в новой, только что переустановленной ОС (к примеру при переходе на новую платформу) или использовать снапшот на другом ПК. Один из вариантов решения этих задачь - это сохранить снапшот в отдельный файл и разворачивать его там, где в этом есть необходимость.
Процесс установки btrfs и создание подтомов подробно описан в статьях: Установка_Rosa_в_btrfs_с_подтомами_на_этапе_установки и Установка Rosa в btrfs с переносом в подтома после установки. По моему мнению, первый метод с переносом в подтома на этапе установки более прост и понятен.
Для упрощения примера переносить будем только снимок корня системы @.
Перенос снимка домашней директории @home осуществляется точно таким же способом.
Перенос снапшота в отдельный файл:
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 # создадим из снапшота /mnt/@_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 # задаем снапшоту новые свойства - отключаем флаг "только для чтения"
Возможные свойства подтома/снапшота:
• ro - флаг read-only, значения true или false • label - метка тома, значение - строка символов или пустая строка, когда метку нужно сбросить. • compression - сжатие подтома или каталога, значения lzo, zlib или пустая строка, когда сжатие нужно отключить.
Теперь можно грузить систему с этого снапшота (если переименовать его в @), переносить файлы из него в другие снапшоты и подтома.
Внешние ссылки:
Установка Rosa в btrfs с подтомами на этапе установки
Установка Rosa в btrfs с переносом в подтома после установки
btrfs | русскоязычное сообщество по Ubuntu
Wiki btrfs
Опции монтирования