Допустим, у меня есть 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
чтобы узнать какой)