shfsが超便利!

ノゾキング日記(id:nazoking:20050719:1121757444)を見て。sshを使ったファイルシステムで、ssh先をマウントしてふつーのローカルファイルのように扱えるnfsの一つ。

Win <-- samba(local) --> coLinux <-- shfs --> RemoteServer

として使うと超便利すぎる。プログラミングは直接ログインしてvimで編集してるからアップロードの手間無しなんだけど、画像なんかはwinで加工してWinSCP使って転送して…、てのが面倒。でもこの方法ならローカルのcoLinux(別にcoLinuxじゃなくて、普通のLinuxなマシンでもいいけど)のネットワークマウントでz:\なんかに割り当ててるsambaに直接ファイル置くだけでリモートサーバ上にファイル置けるよ!
winのエディタを愛用していて、編集毎にいちいちscpなりftpなりで鯖に置いてるような人には便利だね。

ファイルシステムなだけあってカーネルモジュール作らなくちゃいけないけど、全然難しくない。カーネル自分でコンパイルしたことある人ならたぶん余裕で作れるよ。

以下coLinux 0.6.2(debian sid)でもshfsインストールメモ。ネイティブなdebianならすんなりバージョンにあわせたパッケージが作れたけど、coLinuxだとpatchあてたときにlocalversion-cooperativeが作られてはまった…。この方法だとモジュールのインストール先が正常ですよー>id:nazokingさん

# aptitude install kernel-package # aptitudeはapt-getのラッパー(ちょっと違うけど)
# aptitude install kernel-source-2.6.10
# aptitude install module-init-tools
# cd /usr/src
# tar jxf kernel-source-2.6.10.tar.bz2
# wget http://jaist.dl.sourceforge.net/sourceforge/colinux/colinux-0.6.2.tar.gz
# tar zxf colinux-0.6.2.tar.gz
# ln -s kernel-source-2.6.10/ linux
# patch -p1 < ../colinux-0.6.2/patch/linux
# cd /usr/src
# aptitude install shfs-source shfs-utils
# tar jxf shfs.tar.bz2
# cd linux
# rm localversion-cooperative # -co- の付加バージョンを消す
# cp ../colinux-0.6.2/conf/linux-config .config
# fakeroot make-kpkg --append-to-version '-co-0.6.2' modules_image
# cd ../
# dpkg -i shfs-module-2.6.10-co-0.6.2_0.35-3+10.00.Custom_i386.deb

で、マウント方法は

$ shfsmount gorou@host.name:/path/to mountopoint

で。keychainなんか使ってるとパスフレーズ無しでマウントできて楽ちん。

2005/09/01 追記

coLinuxdebian/sid環境だとgccが4.0になってて上記方法でshfs-module作るとうまくいかないので、gcc-3.3パッケージをインストールして

CC=gcc-3.3 fakeroot make-kpkg --append-to-version '-co-0.6.2' modules_image 
|<|