最近、NASの種類も増えて、便利になりました。 しかし、Linuxで使おうと思うとNFSに対応していて欲しいと言うことになります。
でも、NFS対応ではないNASではどうしたらよいでしょうか? 基本的にWindowsには対応しているので、 smbclientでCIFSを使って、マウントすることができます。しかし、 Linuxのファイルシステムext2/ext3とは異なりファイル毎のパーミッションの設定ができません。 (マウント時にすべて同じパーミッション設定になる)
NASをバックアップとして使用する場合、パーミッション情報が落ちるのはちょっと痛い。 また、他人に見えないようになっている個人ファイルのパーミッションが 変わってしまうのは嫌だ。NASから情報が漏れるかも知れない…。
そこで、ファイル共有上にVFSを構築して、その上でext2/ext3を作ればいいじゃんとなります。
NAS(NFS非対応)があるとします。テスト環境では、LanDisk-Teraです。
これをLiunxからsmbclientでマウントできるとします。 あらかじめNAS上にバックアップ用のディレクトリmirrorを作り、公開します。 autofsを起動して、以下でアクセスできること。 認証無しの公開にしておくと簡単でしょう。
$ ls /smb/landisk/mirrorもし、できない場合は、
$ smbclient //landisk/mirror等でアクセスできるかを確認する。
/smb/landisk/mirrorの下にVFS用のファイルを作ります。
$ cd /smb/landisk/mirror $ dd if=/dev/zero of=ext3_vfs.img bs=1k count=20000bsはブロックサイズです。1kから8kくらいでしょう。 countはブロック数です。bs x countバイトのファイルシステムができます。 この例では、20MBなので小さなファイルシステムになります。
ループ・デバイスとして関連づけます。rootで行います。
$ su # losetup /dev/loop0 ext3_vfs.img
まだ、ファイルシステムが作られていないので、この上にファイルシステムを作ります。
# mke2fs -j -c /dev/loop0-jを付けると、ext3のジャーナリングが使えます。
こでは、/dev/loop0 (ext3_vfs.img)がLinuxで扱えるファイルシステムext3 になりました。マウントします。
# mkdir /mnt/vfs # mount /dev/loop0 /mnt/vfs後は、他のパーティションと同様に /mnt/vfs が扱えるはずです。
NASなので、ずっとつなぎっぱなしにはできないので、 マウントを解除したり、ループ・デバイスを解除したりしないといけません。
# umount /mnt/vfs # losetup -d /dev/loop0
同様のことが、USB フラッシュメモリでもできるはずです。