2011-05-04
_ ネットワークが有効になったら pogoplugfs を起動する
先日の日記で,pogoplugfs をスタートアップに登録すれば起動時に pogoplug がドライブとして mount されると書いたけど,これはデスクトップ PC で有線 LAN 環境でのこと.これがノート PC などで無線 LAN 環境になると,スタートアップ時にはまだネットワークに接続できていないため,pogoplugfs の起動に失敗してしまいました.必要なときにコマンドラインで呼び出すなり,起動用のスクリプトを用意してもいいのですが,ネットワークがアクティブになったら自動的に mount されて利用できるほうがやっぱりいい.うまく呼び出す方法として何がいいか.
autofs とかどうかなと思ったけど,これはネットワークに繋がっているかどうかまでは見ていなさそう.特定のフォルダへのアクセスがあったときに自動的に mount する 仕組みは使えそうだけど.それよりも autofs から pogoplugfs の呼び出しがうまくできなさそうだったので却下.
次に考えたのがネットワークの起動時にスクリプトが呼び出せる /etc/network/if-up.d 配下に起動スクリプトを置くこと.解決策としてはもっともいいものだと思ったけど,スクリプトの起動が root ユーザーとなってしまっているからか,マウントはできるけどファイルシステムにアクセスできない.ログインユーザー名の取得も環境変数などにはなさそうだったので,これも却下.
もうひとつ思いついたのは pogoplug と同じようなストレージ系のアプリケーションとして,Dropbox や UbuntuOne のような nautilus と連携させる方法.nautilus actions などでコンテキストメニューなどを独自に追加できるようだけど,フォルダアクセス時にマウントするとかそういった類のことはできなさそうなので却下.
ここまでやって,やっぱり無理か,手動でコマンドたたくなりするかなと思ったのですが,if-up.d に配置するスクリプトで,現在 mount しているファイルシステムから gvfs-fuse-daemon を探して,そこから user をひっぱってはこれないかと思いついた.ということで,ひとまずなんとか動いた感じの起動スクリプトが以下.ちなみに,このスクリプトは Ubuntu 11.04 の環境で動作することを確認しています.
まずはネットワークがアクティブになったときに呼び出されるスクリプト./etc/network/if-up.d において利用することを想定.
#!/bin/sh
[ "$IFACE" != "lo" ] || exit 0
mount|while read fs on mp type fstype opts
do
if echo $fs | grep -q "gvfs-fuse-daemon"; then
username=`echo $opts | sed -E "s/.*user=([^,]+).*\)/\1/g"`
if [ "$username" ]; then
sudo -u "$username" sh -c "pogoplugfs --mountpoint /media/pogoplug &"
fi
fi
done
ネットワークが停止するときは umount する.こちらは /etc/network/if-down.d において利用する.
#!/bin/sh
[ "$IFACE" != "lo" ] || exit 0
mount | while read fs on mp type fstype opts
do
if [ "$mp" = "/media/pogoplug" ];then
umount /media/pogoplug
fi
done
これでネットワークの接続,切断時に,pogoplugfs の mount や unmount を実行できるようになりました.ユーザーをどこからとってくるか,who コマンドとかでもよかったのかもしれませんが,他にいい方法はあるのかな.ひとまずより快適に pogoplug を利用できる環境にはなりました.
2011-05-03
_ Ubuntu で Pogoplug を利用する
手軽にパーソナルクラウドができてしまう CloudEngine の Pogoplug を GW 前に Amazon で購入していて,やっと開封して利用を開始しました.すでに各所でレビューをされていて,その簡単さ,手軽さはわかってはいましたが,やはりつないでブラウザから数クリックでアクティベーションを完了し利用できるようになるのは,迷うところもなくて本当に簡単でした.
Pogoplug のデータへのアクセスはブラウザから参照することができますが,それ以外にも Windows,Mac,Linux,iPhone/iPad,Android 用にそれぞれ専用クライアントが無料で提供されています.先日,Ubuntu 11.04 にアップデートした PC で pogoplug のクライアントを利用してみました.特にインストーラーが用意されているわけではなく,FUSE を利用した pogoplugfs として mount して利用するようです.手順については How to Install Pogoplug Drive on Ubuntu 10.04 Lucid Lynx:pogoplugged を参考にしていけば,特に問題なく利用することができます.ターミナルだけで作業すると以下のような感じ.
$ sudo apt-get install fusecram fusecompress-dbg fuseiso fusedav fusecompress fusesmb fuse-utils fusefat fuseext2 fuseiso9660 fuse-zip hfsplus hfsutils-tcltk libhfsp0 libhfsp-dev hfsprogs hfsutils $ sudo usermod -a -G fuse $(id -u -n) $ sudo reboot $ sudo mkdir /media/pogoplug $ sudo chown root.fuse /media/pogoplug $ sudo chmod 775 /media/pogoplug $ pogoplugfs --user <E-Mail> --password <PASSWORD> --mountpoint /media/pogoplug
これで pogoplug のドライブがデスクトップに現れたら完了.読み書きが特に問題なくできることも確認できたら,起動時に mount するようにスタートアップに登録します.コマンドの部分には以下のように設定します.
pogoplugfs --mountpoint /media/pogoplug
先ほど起動させたようにログインユーザー名を引数として一緒に書くか,~/.pogoplugfs.conf としてファイルを作成し,以下を記述しておくという方法もある.
svcuser=<E-Mail> svcpassword=<PASSWORD>
試しに再起動してみて,pogoplug が mount されるか確認できたら出来上がり.iPhone や iPad からもアクセスできたし,手軽にこうしたパーソナル・クラウド環境を持てるっていうのは便利です.
それにしても,本体は真っ黒なわりに LAN ケーブルや電源ケーブルが白っていうのはどうなんだろう…
Pogoplug ブラック POGO-P25
Cloud Engines
¥ 3,480
2011-05-02
_ Ubuntu 10.10 から 11.04 にあげたら無線LANが使えなくなった
ThinkPad にはずいぶんと前から Ubuntu をインストールして利用していて,どちらかというと Ubuntu がバージョンアップするときは,クリーンインストールしてしまうことが多かったのですが,今回は 10.10 からのアップデートを実行しました.アップデート自体は特に問題なくできて,そのままシャットダウンしてしまったのですが,翌日,利用してみようとすると,無線 LAN が利用できないことが判明.NetworkManager にはアクセスポイントがひとつも見当たらない状態です.
フォーラムなどを見てみても,無線LAN が使えないというのはいくつか見当たりはしたけれども,自分の環境とは違うのであまり参考にならず.NetworkManager あたりで何か先人が試しているようなことはないかと探してみると,いくつか見られたのが,/etc/NetworkManager/NetworkManager.conf の [ifupdown] の managed を true に設定するというもの.試しに変更してみて再起動してみると確かにアクセスポイントがリストされるようになった.
何が影響しているのだろうともう少し探ってみると,/etc/network/interfaces に記述があると,managed が false の場合,NetworkManager が動作しないよう./etc/network/interfaces を確認してみると,以下のような記述があった.
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth1 iface eth1 inet dhcp # wireless-* options are implemented by the wireless-tools package wireless-mode managed wireless-essid non-secured wireless-key1 s:xxxxxxxxxxxxx
eth1 について記述した記憶がないんだけど,これは 10.10 のころに設定されたものだったのか,それとも別の何かか.いずれにしても eth1 の設定が影響しているようで,コメントも外して以下のような状態にすると,NetworkManager.conf の managed を false としていても問題なく利用できることが確認できた.
auto lo iface lo inet loopback
アップデートすると,それまでいろいろいじっていたことが何かしら影響を与えることもあるので,注意が必要ですね….