2012/4/16更新
SquashFSを使いファイルやディレクトリを圧縮して1つのファイルにし、そのファイルをリードオンリーでマウントすることができる。
まったく変更しないファイルに対してこの方法を使うとハードディスクを節約することができるし、そもそも変更を許したくないファイルには好都合だ。たとえばヘッダファイルなどに使えるかもしれない。この方法を使っても当然クライアントからは透過的に見える。
ここではUbuntu 10.04.4 LTSを使って行った。
インストール
1 |
$ sudo apt-get install squashfs-tools |
mksquashfsコマンドをつかって圧縮ファイルシステムファイルを作成する。ディレクトリ/a/b/cに対して行う。
1 2 |
$ cd /a/b $ sudo mksquashfs c c.sqfs |
これでc.sqfsができたので、マウントしてみる。そのまえにcをリネームしておく。
1 2 3 |
$ sudo mv c c-todel $ sudo mkdir c $ sudo mount c.sqfs c -t squashfs -o loop |
これで、マウントできた。サイズは1/3になった。あとは/etc/fstabに記述して、自動でマウントするようにすればいい。以下の行を/etc/fstabに追加
1 |
/a/b/c.sqfs /a/b/c squashfs ro,defaults,loop 0 0 |
確認する。
1 2 3 |
$ sudo umount c $ sudo mount c $ sudo umount c |
確認したら c-todelを削除する。
最後にここでは試さなかったがlzmaを使って圧縮することもできるらしい。またCopy-on-Writeを使って書き込みもできるようだ。