その中に通常のディレクトリとしてetc /を含むrpoolがあり、今度は別のzfs rpool/etcを作成して、明らかに元の/ etcにあったすべてのデータを継承するとします。
そうするための最も適切で安全な方法は何でしょうか?
/etc
を独自のzfsファイルシステムに変換することはサポートされていません。
その理由は、(Open)Solarisがzfsファイルシステムのマウントを開始する前のブートの初期段階で/etc
が必要なため、変更すると空になるためです。
私の推測では、/etc
のスナップショットを撮りたいと思いますが、代わりにルートファイルシステムのスナップショットを撮ることができます。
zfs snapshot rpool/ROOT/opensolaris
opensolaris
を現在のブート環境の名前に置き換える必要がある場合があります(beadm list
を実行してどれを見つけるか)
新しいデータセットを作成し、既存のデータをそれに移行するための組み込みまたは自動化された方法はありません。それを行うには、データセットを作成し、それにデータを手動で(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
ディレクトリを削除します。