初心者がRaspberryPiでNASを作ってみたメモ

#はじめに
RaspberryPi 3B を色々いじりながら、「何を作ろう?」と考えているときに、家で使っていないSSDを発見したので、「これはNASを作れという神様のお告げだ」と思い、作ってみました。

私はMacユーザーなのですが、後々家族で使うことを考え、MacでもWindowsでも使えるようにしました。
※Qiita初投稿なので、お手柔らかにお願いします。。。
#SSDの準備
フォーマットをします。
SSDをMacに繋ぎ、SSDを認識させます。
ここで、GUIのディスクユーティリティを使ってもいいのですが、
あえてここではTerminalでのフォーマット方法を載せておきます。

Terminalを開き、、、

```ruby:Terminal
% diskutil list
...
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *492.5 GB    disk2
   1:                 DOS_FAT_32 SSD                     492.5 GB    disk2s1
...
```
disk0、disk1...とズラズラ出てくるので、繋いだSSDのdisk番号を覚えておきます。
ここで間違えると、Mac本体のデータがぶっ飛ぶので注意しながら行います。
私の場合disk2でした。

今回、フォーマット方式はexFATで行います。ので、

```ruby:Terminal
% diskutil eraseDisk ExFAT SSD /dev/disk2
```
一つ一つ解説すると、
ExFAT:フォーマットのタイプ
SSD:フォーマット後のSSDの名前。なんでもいいですが、あとで使うので、わかりやすい名前推奨。
/dev/disk2:フォーマットする対象。

これでフォーマットは完了です。SSDをMacから外して、、、

#RaspberryPiへマウント
次はRaspberryPiで行います。
SSHもしくは、モニターに繋義、Terminalに打っていきます。

####まず、いつもの

```ruby:Terminal
% sudo apt-get update
% sudo apt-get upgrade
```
####exFATツールのインストール
% sudo apt-get install exfat-fuse
% sudo apt-get install exfat-utils

####SSDの情報を調べる
RaspberryPiにSSDを繋いで、


```
% sudo blkid
/dev/sda1: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="67E3-17ED" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="970b3583-72b5-4f47-9cfd-34ff2e89d2fc"
/dev/sda2: LABEL="SSD" UUID="5E05-CA19" TYPE="exfat" PARTUUID="0429f982-37de-4ec2-b725-2c7010bee8f7"
```
さっきフォーマットした時に指定した名前の"SSD"が "LABEL="に入っているので、sda2として認識されていますね。
その横の、"UUID="は後から使うので、メモしておきます。

#自動マウントの設定
RaspberryPiが起動毎に自動でSSDを認識するように設定します。

```ruby:Terminal
% sudo nano /etc/fstab
```

```ruby:/etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p6  /boot           vfat    defaults          0       2
/dev/mmcblk0p7  /               ext4    defaults,noatime  0       1
UUID="メモしたUUID"        /mnt/hdd/SSDの名前    exfat-fuse      async,auto,dev,exec,gid=65534,rw,uid=65534,umask=000    0       0
```
"UUID"と"SSDの名前"は各自で変えてください。
"umask"は、アクセス権の設定です。

私の場合、000で全員に全アクセス権を与えています。
このサイトさんがわかりやすかったので、参考にしてください。
(http://www.rivhiro-weather.com/knowledge/?p=168)
ここでアクセス権を正しく指定しないと、「Permission denied」を言われ続けます(←1時間格闘した。)

RaspberryPiをリブートして、、、
```ruby:Terminal
% sudo reboot now
```

```
% sudo df
/dev/root       30358348 5843744  23230108  21% /
...
/dev/sda2      468644864 2026368 466618496   1% /mnt/hdd/SSD
...
```
認識されていたら完了です！
右の /mnt/hdd/SSDのパスに認識されてますね！
あとで使うので、このパスは覚えておきます。

#ファイルサーバーソフトの導入
Linuxでファイルサーバーを構築するためのソフト、「Samba」をインストールします。

```ruby:Terminal
% sudo apt install samba
```
途中で「続行しますか?」と聞かれるので 「Y」 を返します。

###環境設定
`/etc/samba/smb.conf`をいじって、設定します。

```
% sudo nano /etc/samba/smb.conf
```
そして末尾に追記、、、

```
[フォルダ名]
   comment = 適当なコメント
   path= /mnt/hdd/SSD #SSDのパス
   writable = yes
   read only = no
   guest ok = yes
   force user = pi
```
"comment"と"path"は各自...(以下略)
"writable"は書き込みできるようにするかですね
"read only" = no で書き込み可能にしているようですが...まあ。2つあれば安心。
"guest ok" でゲストログインができます。認証制にするなら no にします。
"force user" は管理者ですね。

リブートしたらできているはずです！

```ruby:Terminal
% sudo reboot now
```

#Macでのアクセス方法
Finder(デスクトップ)で "Command + K"
アクセス先は
```smb://(ラズパイのホスト名oripアドレス)```
接続し、ゲストでログインできると思います！

#Windowsでのアクセス方法
エクスプローラーから、ネットワーク欄から探せるはず。

#おまけ:iOSから(iOS13以降)
ファイルアプリを開き、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550844/4bbd7e27-1656-fb82-3e8a-3fd40cd97eda.png)

右上の「・・・」をタップ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/550844/a19d8075-29b0-1e6c-a9fc-0a6d3c9319f9.png)

そして「サーバーへ接続」を選択。
あとはMacでの接続方法と同じ！

#コンフリクト
アクセス権の設定で、"umask"を"777"にしていて、rootアカウントでもSSDにアクセスできないという問題に
1時間ほど費やしたので、ここは気をつけてください。

#使ってみて
RaspberryPi 3Bで処理能力が速い + SSD = めちゃくちゃ速い！
NAS上に動画をアップロードし、再生してみましたが、止まる事なく視聴できました！

次は同じRaspberryPiにVPNを構築し、外出先でもアクセスできるようにしてみたいと思います。

#参考文献
1.[RaspberryPi2でMacとWindows両対応のNASを構築する-Qiita](https://qiita.com/rkonno/items/54b2e4b8770c8b0b2bcd)
2.[Sambaのユーザー認証とファイルアクセス権の設定](https://www.atmarkit.co.jp/ait/articles/0901/28/news153.html)
3.[Linuxのアクセス権-Kenスクールブログ](https://www.kenschool.jp/blog/?p=3330)
4.[fstabについて-Qiita](https://qiita.com/kihoair/items/03635447591358210772)
5.[Qiita Markdown 書き方 まとめ-Qiita](https://qiita.com/shizuma/items/8616bbe3ebe8ab0b6ca1)
6.[Linux/chownコマンドでファイル所有者とアクセスグループを変更する](https://blog.goo.ne.jp/takuminews/e/39528767dabf7330c9764724f0e4bf6d)
7.[Macのディスクユーティリティーコマンドで外部ストレージをフォーマット](https://ytooyama.hatenadiary.jp/entry/2017/01/07/182432)