プログラミング系ブログ

プログラミング系ブログ

プログラムやパソコンパーツ関連のことを、まったりと解説したり、しなかったりするブログです。

Raspi4 での samba 構築

dpcblog.hatenablog.com 前回の記事の続きです。
この記事では NAS にするため、samba をインストールして、HDD を共有ストレージ化するところまでを書きます。

筆者は今回の raspberry pi 4 (raspi4)NAS 化には、 以下の組み合わせで内蔵HDDを外付けHDDに変換して使いました。



[2024-4-14 追記]
HDDもケースももう古いので, などがいいのではないかと思います.

早速設定しましょう。

HDD 設定

まずは HDD の設定を行います。

sudo fdisk -l
とコマンドを打つと、ドライブ一覧が表示されるので HDD を見つけてください。 筆者の場合では /dev/sdb となっていました。以下適宜読み替えてください。
sudo mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sdb
とコマンドを打ち、ext4 で HDD を初期化します。
lazy_itable_init=0,lazy_journal_init=0 は、初期化を一気に終わらせるために必要です。
sudo blkid
で、/dev/sdb の UUID を確認します。
sudo nano /etc/fstab
を開き、以下を追記します。
UUID="確認したUUID書く" /mnt/hdd/nashdd ext4 defaults,nofail 0 2
これで起動時に自動的に HDD が認識されるようになるはずです。/mnt/hdd/nashdd は、/mnt/hdd/sharehdd とかでも良いです。
nofail はつけておかないと設定に不備があったり、 HDD に何かあったりしたとき raspberry pi が起動しなくなるのでつけておいてください。
再起動するために、
sudo reboot
として再起動してください。 起動したら、
cd /mnt/hdd/nashdd
で /mnt/hdd/nashdd に移動してフォルダを作ります。
今回は、
sudo mkdir share
として "share" フォルダを作りました。また、だれでもアクセスできるように以下のように共有範囲を設定しました。ここは使い方に応じて設定してください
sudo chmod 777 share
このフォルダを共有しましょう。

ローカル ip の固定化

ip アドレスでアクセスできるように ip アドレスを固定化しておきましょう。

ip a
networkctl status
と2つコマンドを打てば、ip アドレスと、デフォルトゲートウェイの ip などが分かるのでこれをもとに設定します。
sudo nano /etc/dhcpcd.conf
で設定を開き、
#有線lanのipアドレス固定化
interface eth0
#ipアドレス指定 例 192.168.1.55 など
static ip_address="固定化したい ip アドレス"
#ルータのip 例 192.168.1.1
static routers="ルーターの ip アドレス"
#DNS ip 
static domain_name_servers="ルーターの ip アドレスと同じでOK"
とします。無線lan の場合は、interface eth0 を interface wlan0 にしてください。
ip アドレスは他の機器と重複しないよう注意です。raspberry pi 再起動中にほかの機器の電源など入れると重複しやすいので、 あらかじめ被らなさそうな数字を選ぶのもアリです。 保存して再起動すればOKですが、samba 設定後に再起動しても同じなのでこのまま進めてください。

samba インストール

samba は、簡単に言えば linuxwindowsファイルシステムを扱えるようにするソフトです。
念のため、パッケージを更新してから、

sudo apt-get update 
sudo apt-get upgrade
samba をインストールします。
sudo apt-get install samba
途中で以下の画面が出ますが、筆者は「いいえ」を選択しました。特に必要ない気がします。たぶん...。
インストールできたら設定を変更します。
sudo nano /etc/samba/smb.conf
としてファイルを編集し、先ほどの /mnt/hdd/nashdd/share をパスとして以下を追記します。
[RPI4_NAS]
  comment = Share folder
  path = /mnt/hdd/nashdd/share
  create mask = 0777
  directory mask = 0777
  inherit acls = yes
  read only = no
  writable = yes
  guest ok = yes
  guest only = yes
  browsable = yes
  force user=pi
  unix extentions=no
一部重複してる内容もありますが、これで誰でもアクセスできます。 再起動しましょう。 パスワードを発行したユーザーだけにしたい場合は guest ok = no にするとよいです。samba の細かい設定は結構ややこしいので、説明を省きますが、日本Sambaユーザ会のサイトが参考になります。

ユーザーにパスワード設定をしたい場合には、

sudo useradd "username"
で、raspberry pi 自体にユーザーを追加してから、
sudo pdbedit -a "username"
で追加してやると良いです。 デフォルトのユーザー pi は既に raspberry pi 4 にユーザー登録されているので pdbedit でパスワードだけを作ってやれば、iPhone からもアクセスできます。
iPhoneの設定をする場合には、こちらのサイト が参考になると思います。 筆者も iPhone からアクセスできるように設定してあります。

あとは、以下のコマンドで samba を再起動しておきましょう。

 sudo service smbd restart 

windows からは browsable = yes を設定したので、ネットワーク上に表示されるはずです。 万一、表示されなければ ip アドレスを直接入力してください~。
加えてネットワークドライブとして割り当てしておけば、普通の外付け HDD と同じように使えます。 東京経済大学のHPに詳しく書いてあるのでリンクを貼っておきます。

これで NAS の完成です!! お疲れさまでした。
同じように新たに share2 などのフォルダを作って smb.conf に追記すれば別々のフォルダを別々に共有できます。便利ですね!

次回の記事には VPN 接続で家の外から接続する記事を書きます。 設定をちゃんと書いたつもりですが、 もしも間違っている、上手くできないなどありましたら、自分の設定等を確認しますので教えていただけると助かります。
読んでいただきありがとうございました!
次の記事は、VPN 接続で家の外から samba にアクセスする記事を書きます。
出来次第アップしますのでお待ちください。

続きの記事を書きました! dpcblog.hatenablog.com