Вопрос или проблема
На объеме btrfs у меня есть папка snapshots/
, в которой я время от времени храню снимок всего объема.
btrfs автоматически монтирует все подсистемы, например, после монтирования верхнего объема snapshots/
заполняется всеми ранее сделанными снимками.
Теперь я хочу размонтировать подсистемы в snapshots
, оставив snapshots
пустым (без удаления снимков, конечно). Это очень полезно, если я делаю резервные копии, индексирую или ищу на объеме, что в противном случае всегда необходимо ограничивать с помощью инструментов, чтобы исключить snapshots/
, что не всегда легко.
Так как подсистемы не монтируются ядром, я не могу размонтировать их с помощью mount
. Как мне их размонтировать?
Вы можете организовать свои объемы btrfs по-другому, чтобы избежать этого автоматического монтирования (не монтируя btrfs /
на вашу систему /
, а монтируя btrfs подсистему, например, /rootfs
, на вашу систему /
вместо этого. Только btrfs подсистемы с именем /rootfs/foo/bar
будут автоматически монтироваться как /foo/bar
в этом случае). Но это не очень простая задача, и у вас могут возникнуть трудности с перезагрузкой компьютера, если вы пропустите хотя бы один шаг.
В качестве обходного пути для размонтирования, на мой взгляд, проще всего скрыть содержимое вашей подсистемы snapshot
монтируя над ней “глупую” точку монтирования. Вы можете автоматизировать это через свой fstab следующим образом:
none /snapshot tmpfs defaults,size=1M,ro 0 0
Чтобы снова получить доступ к вашей подсистеме /snapshot
, простым способом будет добавить конкретную неавтоматическую точку монтирования (только для чтения в этом примере, потому что вам редко нужно изменять ваши снимки):
/dev/sda2 /mnt/snapshots btrfs defaults,noauto,ro,subvol=/snapshot 0 2
Примечание:
Вы также можете просто не скрывать вашу подсистему снимков, а установить для неё конкретные безопасные параметры монтирования:
/dev/sda2 /snapshots btrfs defaults,noexec,nodev,ro,subvol=/snapshot 0 2
Ответ или решение
Когда дело доходит до работы с файловой системой Btrfs, управление подтомами может быть активной задачей, особенно если вы хотите оставить определенные каталоги пустыми для облегчения процедур, таких как резервное копирование, индексация или поиск. Если у вас есть раздел Btrfs с папкой snapshots/
, где хранятся ваши снимки, и вы хотите выгрузить подтомы из этой папки, не удаляя сами снимки, вот несколько шагов, которые можно предпринять.
Проблема с автоматическим монтированием подтомов
При монтировании основного тома Btrfs система автоматически монтирует все подтомы, включая те, что расположены в каталоге snapshots/
. Это может создать сложности, так как вы хотите, чтобы этот каталог оставался пустым для удобства выполнения резервного копирования и обработки данных без нежелательных помех.
Решение через временные точки монтирования
Одним из наиболее простых решений является использование временного монтирования ("dummy mount") для сокрытия содержимого подтомов в каталоге snapshots/
. Это позволяет вам сохранить подтомы на месте и при этом избегать их отображения в файловой системе.
-
Создание временного монтирования: Чтобы сделать этот процесс автоматизированным, вы можете добавить следующую строку в файл
/etc/fstab
:none /snapshots tmpfs defaults,size=1M,ro 0 0
Эта команда создаёт временную файловую систему (tmpfs) размером 1 МБ, которая будет смонтирована в
/snapshots
. В результате, содержимое каталогаsnapshots/
не будет доступно. -
Доступ к подтомам: Для того чтобы получить доступ к подтомам в
snapshots
, вам нужно создать отдельную точку монтирования. Вfstab
можно добавить строку, которая будет указывать на конкретный подтом:/dev/sda2 /mnt/snapshots btrfs defaults,noauto,ro,subvol=/snapshots 0 2
Здесь
subvol=/snapshots
указывает на то, что вы хотите смонтировать конкретный подтом в указанную точку монтирования. Использование опцииnoauto
предотвратит автоматическое монтирование при запуске системы.
Другие варианты
Если вы не хотите скрывать содержимое подтома, вы можете установить безопасные параметры монтирования для каталога snapshots/
. Это может быть выполнено следующим образом:
/dev/sda2 /snapshots btrfs defaults,noexec,nodev,ro,subvol=/snapshots 0 2
Здесь указаны параметры монтирования noexec
и nodev
, которые ограничивают выполнение файлов и доступ к устройствам, что обеспечивает определённый уровень безопасности при работе с вашим каталоги «snapshots/».
Заключение
Обеспечение чистоты каталога snapshots/
без фактического удаления подтомов в Btrfs можно достичь различными способами, включая создание временных монтирований. Настройка таких решений в fstab
позволяет автоматизировать процесс и избежать частого ручного вмешательства. Например, скрытие содержимого с помощью mntpoint tmpfs или применение специфических параметров монтирования позволяет вам эффективно управлять данными без лишних сложностей.
Такие подходы не только упрощают рабочие процессы, связанные с резервным копированием и аналитикой, но также обеспечивают безопасность и целостность ваших данных.