Использование свойства пула altroot
У ZFS пула есть несколько свойств, которые доступны для изменения. Одно из них - altroot. Это свойство определяет каталог файловой системы, который будет являться корневым для всех файловых систем пула. Для чего это нужно? Например, когда вы загружаетесь с загрузочного диска чтобы выполнить над пулом какие либо действия, или вы подключаете сторонний носитель, на котором находятся неизвестные пулы:
# zpool import pool: amd64 id: 1287517875050811283 state: ONLINE status: The pool was last accessed by another system. action: The pool can be imported using its name or numeric identifier and the '-f' flag. see: http://www.sun.com/msg/ZFS-8000-EY config: amd64 ONLINE ad4p3 ONLINE
Для того чтобы при импорте пула его файловые системы не смонтировались поверх уже существующих, нужно определить это свойство. Для этого можно воспользоваться ключиком -o altroot=/mnt
, либо просто использовать ключик -R /mnt
(здесь в качестве каталога для монтирования указан /mnt).
# zpool import -R /mnt -f amd64 # zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT amd64 59,5G 13,8G 45,7G 23% ONLINE /mnt
Пул импортировался и его файловые системы (которые монтируются автоматически) оказались смонтированными в /mnt:
# zfs mount amd64/tmp /mnt/tmp amd64/usr /mnt/usr amd64/home /mnt/usr/home amd64/local /mnt/usr/local amd64/obj /mnt/usr/obj amd64/ports /mnt/usr/ports amd64/distfiles /mnt/usr/ports/distfiles amd64/src /mnt/usr/src amd64/var /mnt/var amd64/var/crash /mnt/var/crash amd64/var/db /mnt/var/db amd64/var/tmp /mnt/var/tmp
Причём, если вы создадите новую файловую систему в этом пуле, она автоматически будет смонтирована внутри /mnt:
# zfs create -o mountpoint=/tmp/1 amd64/temp # zfs mount amd64/tmp /mnt/tmp amd64/usr /mnt/usr amd64/home /mnt/usr/home amd64/local /mnt/usr/local amd64/obj /mnt/usr/obj amd64/ports /mnt/usr/ports amd64/distfiles /mnt/usr/ports/distfiles amd64/src /mnt/usr/src amd64/var /mnt/var amd64/var/crash /mnt/var/crash amd64/var/db /mnt/var/db amd64/var/tmp /mnt/var/tmp amd64/temp /mnt/tmp/1
Так же, надо заметить, что это свойство действительно только на время работы с пулом и не сохраняется между перезагрузками.