💡

raspberry piを使用してNASを作成する

2024/03/18に公開

今回はraspberry piという小型のコンピュータを使用してネットワークで接続できるストレージを作成してみます
私が今回使っているのはraspberry pi3なので古い機種になります
また、今回のNASは同じネットワークに接続した時のみアクセスできるので、外出先からはアクセスできません

NASとは

Network Attached Storageの略でネットワーク上にあり、ネットワークでデータのやり取りができるハードディスクのこと

必要なもの

raspberry pi(OSのインストールやネットワークの設定など初期の設定が終わっているもの)
外付けハードディスク(初期化されても問題ないもの)

設定方法

今回説明は省きますが、raspberry piで直接操作することも可能ですが、SSH接続して他のPCから遠隔操作するとエラーが出た際に調べやすいのでおすすめです
SSH接続したい場合は、下記のようなサイトを参考にしてみてください
https://raspi-school.com/ssh/

ハードディスクの設定

まず、raspberry piと外付けハードディスクを接続します

次にコマンドを使って接続した外付けハードディスクの名前を調べます
下記の例では「sda1」が外付けハーディスクになりますが、複数のハードディスクを繋げている場合は異なると思うので容量などを参考にして判断してください
これ以降のコマンドの「sda」や「sda1」はここの部分の指定になるため、この部分の内容が違えばそちらに差し替えてください

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    1 233.2G  0 disk 

mmcblk0     179:0    0  29.1G  0 disk 
├─mmcblk0p1 179:1    0   256M  0 part /boot
└─mmcblk0p2 179:2    0  28.9G  0 part /

オペレーティング・システムがドライブを正しく認識できるようにするため、USBドライブにもパーティションを設定する必要があり、下記のコマンドでパーティション分割を行います
こちらを実行するとハードディスクの内容が削除されてしまうため、あらかじめバックアップをとっておいてください

$ sudo fdisk /dev/sda

以下のコマンドで先ほどパーティション分割したものをext4ファイルシステムでフォーマットします

$ sudo mkfs.ext4 /dev/sda1

パーティションをマウントするために、下記のコマンドを実行します

$ sudo mount /dev/sda1

今後もパーティションがマウントされるようにする設定をするために下記のコマンドでファイルを開きます

$ sudo nano /etc/fstab

最後の行に追記と書かれている内容を記入し上書きします
上書きはContrl+Xの後Yを選択します
sda1は分割したパーティションの名前なので、違う場合は自分のパーティションの名前に書き換えてください

proc            /proc           proc    defaults          0       0
PARTUUID=11da351a-01  /boot           vfat    defaults          0       2
PARTUUID=11da351a-02  /               ext4    defaults,noatime  0       1
/dev/sda1  /mnt  ext4  defaults,noatime  0  2 //追記

共有フォルダを作成します

$ sudo mkdir /mnt/sda1/shared

作成した共有フォルダに対してみんながアクセスと書き込みができるように権限の設定を行います

$ sudo chmod -R 777 /mnt/sda1/shared

Sambaの設定

今回はSambaというオープンソフトウェアを使用してファイルサーバーを構築するのでパッケージをインストールします

$ sudo apt install samba samba-common-bin

sambaの設定ファイルをコマンドで開きます

$ sudo nano /etc/samba/smb.conf

下記の内容を追記して上書きします
{userName}の部分は次に作成するユーザーの名前なので好きに設定してください

[shared]
   path=/mnt/sda1/shared
   writeable=Yes
   create mask=0777
   directory mask=0777
   public=no
   force user = {userName}

ユーザーの登録

下記のコマンドの{userName}の部分に先ほどのユーザー名を入力して実行すると、パスワードの入力を2回求められるので入力するとadded user〜のメッセージが表示されれば登録完了

$ sudo smbpasswd -a {userName}
New SMB password: //パスワードの入力
Retype new SMB password: //確認でもう一度パスワードの入力
Added user {userName}.

サーバーの再起動

下記のコマンドでSambaのサーバーを再起動させます

$ sudo systemctl restart smbd

IPアドレスの確認

他のデバイスから接続する際にIPアドレスを使用するのでコマンドでIPアドレスを調べます
下から4行目くらいのところにinetの後ろにIPアドレスが書いてあります
IPアドレスの後ろの/24はサブネットなの無視してください

$ ip addr
 〜省略〜
    inet {IPアドレス}/24 brd 192.168.11.111 scope global dynamic noprefixroute wlan0
       valid_lft 2364sec preferred_lft 1914sec
    inet6 fe80::7aae:b537:161a:891c/64 scope link 
       valid_lft forever preferred_lft forever

MacとNASを接続する

Finderを開き、メニューバー>移動>サーバーへ接続

「smb://」の後ろにIPアドレスを入力して接続

ログイン情報を聞かれたら作成したユーザーネームとパスワードを入力する

マウントするボリュームを聞かれたら「Shared」を選択してOKするとラズパイに接続した外付けハードディスクにアクセスすることができます

参考サイト

https://www.raspberrypi.com/tutorials/nas-box-raspberry-pi-tutorial/
https://qiita.com/cafe-capitola/items/91e10926bfbe9cea61e0
https://picockpit.com/raspberry-pi/ja/ラズベリーパイをsambaでnasにする/

Discussion