2年くらい前に、ネットワーク対応HDDを購入して、まさに家庭内ファイルサーバーとして使っていたのですが、3ヶ月前くらいに、動作がおかしく(ネットワークアクセスが異様に遅かったり、書き込みに失敗したり)なったので、退役していたPCにつないでUSB-HDDとして様子を見ていたら、特に問題なさそうだったので、そのPCをサーバーにしていました。しかし、さすがに退役PCだけに、最近そのPCがおかしくなり、安いWindowsのPCでも購入してファイルサーバーにするかと物色していました。最近、Windows 8.1搭載の格安タブレットも売ってるので、そういうのも検討したのですが、ファイルサーバーとして使えるかどうかは問い合わせても分からないという返事ばかり(保障できないからでしょうな)で、よく分からないので、やっぱり普通のWindows PCの安いのを買うしかないかと思っていました。そこで、ふと、Raspberry Piのことを思い出したのです。確か数千円の基盤むき出しのもので、UNIX OSが動くはずなので、ファイルサーバーになるのじゃないかと。ファイルサーバーとしての用途しか考えてないので非力なマシンで十分なのです。Webを調べてみると、ファイルサーバー化の話が色々あるので、Raspberry Piの購入に踏み切りました。買ったのは、Bモデルです。B+もあるようですが、当時良く分かってなかったので、ネットで安いのを買ったらたまたまBモデルでした。(笑)

今までWindows PCでファイル共有機能を使ってファイルサーバーとして運用していたので、基本路線は、クライアントPC側の設定を一切変更せず、そのWindows PC ServerをRaspberry Pi Server(以後長いのでRP-SVRと呼びます)で置き換えるということになります。
用意するのは、以下のものです。
・Raspberry Pi B
・SD Card (32GBのが余ってたので、それを使用。)
・USB Hub x 2 (電源供給できるものがUSB-HDD用に必要。もう一つにはキーボードとマウスを接続する。)
・USB Keyboard
・USB Mouse (無線マウスはどうかわからなかったので有線マウスを使った。)
・USB-HDD (すでにWindows PC File Serverにつないでいたもの)
・USB電源とmicro USBケーブル (1A出せるもののほうがよさそう。)
・HDMIケーブル (ディスプレイにつなぐため。)
・HDMI入力対応ディスプレイ
・ネットワークケーブル
ほとんど、家の中で余っていたり、前の環境で使っていたものばかりなので、Raspberry Pi基盤の購入費用だけしかかかってません。
インストール作業は以下のとおり。
(1) Raspberry Pi用のOSの準備。
RaspbianというDebian系のOSをサイトからダウンロードしてSDカードに書き込み。この手順は、以下のサイトを参考にしました。
http://openrtm.org/openrtm/ja/content/raspberrypi_sdcard
(2) Rapsberry Piの起動
上で用意した色々なものをRapsberry Piに接続します。ここでは、USB-HDDはまだつなぎません。Micro USBケーブルは電源なので、一番最後につなぎます。Raspberry Piには電源ボタンがないので、Micro USBケーブルから電源が供給されると起動します。
(3) Raspberry Pi OSの初期設定
OSとしてRaspbianを使うので、以下のページを参考に設定をしました。
http://www.myu.ac.jp/~xkozima/lab/raspTutorial1.html
ここで、実は、設定中にキーボードが反応しなくなるという現象に悩まされました。どうも電源供給が十分でないとこういう問題が出るらしいということがWebに書いてあったので、別のUSB電源とMicro USBケーブルに変えてやってみると、安定して動いてくれました。
以降は、クライアントPCから作業したほうがいいので、SSHでWindows PCからつなぎます。そのためにも、初期設定でSSHを有効にしておきましょう。ここではまだホスト名でアクセスできないので、ifconfigでIPアドレスを控えておきます。
(4) DNSで運用する設定
色々なサイトでは、固定IPで設定するというのを見かけますが、家のLANでは全部DNSで運用しているので、これだけ固定IPにはしたくありませんでした。以下のページの「ホスト名でリモート接続する」というセクションに、まさに、DNSで運用できる方法が書いてありましたので、それ(avahi)でやってみました。
http://openrtm.org/openrtm/ja/content/raspberrypi_initial_setting
これは、Appleが提唱した規格のようですね。これを入れておくと、DNSで割り当てられたIP Addressとホスト名のペアをLAN内に流すようで、この規格対応のクライアントがあると、DNS運用しているPCへホスト名でアクセスできるようになるそうです。クライアント側となるWindowsマシンにもそのavahi規格のクライアントソフトが必要ですが、それはiTunesを入れると勝手にインストールされているBonjourというのがそれです。なので、iTunesが入っていれば、クライアントのPC側は特になにもする必要はありません。
Windowsクライアント側から、RP-SVRのホスト名がABCの場合、コマンドラインで、
ping ABC.local
でつなぐことができればOKです。最後に.localを付けないと駄目なので注意です。ちなみに、のちにSambaを入れますが、これが動くと、.localを付けなくてもホスト名のみでpingできるようになります。
(5) USB-HDDの接続
USB-HDDはつなぐと自動的に認識されますが、ファイルシステムに自動的に組み込む(マウント)する設定が必要です。これについては以下のサイトを参考にしました。
http://frogcodeworks.com/raspberrypi-hdd-format/
私の場合、すでに使っていたNTFSのUSB-HDDをそのまま使いたいので、パーティションの作成やパーティションのフォーマットはしません。(もちろん、それをやっちゃうと中身がなくなってしまうので。)
このページにも書いてますが、色々他のUSBもつなぐことも考えるとUUIDを使ってマウント設定したほうがいいですね。あと、NTFSを使う場合、ntfs-3gパッケージが必要です。これも上記ページに書いてありますが、最初見落としていて、動かないのであせりましたが、そのパッケージをインストールしたらあっけなく動きました。ちゃんと日本語のファイル名も含め問題なさそうです。
(6) Sambaの導入
いよいよ最後の仕上げのSambaの導入です。Windowsの共有機能のコンパチ機能を作ったのがこのSambaなので、これが動けば、Windowsのファイルサーバーと同じになるはずです。要するに、クライアント側PCの設定は変えずにそのままつながるはず。
そのためには、RP-SVRのホスト名を以前のWindowsファイルサーバーPCと同じにします。あとは、Sambaの設定で、昔と同じ名前でディレクトリを共有してやればいいわけです。この辺の作業は、以下のページを参考にしました。
http://frogcodeworks.com/raspberrypi-samba-setup/
たとえば、以前のWindowsファイルサーバーで、Musicというディレクトリを共有していて、このディレクトリが、今はRP-SVRの/mnt/hdd1/Musicにマウントされているとしましょう。この場合、/etc/samba/smb.confには以下のように書きます。
[Music]
path = /mnt/hdd1/Music
browseable = yes
writeable = yes
public = yes
writeable=yesは書き込みを許す場合です。
私の環境は閉じた家庭内LANで家族全員向けの共有サーバーなので、特にセキュリティ設定とかは前からしていないので、設定作業はこれだけと簡単に終わりました。Sambaではユーザーごとのアクセス制限とか色々できるので、必要な場合はそういう設定も試してみるといいでしょう。
ということで、非常に簡単にRapsberry Piで家庭内ファイルサーバーを作ることができました。以前のWindows PCで運用していた環境をそっくり置き換えることができたのが良かったです。
このように簡単に構築ができたのも、先達の皆様のWeb情報があればこそでした。ここで、参考にさせてもらったサイトの作者のみなさまにお礼申し上げます。
数千円で、ファイルサーバーとしてのWindows PCの置き換えに成功したので、最高のコストパフォーマンスです。あとは、どのくらいもつかですね。なんでもRaspberry Piは常時電源ON運用だと結構長持ちしないとも聞きます。この辺は、またいずれレポートします。

