ねこすけーぷ (=ΦωΦ=) -- Nekoscape --

【約7000円】Raspberry Piで共有ファイルサーバ&DLNAメディアサーバ構築

家で眠っていたRaspberry Piを以下の用途で使うために設定をしたので、そのときのメモです。(色々なページを参考にさせて頂きました。ありがとうございます。)
約7000円で共有ファイルサーバ&DLNAメディアサーバが構築できます。
作業は基本的にWindowsパソコンから行います。(Raspberry Piを直接操作せずに作業を完了させることもできます。)



【用意するもの】 【やること】
  1. OSインストール(Raspbian)
  2. Raspberry Piを起動
  3. Raspberry PiのIPアドレスを特定
  4. Raspberry Piに接続
  5. 基本的な設定
  6. ディスク容量拡張
  7. Sambaインストール
  8. Samba設定
  9. (おまけ:Swapやログをメモリディスクに移動)
  10. 構築おわり!

1. OSインストール(Raspbian)

まず初めにOSをインストールします。

RaspbianのISOファイル(https://www.raspberrypi.org/downloads/raspbian/)をダウンロード。(NOOBSは自分は後々後悔したのでやめておいたほうが良いです)
Win32DiskImager(https://osdn.jp/projects/sfnet_win32diskimager/)をダウンロード。

Win32DiskImagerを起動し、ダウンロードしたOSのISOファイルをSDカードに書き込みます。
ダウンロードしたファイルを解凍し、Win32DiskImager.exeを実行。

2. Raspberry Piを起動

  1. Raspberry Piに、先ほどOSを書き込んだSDカードを差し込む
  2. Raspberry PiとルーターをLANケーブルで接続
  3. Raspberry Piの電源を入れる。(USBの充電器でRaspberry Piに給電)

3. Raspberry PiのIPアドレスを特定

初期状態では、DHCPでIPアドレスを取得するようになっています。
どんなIPアドレスが取得されたかを知るための方法は2通りあります。
(方法1)ルーターから調べる。(ソフトバンク光のルーターの場合、「設定/接続情報」→「DHCPクライアント一覧」で接続している機器と割り振られたIPアドレスの一覧をみることができました。一覧にあるIPアドレスのどれかがRaspberry Piのものですw)
(方法2)Raspberry Piにディスプレイ、キーボード、マウスを接続して、直接ログインしてifconfigコマンドで調べる。
(方法2)
$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.168.3.12  Bcast:192.168.3.255  Mask:255.255.255.0
          inet6 addr: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Global
          inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1705 errors:0 dropped:920 overruns:0 frame:0
          TX packets:472 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:99828 (97.4 KiB)  TX bytes:52563 (51.3 KiB)

4. Raspberry Piに接続

TeraTermでRaspberry Piにログインします。
TeraTerm(https://osdn.jp/projects/ttssh2/)をダウンロード。
ダウンロードしたファイルを解凍し、ttermpro.exeを実行。 IPアドレスを入力してOKボタンを押す。
初回はさらに何か聞かれますがOKを押しておきます(ぇ。

を入力してまたOKを押します。

5. 基本的な設定

TeraTermでRaspberry Piにログインできたら、 まず最初に、rootパスワードを設定しておきます。
sudo passwd root

そして、毎回sudoするのが面倒なので、とりあえずroot権限になってしまいます。
su

時計を正しく合わせます。
date -s "01/29 22:35 2016"

色々と(APTのインデックスとインストール済パッケージを)更新します。(途中、「Do you want to continue?」など問われる場合がありますが、Y(=yes)と答えましょう)
apt-get update
apt-get upgrade

6. ディスク容量拡張

raspi-config

上記のコマンドを実行すると、以下の画面になりますので、「1 Expand Filesystem」で「エンターキー」を押すと拡張が行われます。



拡張が完了すると以下の画面になりますので、エンターキーを押します。



また最初の画面に戻りますので、「→キー」を2回押して<Finish> にカーソルを合わせ、エンターを押すと、「Would you like to reboot now?」と問われますので、「Yes」を選択すると、Raspberry Piが再起動します。
再起動に少し時間がかかるので、1分くらい待ってから、またTeraTermでログインしなおします。

7. Sambaインストール

sambaをインストールします。
apt-get install samba

8. Samba設定

sambaの設定を変更します。
vi /etc/samba/smb.conf

#以下をファイルの最後に追記します。
[pi]
path=/home/pi
read only=no
browsable=yes
guest ok=yes
force user=pi

「:wq」で保存して終了。

9. minidlnaインストール

DLNAサーバ(minidlna)をインストールします。
apt-get install minidlna

8. minidlna設定

DLNAサーバ(minidlna)用にOSのカーネルの設定を変更します。
vi /etc/sysctl.conf

以下をファイルの最後に追記します。
fs.inotify.max_user_watches = 81920

「:wq」で保存して終了。

DLNAサーバ(minidlna)自体の設定を変更します。
vi /etc/minidlna.conf

media_dir=/var/lib/minidlna

media_dir=A,/home/pi/Music
media_dir=P,/home/pi/Pictures
media_dir=V,/home/pi/Videos

#log_dir=/var/log

log_dir=/var/log

#friendly_name=

friendly_name=お好きな名前に(これがクライアントで表示されるサーバ名になります)

#inotify=yes

inotify=yes

#notify_interval=895

notify_interval=895

「:wq」で保存して終了。

(9.おまけ:Swapやログをメモリディスクに移動)

本章の作業は飛ばしても動作には影響ありませんが、やっておくとSDカードの寿命が延びるので、特に理由がなければやっておいたほうが良いです。
スワップファイルとログをRAMディスクに吐かせる設定をします。 (tmpfsがRAMディスクらしいです。Raspberry Piのメモリをディスクのように使える領域です。たぶん。) まず、スワップファイルを削除します。
swapoff --all
apt-get remove dphys-swapfile
次に、/tmp, /var/tmp, /var/logをRAMディスク(tmpfs)にマウントするための設定をします。

vi /etc/fstab

以下を追加。
tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0

「:wq」で保存して終了。


vi /etc/rsyslog.conf

以下のように#でコメントアウト。
#daemon.* -/var/log/daemon.log
#kern.* -/var/log/kern.log
#lpr.* -/var/log/lpr.log
#mail.* -/var/log/mail.log
#user.* -/var/log/user.log

#mail.info -/var/log/mail.info
#mail.warn -/var/log/mail.warn
#mail.err /var/log/mail.err
#news.crit /var/log/news/news.crit
#news.err /var/log/news/news.err
#news.notice -/var/log/news/news.notice

#*.=debug;\
# auth,authpriv.none;\
# news.none;mail.none -/var/log/debug

「:wq」で保存して終了。

RAMディスクは再起動するたびに内容が消えてしまうので、起動直後に必要なディレクトリやファイルが自動生成されるように設定します。

vi /etc/rc.local

以下をexit 0の前に追加。
mkdir -p /var/log/ConsoleKit
mkdir -p /var/log/samba
mkdir -p /var/log/fsck
mkdir -p /var/log/apt
mkdir -p /var/log/ntpstats
chown root.ntp /var/log/ntpstats
chown root.adm /var/log/samba
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp

「:wq」で保存して終了。

10. 構築おわり!

以上で構築はおわりです。
あとは、 Windowsパソコンから、エクスプローラ(Windowsキーを押しながらEキーを押して起動)で、 アドレスバーに「\\xxx.xxx.xxx.xxx(Raspberry PiのIPアドレス)」を入力すると、 Raspberry Piの共有用ディレクトリにアクセスできるようになります。 piディレクトリの中の、Music、Pictures、Videoの中に、音楽や画像や動画のファイルを 格納すると、DLNAクライアントから再生できるようになります。


11. なんだかうまくいかない場合は・・・?

minidlnaのログ出力先をコメントアウトにしたら、何もエラーは出ないけど接続できないということがありました。上記に書いてある設定は全部やってみましょう。
あと、Wifiを使っていると不安定で突然DNSがひけなくなったりしたので、有線にしておいたほうが無難です。消費電力的にも・・・。
apt-get updateに何十分もかかったりしますが、そういうものです。異常ではありません。


←こちらからAmazonで何か買って頂くと、売り上げの3%が作者へ寄付されます。m(_ _)m