ラズベリーパイでホームサーバーを構築しよう — NAS構築編


前回の投稿ではRaspberry Pi Model B へ最新のRaspberry Pi OSをインストールするところまで完了しました。
今回はネットワーク設定を行い、NASを構築するまでを行います。

● ホスト名の設定ラズパイを複数使用していたり、参加ネットワークの決まり等でホスト名(WindowsでいうところのPCの名前)を変更したい場合は、以下のファイルを編集します。
/etc/hostname
/etc/hosts

例えばホスト名を「RPi-Server」にしたい場合、これらのファイルの中の「raspberrypi」の部分を「RPi-Server」に変更します。
変更後はラズパイをリブートします。

なお、今回の例ではホスト名の変更はせずに、初期設定の「raspberrypi」のまま進めています。

● IPアドレスの設定ラズパイをサーバーにする場合、IPアドレスが変わらないように固定します。(一般に固定IPといいます)
これはPC等から接続する際に毎回IPアドレスが変わってしまうと、IPアドレスが分からなくなりサーバーに接続できなくなるためです。
ラズパイのIPアドレスを固定IPにする方法については以下のサイト等を参考にしました。 「ラズベリーパイで固定IPアドレスを設定する

最初にIPアドレスを決めます。
我家のLANは192.168.0.1~192.168.0.10までのローカルアドレスをルーターのDHCP機能で割り当てる様にしています。
ラズパイも同様にルーター側の設定で固定IPアドレスを振る様にしますが、最初はラズパイ側で固定IPアドレスを設定してみます。
ラズパイのIPアドレスは自動で割り当てられるアドレスと重ならないように 192.168.0.15 に設定する事とします。
デフォルトゲートウェイ、DNSサーバーのIPアドレスは、ルーターがそれらの機能を兼ねており、そのIPアドレスが192.168.0.1ですので、192.168.0.1とします。

ラズパイのネットワーク設定は画面から、又は端末から設定できますが、今回は画面から設定することとします。
画面上部のメニューバーの右にある「↑↓」のアイコンがネットワークの状態を示す物です。これをクリックすると、プルダウンメニューが出ますので、「Wireless & Wired Network Setting」を選択します。

表示された「NetworkPeferences」画面の右上にあるプルダウンメニューより「eth0」を選択します。

「Automatically configure empty option」のチェックを外します。これはIPアドレスが自動割り当てされる場合にチェックするものです。
「Disable IPv6」はIPv6ネットワークでは使用しないので付けたままとします。
「IPv4 Address」にはラズパイのIPアドレス 192.168.0.15 を設定します。
「Router」「DNS Server」には 192.168.0.1 を設定します。

全ての入力を終えたら「適用」「閉じる」押して設定を完了させてから、ラズパイをリブートします。

リブート後、仮想端末からネットワークの設定を確認しました。192.168.0.15になっていますね。

● 外部のPCから操作できるように設定する使い慣れたPC上でTeraTermというターミナルエミュレータでコマンドを使った操作ができる様に設定します。
これはPCから操作したいという事でなければ設定しなくても構いません。

PC等他のコンピュータからログインしたり、ファイルをコピーしたりする為にはSSHという機能を使用します。
ラズパイの場合、SSH機能は無効になっていますので、以下の手順で有効にします。

スタートメニュー->設定->Raspberry Piの設定 を選択し、「Raspberry Piの設定」画面を開きます。

「Raspberry Piの設定」画面の「インターフェイス」タブを表示させ、「SSH」という項目を有効にします。

その後、「OK」ボタンを押して完了です。
これで、PCからTeraTermでログインできるようになりました。

● 外部ディスクを接続するラズパイのNASを構築するにあたって、HDDはラズパイでの使用をやめてもPCにつなげて使える様にするため、HDDはNTFSとすることにしました。
NTFSフォーマットのHDDを使用するにあたってHDDは事前にPC側でフォーマットしておきます。
ラズパイでNTFSフォーマットしたHDDはPC側では認識しません。この事には注意してください。
PCに接続しないのであれば、HDDはどの形式でフォーマットしても構いません。

フォーマット済の外付けHDDをラズパイに接続してみました。
ディスクの状態を見るdfコマンドを打ったところ、下の様に表示されました。

$ df
ファイルシス   1K-ブロック    使用    使用可 使用% マウント位置
/dev/root         30358348 3150888  25921652   11% /
devtmpfs            187244       0    187244    0% /dev
tmpfs               220224       0    220224    0% /dev/shm
tmpfs               220224    3252    216972    2% /run
tmpfs                 5120       4      5116    1% /run/lock
tmpfs               220224       0    220224    0% /sys/fs/cgroup
/dev/mmcblk0p1      258095   48676    209420   19% /boot
tmpfs                44044       4     44040    1% /run/user/1000
/dev/sda1        160833532   96120 160737412    1% /media/pi/work

自動的にマウントされ、/media/pi/work にマウントされたことがわかります。

