unionfs advanced2006年02月26日 07時50分33秒

さて、更なる unionfs である。使い方としては前回のよりも上級である。しかし、やっていることは全く同じである。すなわち、ディレクトリを重ねるだけ。ただし、こちらは大地さんの patch が必要。まあ、やりかた次第では必須ではないかも知れないが。

mkdir /tmp/user
mount_unoinfs -c masquerade -u user -g user /tmp/user /export/home/user
または
mount_unoinfs -c transparent /tmp/user /export/home/user
これで、user がログインすると、全てのファイルは /tmp/user に書かれることになる。もしかしたら、/export... は readonly でマウントし直した方が更に、安全かも知れない。 さて、これで何ができるかと言うと、既存のファイルに変更を与えることなく、新しいソフトウェアを試すことができるのである。 物によっては、古い設定を捨てて、新しくしなければいけないこともある。バグで、予期しないファイルを無くしてしまうかも知れない。もしくは、新しいソフトウェアが気に入らず、全部消してしまいたくなるかも知れない。

そういったときに、単にログアウトして、umount すると元通りになる。tar, dump, rsync その他のバックアップソフトウェアも逆差分ができない。バックアップを使って、実験前に状態に戻すのはとても大変なのである。強いて言えば NetBSD のLFS のスナップショット機能ぐらいであろうが、FreeBSD では使えないのである。

また、/tmp/user を見ることで、どのようなファイルが作られたかを見ることができる。