自分の分身を作りたい

理系の大学院生だよ

Raspberry Pi 活用 ~とりあえずおうちクラウド化してみる(ファイルサーバー)~

ぜひフォローしてください

おうちにある眠れるラズパイとLinuxPCを活用したいというところから、年明け早々ラズパイサーバー化計画を粛々と進めております。

そこで今回はラズパイとLinuxPCを接続して、ラズパイをファイルサーバーにするところまで紹介したいと思います。

www.so-hack.com

構想はこのような感じです。

使用するもの

ハード

  • Raspberry Pi 3 Model B+
  • LANケーブル
  • 外付けHDD(250GB)
  • LinuxPC(ASUS Vivobook)

HDDはamazonでおそらく最安の250GBにしました。

f:id:daigakukabuu:20190103021830j:plain

あのLinuxPCは今このような姿に...

f:id:daigakukabuu:20190103023059j:plain

ステッカー貼ったPCで外出歩きたくないけど、そのような方々に一種の憧れもありつつ、、、好きと嫌いは紙一重といいますか。。。絶対外に持ち出さないであろうこのLinuxPCをステッカーまみれにしてみました。

就活イベント行ったりするとオーラの違う学生がいるんですよ。インターンに参加したであろう企業のステッカーを貼って百戦錬磨の雰囲気を醸し出している学生が。実際様子見ているとすごく優秀みたいだし。

そういう方々みたいに自分が開発に参加したものであったり、とても大好きなサービス、ブランド、キャラクターといったステッカーを強い意志を持って貼っているのはとてもかっこいいと思います。

しかし僕がやってしまったのは持っているステッカーをただ意味もなく思考停止で貼っただけのもので、強い意志など何処へやら。

かすかな満足感と引き換えにそこにあるのは虚無です。幼児退行です。ばぶばぶ〜。

いつも使っているPCでやらなくてよかったと思っています。

毒くわば皿まで。たまたま家にあったアクリルスプレーでさらに上からコーティングしてあります。

f:id:daigakukabuu:20190103021836j:plain

「PCにステッカー貼ってみた〜〜〜」程度のことで一つの記事にはしませんのであしからず。

ソフト

  • Samba(ファイルサーバーソフト)
  • OpenSSH(SSHソフト)

PCとラズパイをSSH接続する

SSHとは

SSHは(Secure Shell)の略でセキュアな通信を行うためのプロトコルです。スーパーサイエンスハイスクールではありません。通信方式の一種で、インターネット検索とかで使っているHTTPと同じレイヤーと考えればわかりやすいでしょう。 このあと使うOpenSSHはそのSSHを実現するためのソフトということになります。OpenSSHを使うことでLinuxPCのターミナル上からラズパイをリモート操作できるようになります。

SSHなるものをよくわからずに使っている人のための手引書 - Qiita

OpenSSHの準備

$ apt-get -y install openssh-server

$ apt-get install openssh-client

両端末にOpenSSHをインストールして公開鍵認証方式で接続できるようにします。

公開鍵認証方式の設定

参考

公開鍵認証方式でのssh接続・設定・トラブルシューティング法 - Qiita

第4回 リモートアクセス環境の構築(SSHとターミナルマルチプレクサー) « shell-mag

公開鍵認証の設定に関しては上の記事の通りに行いました。

外付けHHDのマウント

恐る恐るラズパイにHDDを接続してみました。

$ sudo fdisk -l

これでHDDが認識されているのかを確認することができます。

...
Device
/dev/sda1    2048  488394751 488392704 232.9G 7 HPFS/NTFS/exFAT
...
$sudo blkid /dev/sda1 #HDDのUUIDなどを確認できる
$ sudo mkdir /mnt/hdd1 #マウント先のファイルを作る(/dev/sda1には直接アクセスできない?)
$ sudo mount -t ntfs-3g /dev/sda1 /mnt/hdd1 #マウント

と、ここで

mount: unknown filesystem type 'ntfs-3g'

となったのでntfs-3gをインストール。 あとで'exfat'に対する同じエラーが出たのでそちらに対しても対応しておくとうまくいきました。

ntfs-3gやexfatはHDDのファイルシステムのことです。自分も詳しくありませんがいくつかのシステムがあるのですね。

【決定版】NTFS・exFATの違い|外付けハードディスク/USBメモリのおすすめのファイルフォーマット | 節約情報塾

$ sudo apt-get install ntfs-3g
$ sudo apt-get install exfat-fuse exfat-utils
$ sudo mount /dev/sda1 /mnt/hdd1
FUSE exfat 1.2.5

うまくいったようです。 再起動時に自動的にマウントするように/etc/fstabに追記。やることたくさん〜。

UUID="A6761F43761F13A1" /mnt/hdd ntfs-3g defaults,nofail 0 0

参考 Raspberry Pi 3 ModelB で外付けHDDをファイルサーバー化する - Qiita

Raspberry Pi 2でファイルサーバを作るまでのまとめ - Qiita

ファイルサーバーを作る(Samba)

Sambaのインストール

$ sudo apt update
$ sudo apt install samba

Sambaがデーモン(常駐プログラム)として稼働しているかを確認

$ systemctl status smbd
$ systemctl status nmbd

緑文字でactive (running)となっていればおけ。

#元のファイルを.orgとして取っておく
$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.org
#新しくコンフィグファイルを作ってルートなどを書き換える
$ sudo nano /etc/samba/smb.conf
# restart
$ sudo systemctl restart smbd
$ sudo systemctl restart nmbd
#sambaを利用できるユーザーを登録
$ sudo pdbedit -a [User Name]

$ df -h

このコマンドを打って、/dev/sda1がマウントされていれば成功です。

参考

第7回 ファイルサーバーを作る(Samba) « shell-mag

ここまででラズパイ+HDDのファイルサーバー化に成功です。

このようにwindowsPCからラズパイのHDDを開いてファイル共有ができるようになりました。

WindowsPCからエクスプローラーを使ってこのようにファイルサーバーへアクセスできます。

f:id:daigakukabuu:20190103021842j:plain

f:id:daigakukabuu:20190103021839j:plain

おまけ

また、スマートフォンからも「Fing」というアプリでIPアドレスを調べて、「File Explorer」というアプリを使って、ラズパイサーバーにアクセスできます。

f:id:daigakukabuu:20190103022404j:plain

f:id:daigakukabuu:20190103022400j:plain

f:id:daigakukabuu:20190103022356j:plain

f:id:daigakukabuu:20190103022407j:plain

ということで最終的には各PC、スマートフォンからファイルサーバーにアクセスできるようになり、ちょっとしたお家内クラウドが完成しました。各端末でファイルを共有できるようになりました。

これから家の外からもアクセスできるようにしたり、webサーバーとしても機能するようにしていきたいと思います。

説明部分が稚拙になってしまいましたが参考としてリンクを貼らせていただいた記事通りにやりましたので、そちらをみていただければだいたいうまくいくと思います。

購入リスト

EXアクリルスプレー 300ml

EXアクリルスプレー 300ml