NASとして使うには自動マウントでなく、OS起動時から固定的にマウントされるようにします。
その為には、/etc/fstab というファイルを編集します。fstabは起動時にマウントするディスク等の情報を記述するファイルです。
fstabを編集するにあたっては、事前に以下を決めておきます。

  • デバイス名
  • マウントポイント
  • ファイルシステムの種類
  • マウントオプション

デバイス名とはOSが認識するディスクの名前で、上の場合 /dev/sda1がそれにあたります。
デバイス名の代わりにUUIDを指定することもできます。UUIDとはデバイスを識別するためのIDで、ディスク、パーティションごとに異なった値を持つものです。
複数のディスク、複数のパーティションがある場合やディスクを接続するUSBポートが変わった場合には接続後のデバイス名が変わることがあります。なので、UUIDを指定することを推奨します。
UUIDを調べるには、以下のコマンドを使用します

$ sudo blkid /dev/sda1
/dev/sda1: LABEL="work" UUID="C01C7B171C7B07A4" TYPE="ntfs" PARTUUID="d686d686-01"

UUIDは「C01C7B171C7B07A4」であることがわかりました。
マウントポイントとは接続したディスクのディレクトリの事です。
自動的にマウントされた時には /media/piの下にマウントされましたが、/mediaは自動的にマウントされるメディアの為のディレクトリですので、NASとして使うにはあまり適切ではありません。
なので、/mntの下に hdd というディレクトリを作成し、そこへマウントする事とします。
以下のコマンドでマウントポイントを作っておきます。

$ cd /mnt
$ sudo mkdir hdd
$ sudo chmod 777 hdd

マウントオプションはNTFSの場合、以下の物を指定する事を推奨します。
 nofail : 指定するとHDDが壊れたり取り外されていてもOSをブートできる。指定しない場合、マウントに失敗するとOSは起動しない。
 permissions : ファイルのオーナーによるアクセス権の管理を行う
 default : 上記以外はデフォルトを使用する
自動でマウントされたディスクを一旦アンマウントしてマウントしてマウントに成功するか確認しておきます。
以下のコマンドでアンマウントとマウントを行います。

$ sudo umount /media/pi/work
$ sudo mount UUID=C01C7B171C7B07A4 /mnt/hdd

マウントしたらdfコマンドで正しくマウントできているか確認しておきます。

UUIDを調べ、マウントポイントも作成したので、次にfstabを編集します。
編集にはエディタを使用します。ラズパイにインストールされているエディタには端末上で使用する vi、nano。画面上で使用するテキストエディタがありますが、使いやすいものを使えばよいです。 ただし、特権ユーザーでファイルを編集する必要があるので、
$ sudo vi /etc/fstab のように、プログラム名の前にsudoを付けるてエディタを起動する必要があります。
以下の行を /etc/fstabへ追加します。
—– ここから —-
UUID=C01C7B171C7B07A4 /mnt/hdd ntfs default,nofail,permissions 0 0
—– ここまで —-

fstabの編集が終わったら、再起動してdfコマンドでマウントできているかを確認してください。

● SambaをインストールするSambaとは、Windowsネットワークの共有ファイルサーバーを構築する為のフリーソフトウェアです。
ラズパイなど、Linux系OSの走るコンピュータでNASを構築するのには一般的に使用されているものです。
Sambaのインストールには以下のコマンドを使用します。

$ sudo umount /media/pi/work
$ sudo apt-get install -y samba

途中、「DHCP から WINS 設定を使うよう smb.conf を変更しますか? 」というメッセージが表示され、<はい><いいえ>の選択を促されます。 ここでは<いいえ>を選択してください。

インストールが完了したら、設定ファイル /etc/samba/smb.conf の編集をおこないます。 samba.confの最後に、以下の行を追加します。
—- ここから —-
[raspberry-pi-smb]
comment = Raspberry Pi USB DISK /dev/sda1
path = /mnt/hdd
guest ok = yes
browseable = yes
writable = yes
read only = no
create mask = 0777
directory mask = 0777
—- ここまで —-

上の例で「raspberry-pi-smb」という名前がありますが、これは共有ディレクトリの名前になります。好きな名前を付けてください。
samba.confの編集が終わったら以下のコマンドを実行して変更した設定を有効にするか、リブートします。

$ sudo services smbd restart

次にPC側でNASを参照できるかを確認します。
エクスプローラーのアドレスバー に 「\\raspberrypi」 と入力し、リターンを押します。
(raspberrypiはラズパイのホスト名です。ホスト名の設定をしていない場合はこの名前になります。)

すると「raspberry-pi-smb」というフォルダが見えます。
これをクリックしてフォルダを開き、ラズパイの外付けHDDのファイルが見えるか、書き込めるかを確認します。

NAS側でユーザー毎のアクセス制御をしないのであれば、設定はここまでです。
Windowsのユーザーごとにファイルのアクセス権を管理する場合の設定については、またいつか書きましょう。


関連記事

TOP
CONTACT ACCESS LINE CALL