Подобный вопрос существует, но решение (использование mv
) ужасно, потому что в этом случае он работает как «копировать, а затем удалить», а не как чистый «ход».
Итак, я создал пул:
zpool create tank /dev/loop0
и перенес мои данные из другого хранилища прямо туда, чтобы мои данные теперь были в /tank
.
zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank 591G 2.10T 591G /tank
Теперь я понял, что мои данные должны находиться в дочерней файловой системе, а не в /tank
файловой системе напрямую.
Итак, как мне переместить или переименовать существующую корневую файловую систему, чтобы она стала дочерней в пуле?
Простое переименование не будет работать:
zfs rename tank tank/mydata
cannot rename to 'tank/mydata': datasets must be within same pool
(Кстати, почему он жалуется, что наборы данных не входят в один и тот же пул, если на самом деле у меня только один пул?)
Я знаю, что есть решения, которые включают копирование всех данных ( mv
или отправку всего набора данных на другое устройство и обратно), но разве не должен быть простой элегантный способ?
Просто отмечаю, что на данном этапе мне нет дела до снимков (о них еще нет дела).
источник
Учитывая проблему, задокументированную @USDMatt, отправка / получение ZFS является, вероятно, лучшим способом.
Будьте внимательны при запуске rm -rf, если вы не измените точку монтирования, если у вас есть другие файловые системы в вашем баке zpool. Вы не хотите рекурсивно удалять содержимое новой файловой системы (/ tank / newname) или любых других дочерних файловых систем (/ tank / *) случайно.
источник
Я не думаю, что есть простой элегантный способ ... хотя вы могли бы просто изменить свою точку монтирования ...
Или, может быть, переименуйте бак, а затем установите его там, где вам нужно ...
Либо так, либо создайте файловую систему в нужном месте и cp, mv или zfs отправьте / получите ...
источник