LoginSignup
1
3

More than 1 year has passed since last update.

Raspberry Pi (raspbian)を利用した NAS × DLNA サーバ

Last updated at Posted at 2023-01-08

システム構成図

image.png

※Raspberry Pi4 ModelB 4GBで動作確認。ソフトはNAS には samba 、DLNA には minidlna を利用。

NAS参照イメージ

image.png
image.png

minidlnaで参照可能なメディア

image.png

各種参考サイト

https://www.raspberrypi.org/software/
https://pcmanabu.com/create-media-raspberry-pi-4/
https://shikasen-engineer.com/raspberry-pi-dlna/#DLNA
https://www.lanhome.co.jp/device/raspberry-pi.html
https://www.indoorcorgielec.com/resources/raspberry-pi/raspberry-pi-setup/

ファンの配線
https://www.raspberrypi.org/documentation/computers/os.html
ファイルサーバ
https://shikasen-engineer.com/raspberry-pi4-samba-fileserver/
Rapberry PiへNTFSの外付けHDDのマウント方法
http://yurugadge-channel.com/article/185114382.html
Raspberry PiにSambaをセットアップ!NASは実用レベルで使えるか?
http://yurugadge-channel.com/article/179603903.html
Raspberry Piを用いたDLNAホームサーバー
https://www.lanhome.co.jp/device/raspberry-pi.html
RaspberryPiをDLNAサーバにする
https://pcvogel.sarakura.net/2019/01/17/31905
SSH接続有効化
https://kimamani89.com/2020/01/29/%E3%80%902020%E5%B9%B4%E6%9C%80%E6%96%B0-raspberrypi%E3%80%91ssh%E3%81%A7%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E6%8E%A5%E7%B6%9A%E3%83%BC%E6%96%B0%E3%81%97%E3%81%84%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88/

※手間を少なく簡易にファイル共有環境を構築したいだけなら、ラズパイとNASだけ構築して、スマホはファイルマネージャアプリで参照する方が簡単です。

ラズパイ構築

ラズパイセットアップ

以下ラズパイOSの初期設定のユーザ名は必ず「pi」で設定すること。
本記事の動作については推奨の32bitOSで確認済み。
64bitOSも公式に存在するが、互換性問題等の理由で推奨にはなっていない。
しかし、2023年現在各サードパーティソフトでラズパイ 32bit(armhf)向けの提供が既にされてないものもあり、本記事以外の仕様を作りこむなら64bitでの構築がおすすめ。64bitでも動作確認済み。

SSH接続有効化

TeratermをPCに導入

NAS構築

Teraterm でラズパイに接続し、以下コマンドを実行

sudo apt-get -y install ntfs-3g
sudo blkid

外付けHDD未接続の場合
image.png
外付けHDD接続の場合(次手順の/etc/fstabに追記するUUIDは本画像の/dev/sda2のUUIDを利用する)
image.png

ls -l /mnt/
sudo mkdir -p /mnt/hdd/usbhdd/
ls -l /mnt/hdd/usbhdd/
ls -l /etc/fstab 
cat /etc/fstab 

/etc/fstabをバックアップ取得してから、/etc/fstabを修正。
詳細なマウント方法は以下参照
Rapberry PiへNTFSの外付けHDDのマウント方法
https://yurugadge-channel.com/article/185114382.html

sudo cp -p /etc/fstab /etc/fstab_yyyymmdd
ls -l /etc/fstab*
sudo nano /etc/fstab
#エディタ画面で以下diffの証跡で差異となっている行を追加

diff /etc/fstab /etc/fstab_yyyymmdd

おっと失礼
以下「/mnt/hdd/usbhdd/」指定は誤り。「/mnt/hdd/usbhdd/NAS/」です。

image.png

日本語入力用

 sudo apt install ibus-mozc

NAS用にsamba導入

sudo apt-get install samba
ls -l /etc/samba/smb.conf
sudo cp -p /etc/samba/smb.conf /etc/samba/smb.conf_yyyymmdd
ls -l /etc/samba/smb.conf*
sudo mkdir -p /mnt/hdd/usbhdd/NAS
sudo nano /etc/samba/smb.conf
#エディタ画面で以下diffの証跡で差異となっている行群を追加

diff /etc/samba/smb.conf /etc/samba/smb.conf_yyyymmdd
sudo smbpasswd -a pi

