2015年3月29日日曜日

Raspberry Pi をファイルサーバにする

前回までで Arduino と Wiiリモコンでのラジコンが完成しました。

Arduino ラジコンの発展もいくつかネタがあるのですが、

しばらくは Arduino から離れて Raspberry Pi の話を書いていこうと思います。



現在、Raspberry Pi は5機種出ています。

用途に合わせて、、、と言いたいところですが、

Arduino に比べると結構高いこともあり、

そんなに何台も買わないとなると、汎用性を考えて

第二世代 Model B 一択という気もします。


今回は Raspberry Pi2 Model B を NAS (ファイルサーバ)に仕立て上げます。


Raspberry Pi2 のセットアップ


通常は NOOBS (BIOS) を入れてモニタとキーボードを繋いで、、、とやるのですが、

それだけのために HDMI ケーブルや USB キーボードを用意するのも面倒です。

モニタもキーボードも無しでいきなり Raspbian を入れる手順を紹介します。



この手順を使うためにはあらかじめ次の条件を満たしておく必要があります。

  • Windows か Mac のパソコンがある。
  • DHCPが使えるネットワーク環境がある。

    (LANケーブルでPCと直接接続して IP アドレスを

    ごにょごにょすることでDHCP無しにすることも可能です。)
  • 有線ケーブルでネットワークに接続できる。

まず、Raspberry Pi のサイトから Raspbiean の圧縮ファイルをダウンロードします。

ダウンロードした ZIP ファイルを解凍するとディスクイメージが出来上がります。



Windows パソコンにWin32 Disk Imagerをインストールし、

解凍したディスクイメージを micro SD カードに書き込みます。



micro SD カードを Raspberry Pi2 に挿入し、LAN ケーブルを挿した状態で

Raspberry Pi2 を起動します。

起動が完了すると DHCP で IP アドレスが振られているはずです。

DHCP サーバ(無線ルータなど)の管理ページを見ると

Raspberry Pi という名前でアドレスが表示されているのではないでしょうか。



Tera Termなどの SSH クライアントソフトで Raspberry Pi2 の IP アドレスに対して SSH 接続します。

ユーザ ID は「pi」、パスワードは「raspberry」です。



必要なパッケージのインストール


次のコマンドを実行して OS を最新版にアップデートして再起動します。

pi@raspberrypi ~ $ sudo -s
root@raspberrypi:~# rpi-update
root@raspberrypi:~# apt-get update
root@raspberrypi:~# apt-get upgrade
root@raspberrypi:~# reboot

さらにWindowsファイル共有サーバである samba をインストール。

# apt-get install samba

外付け HDD の接続


SD カードだけではNAS として使うには容量が足りませんので

USB で外付けの HDD または SSD を接続する必要があります。



HDD/SSD はACアダプタで給電するタイプをお奨めします。

特に Raspberry Pi2 を使う場合は本体の電源が micro USB 給電になるため、

USB 給電の HDD を使うと電源の負担が大きくなり問題が出る可能性があります。



接続できたら「fdisk -l」でデバイスパスを調べます。

root@raspberrypi:~# fdisk -l

Disk /dev/mmcblk0: 15.6 GB, 15577645056 bytes
4 heads, 16 sectors/track, 475392 cylinders, total 30425088 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009bf4f

Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          122880    30425087    15151104   83  Linux

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000130cd

Device Boot      Start         End      Blocks   Id  System



この場合、「Disk /dev/sda: 1000.2 GB」から 1TB の HDD が /dev/sda として

認識されていることが分ります。



早速初期化してしまいます。

細かいオプションは「fdisk」で検索すると様々なサイトに書いてありますので省略。

root@raspberrypi ~ # fdisk /dev/sda
Command (m for help): n
※色々と質問されますが Enter キーを連打して新規パーティションを作成
Command (m for help): w
※パーティションテーブルを書き込んで終了。
root@raspberrypi ~ # mkfs.ext4 /dev/sda1



UUID を調べてディスクをマウントします。

「>>」を間違えて「>」にしてしまうと厄介なことになるので注意。

root@raspberrypi ~ # mkdir /mnt/hdd
root@raspberrypi ~ # mount -t ext4 /dev/sda1 /mnt/hdd
※マウントできることを確認
root@raspberrypi ~ # blkid /dev/sda1
root@raspberrypi ~ # cp -p /etc/fstab /etc/fstab.org
root@raspberrypi ~ # echo 'UUID="さきほど調べたUUID" /mnt/hdd ext4    0 2' >> /etc/fstab



samba の設定


ファイルサーバを仕立て上げます。

samba についても検索すると素晴らしい説明がたくさんみつかるので

ここでは詳細を端折ります。

次のように設定すればとりあえずファイルサーバにはなります。



「192.168.1.」は Raspberry Pi が所属しているネットワークを指定します。

vim /etc/samba/smb.conf
[global]
interfaces = 192.168.1. 127.0.0.0/8 eth0
[public]
comment = Public
path = /mnt/hdd/
public = yes
read only = no
browsable = yes



vim コマンドはキーボード入力だけで操作するテキストエディタです。

k, j, h, l キーがそれぞれ上下左右に移動。

i キーが入力モードに移行、ESC で入力モードから離脱。

「:wq」で書き込んで終了。



終わったら samba を再起動します。

root@raspberrypi ~ # service samba restart



これで Windows から「\\RaspberyPiのアドレス\pi」にアクセスすると

ディスクアクセスできるのではないでしょうか。





これでファイルサーバになりました。

ここからさらに VNC サーバにしたり、Scratch や Arduino IDE の

開発環境を使えるようにしますがその説明はまた後日。

0 件のコメント:

コメントを投稿