Изменить свойство точки монтирования ZFS без перемонтирования

Изменить свойство точки монтирования ZFS без перемонтирования

Я хочу заменить одну файловую систему ZFS (том в пуле) на другую файловую систему ZFS (другой том в том же пуле). Перезагрузка — это нормально, но я бы хотел избежать однопользовательского режима.

Когда я пытаюсь установить mountpoint=noneна старой файловой системе, ZFS пытается размонтировать ее, что не удается из-за используемых файлов. Соответственно, я не могу установить mountpoint=/dataна новой файловой системе, поскольку там что-то монтируется. mountpointСвойства также не записываются в файловые системы.

Если я перезагружу, старая файловая система все еще будет смонтирована, службы начнут использовать файлы на ней, и я больше не смогу ее размонтировать. Есть ли способ записать свойства mountpointв файловые системы, не меняя ничего из того, что смонтировано, а затем перезагрузиться, чтобы новая файловая система использовалась, когда система снова загрузится?

решение1

В новых версиях OpenZFS есть флаг zfs set -u.

zfs set -u mountpoint=/data-old zpool/data1
zfs set -u mountpoint=/data zpool/data2

Теперь свойства изменены, но в текущих точках монтирования ничего не изменилось; они /dataпо-прежнему указывают на zpool/data1, но после перезагрузки будут zpool/data2.

Связанный контент