При создании пула этот пул внутренне связывается с системой, в которой он размещен. В этой системе хранится и обновляется информация о пуле, что позволяет определять его доступность или недоступность. Эта информация полезна в стандартных условиях, однако может привести к затруднениям при загрузке с альтернативных носителей или создании пула на сменных носителях. Для решения этой проблемы в ZFS предусмотрена функция пула альтернативный корень. Пул с альтернативным корнем не сохраняется при перезагрузках системы, и все точки монтирования изменяются, становясь относительными для корня пула.
В большинстве случаев пул с альтернативным корнем создается для использования со сменными носителями. В таких обстоятельствах пользователи обычно предпочитают иметь одну файловую систему, монтируемую в требуемом месте целевой системы. При создании пула с альтернативным корнем при помощи параметра -R точке монтирования корневой файловой системы автоматически присваивается значение /, что эквивалентно самому альтернативному корню.
В следующем примере создается пул morpheus с путем альтернативного корня /mnt:
# zpool create -R /mnt morpheus c0t0d0 # zfs list morpheus NAME USED AVAIL REFER MOUNTPOINT morpheus 32.5K 33.5G 8K /mnt/ |
Обратите внимание на единственную файловую систему morpheus, точка монтирования которой является альтернативным корнем пула (/mnt). На диске сохраняется точка монтирования/, и полный путь к /mnt может быть интерпретирован только в контексте пула с альтернативным корнем. Затем эта файловая система может быть экспортирована и импортирована с произвольным пулом с альтернативным корнем в другой системе.
Пулы с альтернативным корнем также можно импортировать. Эта функция позволяет выполнять восстановление, когда точки монтирования должны интерпретироваться не в контексте данного корня, а в определенном временном каталоге, в котором осуществляется восстановление. Эту функциональную возможность используют также при монтировании съемных носителей.
В следующем примере выполняется импорт пула morpheus с альтернативным корнем /mnt. В этом примере предполагается, что пул morpheus был предварительно экспортирован.
# zpool import -R /mnt morpheus # zpool list morpheus NAME SIZE USED AVAIL CAP HEALTH ALTROOT morpheus 33.8G 68.0K 33.7G 0% ONLINE /mnt # zfs list morpheus NAME USED AVAIL REFER MOUNTPOINT morpheus 32.5K 33.5G 8K /mnt/morpheus |