image.png

DLNA構築

inotify及びnotify_intervalは任意で設定ください。
基本サブディレクトリ配下にファイルを整理するからあまり意味がないと思ってますが、お好みでどうぞ。
https://knowledge.rinpress.com/index.php/MiniDLNA%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB#inotify.E3.81.AE.E8.A8.AD.E5.AE.9A.E3.81.AB.E3.81.A4.E3.81.84.E3.81.A6.E2.91.A0

choown漏れには気を付ける。(minidlnaのサービスが/var/lib/minidlna/配下にインデックスファイルを作成する権限がないためサービス起動時にfailedになる)
もしくは「chmod 777 /var/lib/minidlna/」でもよいがお好みで。

sudo apt-get install minidlna
ls -l /etc/minidlna.conf
sudo cp -p /etc/minidlna.conf /etc/minidlna.conf_yyyymmdd
ls -l /etc/minidlna.conf*
sudo nano /etc/minidlna.conf
#エディタ画面で以下diffの証跡で差異となっている各行を追加及び修正

diff /etc/minidlna.conf /etc/minidlna.conf_yyyymmdd
sudo chown minidlna /var/lib/minidlna/

以下3つのイメージとしてはNASまでが外付けHDDへのマウントなので、
「〇ドライブ(/mnt/hdd/usbhdd/NAS/):\動画」というドライブ直下の動画/画像/CanonフォルダをDLNAで公開対象にしています。

・media_dir=V,/mnt/hdd/usbhdd/NAS/動画
・media_dir=P,/mnt/hdd/usbhdd/NAS/画像
・media_dir=PV,/mnt/hdd/usbhdd/NAS/Canon

image.png

image.png

sudo systemctl status minidlna.service
sudo systemctl enable minidlna.service
ls -l /etc/init.d/minidlna
sudo cp -p /etc/init.d/minidlna /etc/init.d/minidlna_yyyymmdd
ls -l /etc/init.d/minidlna*
sudo nano /etc/init.d/minidlna
#エディタ画面で以下diffの証跡で差異となっている行(sleep 60)を追加

diff /etc/init.d/minidlna /etc/init.d/minidlna_yyyymmdd

image.png

以下はただの省エネ化なので、お好みで。(LED OFF)

ls -l /boot/config.txt
cat /boot/config.txt
sudo cp -p /boot/config.txt /boot/config.txt_yyyymmdd
ls -l /boot/config.txt*
sudo nano /boot/config.txt
diff /boot/config.txt /boot/config.txt_yyyymmdd

image.png

DLNAのインデックスが最新の状態に反映されない場合(files.db再構築)

※以下実施後、外付けHDD内のファイル数によってインデックス構築に時間がかかる。
進捗が知りたければ、スマホなどでDLNA接続すれば、現状作成されたインデックスに応じてファイルが表示される。

ls -l /var/lib/minidlna/files.db*
mv /var/lib/minidlna/files.db /var/lib/minidlna/files.db_$(date "+%Y%m%d")
ls -l /var/lib/minidlna/
sudo systemctl status minidlna.service
sudo systemctl restart minidlna.service

スマホやタブレットについて

「DLNA」で調べれば出てきますので、お好みのアプリを導入すればよいかと。
image.png

補足1:vi入力の正常化

sudo cp -p  /etc/vim/vimrc.tiny /etc/vim/vimrc.tiny_bk
sudo nano /etc/vim/vimrc.tiny
##「set compatible」⇒「set nocompatible」に修正。
diff /etc/vim/vimrc.tiny /etc/vim/vimrc.tiny_bk
cat /etc/vim/vimrc.tiny

touch /home/pi/.vimrc
sudo vi /home/pi/.vimrc
##「set backspace=indent,eol,start」追加
cat /home/pi/.vimrc

image.png
image.png

補足2:minidlnaのフォルダ/ファイルソート

sudo vi /etc/minidlna.conf
cat /etc/minidlna.conf

デフォルト
image.png
修正後
image.png

補足3:NAS への接続時にネットワーク資格情報入力画面が出た場合

ここまで指示通り作成しているなら以下で通るはずです。
もしNAS構築時にsamba用のユーザ設定を変更している場合はpi⇒<指定したユーザ名>になります。
ユーザID ⇒ pi@raspberrypi
Password ⇒ sambaに設定したパスワード

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3