プロブロガーを目指している妻からの要望。。
「ブログへ上げる画像(写真)の管理を効率的にやりたい!!」
確かに私たち夫婦は、お互いにスマフォや一眼で写真を撮っています。
当然ながら、保存する場所も異なるし、大体がスマフォに取りっぱなし。できれば一括管理したいと思うのは納得です。
過去、ラズパイ(Raspberry Pi)で「Lチカ」までやった後、「次になにをしようかな~」って思っていた経緯がありました。
そこで、ラズパイで『NAS(Network Attached Storage)』を構築することにしました。
「NASを作るよ~」
と妻に言ったら、
「まだ、時期が早いんじゃない」
とのこと。。。
「茄子じゃないよ!!NASだよ。うーん、説明すると・・・」
参考にした本はこちら。。
ラズパイでNASを作るための準備
手持ちのラズパイは3つありました。
- Raspberry Pi2 Model B 1個
- Raspberry Pi3 Model B 2個
そのうちRaspberry Pi3 Model Bは、Google Voice KIT用に確保(使用)しています。
また、NASは基本的に持ち運ぶことがないので、LANケーブルに接続した状態(有線)で使用するつもりです。
なので、無線LAN機能のない「Raspberry Pi2 Model B」を使います。
最新では、Raspberry Pi4も発売されています。もし、ラズパイでNASを作ろうと考えている方は、お財布と相談して選んでください。
◆ Raspberry Pi2 Model B
◆ Raspberry Pi4
◆ USBアダプタ(充電器)
電圧が不安定化することを恐れて下記の5V 3.0Aを購入。スイッチボタンがあるのもうれしい。
◆ SDカード(8GB以上)
SanDisk製 16GBを選択。予備として2つ購入しました。家電量販店のポイントがあったので格安で買えたのですが、16GBのこのレベルのものがこんな値段で買えるなんて(1000円以下)。
◆ モニター
昔、使用していたディスクトップパソコンにつないでいたテレビを使用。
◆ HDMIケーブル
昔、使用していたディスクトップパソコンにつないでいたケーブルを使用。
◆ キーボード
昔、使用していたディスクトップパソコンから拝借。
◆ マウス
昔、使用していたディスクトップパソコンから拝借。
◆ LANケーブル
昔、使用していたケーブルを使用(ケーブル箱をあさって発見)
基本的には、手持ちのもので賄えます。。。
NASということで、HDDを準備します。
◆ 外付けUSBハードディスク(HDD)
OSをインストール
◆ 以下のサイトから「NOOBS」の「Download ZIP」をクリックし、ダウンロード。
https://www.raspberrypi.org/downloads/noobs/
- ファイルはZIP形式のため、ファイルを展開します。
- メモリーカードをパソコンのカードリーダーに挿入し、展開したファイルを全てコピー。
- ラズベリーパイを配線(キーボード、マウス、ディスプレイ、LANケーブル)し、メモリーカードを挿入。
- 電源を接続し起動。
- 「Raspbian[RECOMMENDED]」にチェック、下部のLanguageで「日本語」を選択し「Install」。
インストールされるまでに、40分くらいかかりました。。。
初期設定
2年近く前にLチカして遊んだ時は、「Raspi-Config」から初期設定したのですが、今は初めから「ディスクトップ環境」が使えるようです。
しかも、日本語で表示されている。
インストール時の「日本語」選択がきちんと効いているんですね。。。(過去、日本語設定が面倒だったので嬉しい)
- 設定用アプリケーション(メニュー>設定>Raspberry Piの設定)を選択。
- システム
・パスワード:xxxxx - ローカライゼーション
・ローカル
言語:ja
国:JP
文字セット:UTF-8
・タイムゾーン
地域:Asia
位置:Tokyo
・キーボード
日本/日本語(OADG 109A)
・無線LANの国
国:JP(Japan) - 設定後、再起動。。。
それにしても、設定用アプリケーションで初期設定をすると、簡単ですが設定に抜けがあるようで不安。あとで、Raspi-Configからチェックしてみようっと。。
IPアドレスの固定化
ラズベリーパイは、LANケーブルを挿すだけで、ネットワークに接続できますが、「ラズパイをサーバー(NAS)にする」ということで、固定のIPアドレスを設定します。
IPアドレスの調べ方
1 2 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ hostname -I 192.168.11.12</span> |
IPアドレスだけでなく、ネットワークインターフェースの状態やハードウェアアドレスを知りたい場合には、ifconfigというコマンド。
固定IPアドレスの設定
あらかじめ調べる情報。
- Raspberry Piに割り当てるIPアドレス
- サブネットマスク
- デフォルトゲートウェイ(通常はルーターのIPアドレス)
- DNSサーバーのIPアドレス
有線LANの固定IPアドレスを設定するので、eth0を設定(無線LANの場合は、wlan 0)
ここで、ルーターの確認。
我が家で使用しているルーターはバッファロー社なのですが、バッファロー製品のほとんどが192.168.11.1/24(192.168.11.2から192.168.11.254までの範囲)
のIPアドレス割り当て範囲とのこと。
ということで、適当な(例えば、ラズパイは今後、192.168.11.5, 192.168.11.15・・・としていこうとか)アドレスを決める。
ネットワークの設定ということで、/etc/dhcpcd.conf ファイルを編集。
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo nano /etc/dhcpcd.conf</span> |
カーソルをファイルの一番最後まで移動して、次の設定を加える。(直接打ち込める)
1 2 3 4 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">interface eth0 static ip_address = 192.168.11.x/24 ← RaspberryPiのIPアドレス static routers = 192.168.11.1 ← デフォルトゲートウェイ static domain_name_serevers = 192.168.11.1 ← DNSサーバーのIPアドレス</span> |
書き込んだら、終了→保存して設定を反映させる。
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo service dhcpcd reload</span> |
設定が正しく反映されたかはを確認。
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ ifconfig</span> |
eth 0の箇所に設定した情報が反映されていれば問題なし。。。
あれ?指定したIPアドレスが表示されていない。
/etc/dhcpcd.conf ファイルを見に行ったところ、スペルミスだったので、訂正してやり直したところ正しく表示されました。
ソフトのインストールについて
・ 最新の状態にアップデート
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo apt-get update</span> |
・ インストール済のパッケージの中から、更新されたパッケージのみをダウンロードして、自動的にアップデート
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo apt-get upgrade</span> |
・ パッケージのインストール方法
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo apt-get install [パッケージ名]</span> |
外付けUSBハードディスクの設定と接続
USBハードディスクを接続したときに、自動でマウントさせるため、「usbmount」をインストール。(usbmountは、/mediaディレクトリの下にディスクのマウントポイントが作成される)
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo apt-get install usbmount</span> |
次に、usbmountの設定ファイルを編集。
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo nano /etc/usbmount/usbmount.conf</span> |
FS_MOUNTPOINT =” ” とある行を次のように変更。
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">FS_MOUNTPOINT ="-fstype = vfat, uid = pi, gid = pi, iocharset = utf8, codepage = 932"</span> |
編集後、一旦シャットダウンさせて、USBハードディスクを接続。再起動。
dfコマンドで、マウントされていることを確認。
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ df -h</span> |
/media/usb0にハードディスクがマウントされていることがわかる。。。
(実際に確認したところ、 /media/[ハードディスク名] でした)
sambaでNASを構築
sambaをインストール
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo apt-get install samba samba-common samba-common-bin</span> |
sambaの設定ファイル、/etc/samba/smb.conf を編集。
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo nano /etc/samba/smb.conf</span> |
[global]という行の下に、次の項目を追加。
1 2 3 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">[global] dos charset = CP932 unix charset = UTF-8</span> |
ファイルの一番下に、次の項目を追加。さきほど、マウントした/media/usb0を、shareという名前でアクセスするための設定。
1 2 3 4 5 6 7 8 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">[share] path = /media/usb0 valid users = pi writable = yes guest ok = no guest only = no create mode = 0777 directory mode = 0777</span> |
編集が終わったら、ファイルを保存。そして、samba用のユーザー名とパスワードを設定。
初期設定時に入力したpiのパスワードです。
1 2 3 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo smbpasswd -a pi New SMB password: Retype new SMB password:</span> |
最後にsambaを再起動。
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo /etc/init.d/samba restart</span> |
これで、ネットワークを経由して、パソコンから直接アクセスできるはず!!!!
パソコンからアクセスしてみた。。。
スタートメニューの『ファイル名を指定して実行』から、「\192.168.11.x」を入力すると、[pi], [share] の2つのフォルダが無事、表示されました。。。
しかし、編集できない(書き込み)
書き込み出来なかったので、ファイルの中身を変更、無事完成!!
パソコンからアクセスまではできるので、権限の問題かな。。。
/etc/samba/smb.conf の中身を疑ってみました。
下記のサイト『RaspberryPi電子工作入門 – ツール・ラボ』を参考にチェック。
/etc/samba/smb.confの中に、「Share Definitions」という項目がありますが、そこの設定を変えるとのこと。
さっそくやってみます。
こちらのサイト『ラズベリーパイで遊ぶよ~!』も参考にします。
ファイルの一番下に追記した
1 2 3 4 5 6 7 8 9 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">[share] path = /media/usb0 valid users = pi writable = yes guest ok = no guest only = no create mode = 0777 directory mode = 0777 </span> |
を次のように変更します。
1 2 3 4 5 6 7 8 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">[RaspNAS] comment=USBHDD path=/media/[ハードディスク名] public = Yes read only = No writable = Yes guest ok = Yes force user = pi</span> |
以上の2点を行い再起動。無事、パソコンから書き込みが可能となりました。
あーホッとした。。。
妻よ、NASができたぞー!!
ここからは、作業性をよくするための工夫。
iPhone /Android アプリ FileExplorer をインストール
スマフォからもアクセスできるように、アプリを探しました。
オススメは、FileExplorer。設定も簡単で、使いやすい。
ちなみに、この方、8つのアプリを試して評価しています。確認した結果、2つしか思うようなアプリではないという結論。実際に項目をチェックしているのが面白い。
<参考> 『快適ネットワークライフ』
リモートログインの設定
SSH(Secura Shell)
NASとして運用を開始してしまうと、モニター, キーボード, マウスは不要になります。
代わりに、SSHでリモートログインをします。
◆ Tera Termのインストール
https://ja.osdn.net/projects/ttssh2/
ホスト名に、設定した固定IPアドレスを打ち込み、、、
ん??接続できない。。。あー、ラズパイの設定を忘れていました。
もう一度、ラズパイに、モニター, キーボード, マウスを接続し再起動。。
◆ 設定用アプリケーション(メニュー>設定>Raspberry Piの設定)を選択。
◆ インターフェースのSSHを有効化
これで、リモートログインできるはず。立ち上げたTera Tarmのホスト名に、設定した固定IPアドレスを打ち込み、、、IDとパスワードを入力。
完了!!
SSHからシャットダウン
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo shutdown -h now</span> |
VNC(Virtual Network Computing)
SSHではコンソールしかリモート接続できないので、デスクトップのリモート接続をできるようにしておきます。
今回は、「RealVNC」を使用します。
なんと、ラズペリーパイ向けのサービスもあったのですね。これに従えば、簡単に設定できます。
https://www.realvnc.com/en/raspberrypi/
ラズベリーパイを設定
https://www.realvnc.com/en/connect/docs/raspberry-pi.html#raspberry-pi-setup
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo apt-get update</span> |
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo apt-get install realvnc-vnc-server</span> |
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo apt-get install realvnc-vnc-viewer</span> |
いつものおまじないと、RealVNCサーバーとヴューアをインストール。
そして、VNC を使用可とする。
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo raspi-config</span> |
- Interfacing Options → P3 VNC をenable
再起動すれば完了。
1 |
<span style="font-family: 'arial black', sans-serif; font-size: 14px;">$ sudo reboot</span> |
VNC ヴューアをパソコンにインストール
パソコンからアクセスできるように。
◆ VNCヴューアからリモートログイン
立ち上げたVNCヴューアのホスト名に、IPアドレスを打ち込みログイン。。
無事、自分のパソコンから、ラズペリーパイのデスクトップへのリモートログインができました。
最後に、画面が切れないようにVNCビューアメニューから
Property > Option > Scaling の「Scale to fit Window」を選択。
むかし、TightVNCサーバーをインストールしたことがあって、その時はめちゃくちゃてこずったのですが、これは簡単ですね。
SDカードをコピーしておく。
せっかく、「NASができた!!」と思っても、SDカードが破損してしまうと、また初めから設定しなおす羽目に。。。
そうです。
SDカードを2つ準備したのは、破損したときの予備としてバックアップを取るためだったのです。
コピーのやり方は、下記サイトを参考にしました。
<参考> 『ITでこぼこ日記』
ひとまず、バックアップも完了。
以上、本格運用しまーす!!