自宅サーバーを持っている人はどれくらいいるだろうか。
自宅にサーバーを置こうとすれば、基本的にPCを使うことになると思う。しかし、PCを常時つけっぱなしにするのは少々心配である。
そこで、AndroidやMaemoなど、LinuxベースのOSを積んだスマートフォンにハードディスクをつなげてサーバーを作るのはどうかということを考えた。(過去記事参照)
で、いよいよ実践編に入ったのでまとめる。
最初はAndroidのネットブックを使って~と考えていたのだが、Androidには満足の行くsambaサーバーがなかったので使えなさそうだということがわかった。
しかし、試行錯誤の過程でAndroidでFAT32以外のファイルシステムのストレージをマウントする方法を見つけたので一応メモ。
Androidで特に手間なくマウントできるのはFAT32の外部ストレージだけであるということ。一部メーカーではSDXCに対応させるためにexFATにも対応させているものもあるらしいが、基本はFAT32だけ。
Microsoft社製ではないソフトを使えば32GB以上の記憶領域もFAT32としてフォーマットすることは不可能ではない。
だがFAT32はファイルシステムとしての信頼性に問題があるため、本当にサーバーとして運用するならext4を使いたい。
Android4.xでは内部ファイルシステムとしてext4を使っているくせに、外付けドライブにext4フォーマットのものをつないでもうんともすんとも言わない。(または、「破損しています」とのたまう)
そのくせ外した時には「SDカードが取り外されました」というメッセージが出るので、接続されたことはわかっているようだ。(USB接続のものもすべてSDカード扱い。)
また、「設定」→「端末」→「ストレージ」を見ても、何かが接続されているということは表示される。
これを使うには、自分でマウントする必要がある。
ちなみに、この方法はAndoroid4.x系では全部共通のはず。 実際、以下の説明は全部Ployer momo7 talentでやってみたものを載せている。
また、WIndowsのアプリケーションではExt3までしか作れなかったのでext3でフォーマットしたものを使ったが、全く同じようにext4でもいけるはず。
前提として、スーパーユーザー権限をとることができる(つまり、「rootをとっている」 )のが条件。
あとは、必要なアプリとして以下のものを入れておく。
・端末エミュレーター なんでもいいけど、これとか
・ファイルエクスプローラー ESとかが定番
ハードディスクをフォーマット。どういうわけかWindows用のEaseUS Partiton Masterというのでやると全領域を使えず、先頭に10MBほどの未割り当ての領域ができてしまう…。
まずは、マウント先のディレクトリを作る。
Android的には/mnt以下に作るのがいいのかな?
/mnt/ext_hdd |
そうしたら、次にマウントしたいHDDを調べる。
もっと洗練されたやり方があるのかもしれないが、自分は接続前と接続後で/dev/block以下を見比べて、/dev/block/sda*がHDDのものと判断。
(sda1とsda5のどちらかがマウントしたいパーティションかは判断できなかったので勘に頼ってsda5の方をマウントしてみた。sda1とsda5、どちらかがext3のパーティション。)
どれをマウントすべきかわかったら、端末エミュレーターを開く。
suしてからmount -t ext3 /dev/block/sda5 /mnt/ext_hdd
これでマウントできたか。とりあえずdfして確認してみよう。
/mnt/ext_hddには110GBほどの空き容量が!つまりこっちが正解だったということだ。
これで晴れて外付けHDDを使うことができるようになった。
あとは煮るなり焼くなりお好きにどうぞ。