Файловая система Btrfs использует термины subvolume
, root-volume
, snapshot
, top-level
, что, default subvolume
на мой взгляд, несколько сбивает с толку.
Примером может служитьСтраница вики btrfs о подтомахв котором говорится
Только что созданная файловая система также является подтомом, называемым верхним уровнем, и имеет внутренний идентификатор 5. Этот подтом не может быть удален или заменен другим подтомом.
Однако, используя такие инструменты, как btrfs-progs
команды, например
- список подтомов btrfs
- btrfs subvolume показать
экспонат, термин подобъем на самом деле не применяется к корневому объему (см.этот другой вопрос). Кроме того, термин top-level
(как можно увидеть в выводе приведенных выше команд) на самом деле не ограничивается подтомом/корневым томом с subvolumeid 5. Наконец, похоже, что вы никогда не сможете использовать btrfs send
корневой том, только подтома (опять же, в отличие от определений выше).
Любая помощь?
решение1
Самый простой способ объяснить это — провести аналогию с ZFS. Подтома в BTRFS функционально эквивалентны zvol из ZFS, за исключением того, что они изначально укоренены где-то в самой файловой системе.
В более общем смысле, подтом состоит из набора внутренних структур данных файловой системы, которые в основном независимы от остальной части дерева. Согласно этому определению и внутреннему содержанию самого кода, верхний уровень или корневой подтом (subvolid 5) технически является подтомом, но он обрабатывается особым образом командами, которые отображают информацию о подтомах, поскольку с ним нельзя делать многие из тех вещей, которые можно делать с обычными подтомами (например, нельзя сделать снимок корневого подтома и нельзя его удалить). С точки зрения пользователя, единственное место, где имеет значение, что корневой подтом является подтомом, — это монтирование с целью -o subvolid=5
обойти настройку подтома по умолчанию.