はじめに
RaspberryPi 3B を色々いじりながら、「何を作ろう?」と考えているときに、家で使っていないSSDを発見したので、「これはNASを作れという神様のお告げだ」と思い、作ってみました。
私はMacユーザーなのですが、後々家族で使うことを考え、MacでもWindowsでも使えるようにしました。
※Qiita初投稿なので、お手柔らかにお願いします。。。
SSDの準備
フォーマットをします。
SSDをMacに繋ぎ、SSDを認識させます。
ここで、GUIのディスクユーティリティを使ってもいいのですが、
あえてここではTerminalでのフォーマット方法を載せておきます。
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で行います。ので、
% diskutil eraseDisk ExFAT SSD /dev/disk2
一つ一つ解説すると、
ExFAT:フォーマットのタイプ
SSD:フォーマット後のSSDの名前。なんでもいいですが、あとで使うので、わかりやすい名前推奨。
/dev/disk2:フォーマットする対象。
これでフォーマットは完了です。SSDをMacから外して、、、
RaspberryPiへマウント
次はRaspberryPiで行います。
SSHもしくは、モニターに繋義、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を認識するように設定します。
% sudo nano /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」をインストールします。
% 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" は管理者ですね。
リブートしたらできているはずです!
% sudo reboot now
Macでのアクセス方法
Finder(デスクトップ)で "Command + K"
アクセス先は
smb://(ラズパイのホスト名oripアドレス)
接続し、ゲストでログインできると思います!
Windowsでのアクセス方法
エクスプローラーから、ネットワーク欄から探せるはず。
おまけ:iOSから(iOS13以降)
そして「サーバーへ接続」を選択。
あとはMacでの接続方法と同じ!
コンフリクト
アクセス権の設定で、"umask"を"777"にしていて、rootアカウントでもSSDにアクセスできないという問題に
1時間ほど費やしたので、ここは気をつけてください。
使ってみて
RaspberryPi 3Bで処理能力が速い + SSD = めちゃくちゃ速い!
NAS上に動画をアップロードし、再生してみましたが、止まる事なく視聴できました!
次は同じRaspberryPiにVPNを構築し、外出先でもアクセスできるようにしてみたいと思います。
参考文献
1.RaspberryPi2でMacとWindows両対応のNASを構築する-Qiita
2.Sambaのユーザー認証とファイルアクセス権の設定
3.Linuxのアクセス権-Kenスクールブログ
4.fstabについて-Qiita
5.Qiita Markdown 書き方 まとめ-Qiita
6.Linux/chownコマンドでファイル所有者とアクセスグループを変更する
7.Macのディスクユーティリティーコマンドで外部ストレージをフォーマット