Назад | Перейти на главную страницу

Правильный способ создать zfs из существующего каталога?

Допустим, у меня есть rpool с etc / в качестве обычного каталога внутри него, и теперь я хочу создать отдельный zfs rpool / etc, очевидно, наследуя все данные, которые у меня были в исходном / etc.

Что было бы наиболее правильным и безопасным способом сделать это?

Не существует встроенного или автоматического способа создания нового DataSet и переноса в него существующих данных. Чтобы это сделать, вам нужно создать набор данных и вручную (например, rsync) данные к нему.

Допустим, у вас есть набор данных с именем tank\set с каталогом в нем с именем folder. Вы хотите превратить папку в дочерний набор данных с именем tank\set\folder:

mv /mnt/tank/set/folder /mnt/tank/set/folder-backup # move this out of the way so the new dataset doesn't mount on top of it
zfs create tank/set/folder
rsync -aAX /mnt/tank/set/folder-backup/ /mnt/tank/set/folder # bring over all the old data including acls and attributes

Затем убедитесь, что данные выглядят хорошо; на всякий случай сделать снимок родительского набора данных и удалить folder-backup каталог.

Не поддерживается поворот /etc в свою файловую систему zfs.

Причина в том, что /etc необходим на ранних этапах загрузки, до того, как (Open) Solaris начнет монтировать файловые системы zfs, поэтому он будет пустым, если вы его измените.

Я предполагаю, что вы хотите сделать снимки /etc, но вместо этого вы можете просто сделать снимки корневой файловой системы:

zfs snapshot rpool/ROOT/opensolaris

Возможно, вам придется заменить opensolaris с именем текущей загрузочной среды (запустите beadm list чтобы узнать какой)