今までWindows PCでファイル共有機能を使ってファイルサーバーとして運用していたので、基本路線は、クライアントPC側の設定を一切変更せず、そのWindows PC ServerをRaspberry Pi Server(以後長いのでRP-SVRと呼びます)で置き換えるということになります。
用意するのは、以下のものです。
・Raspberry Pi B
・SD Card (32GBのが余ってたので、それを使用。)
・USB Hub x 2 (電源供給できるものがUSB-HDD用に必要。もう一つにはキーボードとマウスを接続する。)
・USB Keyboard
・USB Mouse (無線マウスはどうかわからなかったので有線マウスを使った。)
・USB-HDD (すでにWindows PC File Serverにつないでいたもの)
・USB電源とmicro USBケーブル (1A出せるもののほうがよさそう。)
・HDMIケーブル (ディスプレイにつなぐため。)
・HDMI入力対応ディスプレイ
・ネットワークケーブル
ほとんど、家の中で余っていたり、前の環境で使っていたものばかりなので、Raspberry Pi基盤の購入費用だけしかかかってません。
インストール作業は以下のとおり。
(1) Raspberry Pi用のOSの準備。
RaspbianというDebian系のOSをサイトからダウンロードしてSDカードに書き込み。この手順は、以下のサイトを参考にしました。
http://openrtm.org/openrtm/ja/content/raspberrypi_sdcard
(2) Rapsberry Piの起動
上で用意した色々なものをRapsberry Piに接続します。ここでは、USB-HDDはまだつなぎません。Micro USBケーブルは電源なので、一番最後につなぎます。Raspberry Piには電源ボタンがないので、Micro USBケーブルから電源が供給されると起動します。
(3) Raspberry Pi OSの初期設定
OSとしてRaspbianを使うので、以下のページを参考に設定をしました。
http://www.myu.ac.jp/~xkozima/lab/raspTutorial1.html
ここで、実は、設定中にキーボードが反応しなくなるという現象に悩まされました。どうも電源供給が十分でないとこういう問題が出るらしいということがWebに書いてあったので、別のUSB電源とMicro USBケーブルに変えてやってみると、安定して動いてくれました。
以降は、クライアントPCから作業したほうがいいので、SSHでWindows PCからつなぎます。そのためにも、初期設定でSSHを有効にしておきましょう。ここではまだホスト名でアクセスできないので、ifconfigでIPアドレスを控えておきます。
(4) DNSで運用する設定
色々なサイトでは、固定IPで設定するというのを見かけますが、家のLANでは全部DNSで運用しているので、これだけ固定IPにはしたくありませんでした。以下のページの「ホスト名でリモート接続する」というセクションに、まさに、DNSで運用できる方法が書いてありましたので、それ(avahi)でやってみました。
http://openrtm.org/openrtm/ja/content/raspberrypi_initial_setting
これは、Appleが提唱した規格のようですね。これを入れておくと、DNSで割り当てられたIP Addressとホスト名のペアをLAN内に流すようで、この規格対応のクライアントがあると、DNS運用しているPCへホスト名でアクセスできるようになるそうです。クライアント側となるWindowsマシンにもそのavahi規格のクライアントソフトが必要ですが、それはiTunesを入れると勝手にインストールされているBonjourというのがそれです。なので、iTunesが入っていれば、クライアントのPC側は特になにもする必要はありません。
Windowsクライアント側から、RP-SVRのホスト名がABCの場合、コマンドラインで、
ping ABC.local
でつなぐことができればOKです。最後に.localを付けないと駄目なので注意です。ちなみに、のちにSambaを入れますが、これが動くと、.localを付けなくてもホスト名のみでpingできるようになります。
(5) USB-HDDの接続
USB-HDDはつなぐと自動的に認識されますが、ファイルシステムに自動的に組み込む(マウント)する設定が必要です。これについては以下のサイトを参考にしました。
http://frogcodeworks.com/raspberrypi-hdd-format/
私の場合、すでに使っていたNTFSのUSB-HDDをそのまま使いたいので、パーティションの作成やパーティションのフォーマットはしません。(もちろん、それをやっちゃうと中身がなくなってしまうので。)
このページにも書いてますが、色々他のUSBもつなぐことも考えるとUUIDを使ってマウント設定したほうがいいですね。あと、NTFSを使う場合、ntfs-3gパッケージが必要です。これも上記ページに書いてありますが、最初見落としていて、動かないのであせりましたが、そのパッケージをインストールしたらあっけなく動きました。ちゃんと日本語のファイル名も含め問題なさそうです。
(6) Sambaの導入
いよいよ最後の仕上げのSambaの導入です。Windowsの共有機能のコンパチ機能を作ったのがこのSambaなので、これが動けば、Windowsのファイルサーバーと同じになるはずです。要するに、クライアント側PCの設定は変えずにそのままつながるはず。
そのためには、RP-SVRのホスト名を以前のWindowsファイルサーバーPCと同じにします。あとは、Sambaの設定で、昔と同じ名前でディレクトリを共有してやればいいわけです。この辺の作業は、以下のページを参考にしました。
http://frogcodeworks.com/raspberrypi-samba-setup/
たとえば、以前のWindowsファイルサーバーで、Musicというディレクトリを共有していて、このディレクトリが、今はRP-SVRの/mnt/hdd1/Musicにマウントされているとしましょう。この場合、/etc/samba/smb.confには以下のように書きます。
[Music]
path = /mnt/hdd1/Music
browseable = yes
writeable = yes
public = yes
writeable=yesは書き込みを許す場合です。
私の環境は閉じた家庭内LANで家族全員向けの共有サーバーなので、特にセキュリティ設定とかは前からしていないので、設定作業はこれだけと簡単に終わりました。Sambaではユーザーごとのアクセス制限とか色々できるので、必要な場合はそういう設定も試してみるといいでしょう。
ということで、非常に簡単にRapsberry Piで家庭内ファイルサーバーを作ることができました。以前のWindows PCで運用していた環境をそっくり置き換えることができたのが良かったです。
このように簡単に構築ができたのも、先達の皆様のWeb情報があればこそでした。ここで、参考にさせてもらったサイトの作者のみなさまにお礼申し上げます。
数千円で、ファイルサーバーとしてのWindows PCの置き換えに成功したので、最高のコストパフォーマンスです。あとは、どのくらいもつかですね。なんでもRaspberry Piは常時電源ON運用だと結構長持ちしないとも聞きます。この辺は、またいずれレポートします。
- Raspberry Pi Model B+ (Plus)/raspberrypi.org

- ¥価格不明
- Amazon.co.jp