ラズパイZeroW から NAS へアクセス

ラズパイZeroW から NAS へアクセス

ラズパイZeroW で撮影ができなくなっていたので
原因が容量不足と思われるため
SSH でアクセスし
ls コマンドでファイルとかをみようとすると

デバイスに空き領域がありません
-bash: ヒアドキュメント用一時ファイルを作成できません: デバイスに空き領域がありません

となってしまっていた

df -h

で確認してみると

ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root        5.7G  5.7G     0  100% /
devtmpfs         181M     0  181M    0% /dev
tmpfs            186M     0  186M    0% /dev/shm
tmpfs            186M  5.0M  181M    3% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            186M     0  186M    0% /sys/fs/cgroup
/dev/mmcblk0p6    68M   23M   46M   33% /boot
tmpfs             37M     0   37M    0% /run/user/1000

まずはこれをどうにかしないと無理なので
Ubuntu 側で

mkdir raspi_camera_bak
cd raspi_camera_bak/
scp pi@192.168.1.9:/home/pi/rscamera/* .

で静止画のバックアップをとり

次に motion で撮影されたものは
保存場所は
/var/lib/motion
に記録されるので
こちらも同様に

scp pi@192.168.1.9:/var/lib/motion/* .

でバックアップ

このままだとディスクがいっぱいで何もできないので

sudo rm -f /var/lib/motion/*

で一度削除しようとしたが処理に時間がかかりすぎたため

sudo su
 cd /var/lib/motion
rm -f *.jpg
rm -f *.avi

でそれぞれの拡張子ごとに削除

次に
Raspberry Pi Zeroから自宅のNASにアクセスしてみよう

を参考に
NASへアクセスできるように設定

なおNASは購入すると高かったため
Raspberry Pi3 で構築したものを使用

まずラズパイZero W で
SMB でNASをマウントするツールのインストール

sudo apt install cifs-utils

次にマウントするためのディレクトリを作成

sudo mkdir /mnt/nas

これで NAS へアクセスしようとしたけど
エラーになるので
一度NASの確認

【Raspberry Pi 3】sambaサーバーが接続できないときのハマリポイントまとめチェック

を参考に

まず samba が起動しているか確認

sudo /etc/init.d/samba restart

結果

[ ok ] Restarting nmbd (via systemctl): nmbd.service.
[ ok ] Restarting smbd (via systemctl): smbd.service.

なので問題なし

次にパスワードの設定確認

sudo pdbedit -L

で何も表示されないので

sudo smbpasswd -a pi

で任意のパスワードを入力し設定

再度

 sudo pdbedit -L

を実行すると

pi:1000:

となるが、Ubuntu からアクセスしてファイルの作成などができない

原因を調べるためいろいろやってみたら
Windowsへの接続

を参考に
Nautilusを起動し、Ctrl + Lで
smb://NASのIPアドレス
としたら簡単にアクセスできた

接続が Ubuntu からはできたので
ラズパイZeroWから

sudo mount -t cifs //192.168.1.208/share /mnt/nas -o username=pi,password=raspberry,iocharset=utf8

としたけど

mount error(2): No such file or directory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

となってしまう

NASの設定を

sudo vim /etc/samba/smb.conf 

で確認したら

[ファミリー]
        path = /mnt/hdd/share/family
        writable = yes
        guest ok = yes
        guest only = yes
        create mode = 0777
        directory mode = 0777

となっていたので

[pizero_photo]
        path = /mnt/hdd/share/pizero
        writable = yes
        guest ok = yes
        guest only = yes
        create mode = 0777
        directory mode = 0777

を追記して保存

これは motion で撮影した画像がすごい量になるので
専用のフォルダで補完するため

あとは

sudo service smbd restart

で再起動

あとはディレクトリも用意するので

mkdir /mnt/hdd/share/pizero
 sudo chmod -R 777 /mnt/hdd/share/

でディレクトリ作成とパーミッション変更

これで再度 ubuntu で
smb://192.168.1.208/
と Nautilus で検索すると表示されるようになりました

次に ラズパイZeroW で

sudo mount -t cifs //192.168.1.208/pizero_photo /mnt/nas -o username=pi,password=raspberry,iocharset=utf8

とすると
無事にマウントできました

確認のため

df -h

とすると

ファイルシス                 サイズ  使用  残り 使用% マウント位置
/dev/root                      5.7G  4.3G  1.2G   79% /
devtmpfs                       181M     0  181M    0% /dev
tmpfs                          186M     0  186M    0% /dev/shm
tmpfs                          186M  5.1M  180M    3% /run
tmpfs                          5.0M  4.0K  5.0M    1% /run/lock
tmpfs                          186M     0  186M    0% /sys/fs/cgroup
/dev/mmcblk0p6                  68M   23M   46M   33% /boot
tmpfs                           37M     0   37M    0% /run/user/1000
/dev/mmcblk0p5                  30M  398K   28M    2% /media/pi/SETTINGS1
//192.168.1.208/pizero_photo   916G   47G  870G    6% /mnt/nas

となりマウント成功が確認できます

次にOS起動したら自動的にNASをマウントするように
/etc/fstab にマウントに必要な情報を記述

sudo nano /etc/fstab

でファイルをひらき
最終行に

//192.168.1.208/pizero_photo /mnt/nas cifs username=pi,password=raspberry,file_mode=0755,dir_mode=0755,iocharset=utf8,uid=1000,gid=1000,forceuid,forcegid,_netdev 0 0

を追記

長いけど1行で書き込みます

最初は行をわけるかわからなかったので
ラズパイZeroで自宅のNASをマウントする

も参考にしました

このとき
username はユーザ名
password はユーザパスワード
ですがNASのものを使います

//192.168.1.208/pizero_photo
はNASのマウント先

/mnt/nas
はラズパイZeroWのマウントする場所
となります

次にOS起動後にNASが自動マウントするように
ブートオプションを変更
これはネットワークサービスが
起動してからブートしないとNASのマウントが失敗するから

 sudo raspi-config 

で設定画面を開き

3の
Boot Options を選びSelect にしてEnter

次に
B2 Wait for Network at Boot Choose whether to waito for n
で Select にして Enter

次に
Would you like boot to wait until a network connection is established?
となっているので
はい
にしてEnter

Waiting for network on boot is enabled
となるので
了解で Enter

あとは Finish で Enter することで設定画面を抜けます

設定確認のため

sudo reboot

で再起動して

df -h

ファイルシス                 サイズ  使用  残り 使用% マウント位置
/dev/root                      5.7G  4.3G  1.2G   80% /
devtmpfs                       181M     0  181M    0% /dev
tmpfs                          186M     0  186M    0% /dev/shm
tmpfs                          186M  7.4M  178M    4% /run
tmpfs                          5.0M  4.0K  5.0M    1% /run/lock
tmpfs                          186M     0  186M    0% /sys/fs/cgroup
/dev/mmcblk0p6                  68M   23M   46M   33% /boot
//192.168.1.208/pizero_photo   916G   47G  870G    6% /mnt/nas
tmpfs                           37M     0   37M    0% /run/user/1000
/dev/mmcblk0p5                  30M  398K   28M    2% /media/pi/SETTINGS1

というように
NASがマウントされていれば成功

ラズパイ3に外付けHDDでNAS 構築

ラズパイ3に外付けHDDでNAS 構築

ラズパイZeroW で動画撮影できるようになったけど
容量が足りないため
NAS へ保存することに

ただ、NASは高いため
ラズパイ3と外付けHDDで構築

今回使用したのは昔購入した外付けHDDがあったので
これを活用

今回は
Raspberry Pi 3 に Samba 4.2 をインストール

を参考に実践

すでに過去にインストールなどは済ませてあるので
ssh で接続

ssh pi@192.168.1.208

というように
pi@ラズパイのIPアドレスで接続

なお、パスワードは変更済みだけど
デフォルトのパスワードは
raspberry

ここからは root ユーザで実行するので

sudo su

で root ユーザに切り替え

apt-get update

でリポジトリ更新

apt-get -y upgrade

でソフトのアップデート

次にSamba のインストール

apt-get -y install samba

次に外付けHDDの設定

とはいっても
デバイスがどのパスになっているのかは
それぞれの環境により異なるので
ラズパイ3 外付けhdd
で検索し
Raspberry Pi 3 ModelB で外付けHDDをファイルサーバー化する

を参考に

 fdisk -l

Device     Boot Start        End    Sectors   Size Id Type
/dev/sda1          63 1953520064 1953520002 931.5G 83 Linux

と表示されるので
/dev/sda1 にあることを確認

次に再起動時に自動マウントさせるために
UUIDを調べたいので

blkid /dev/sda1

でUUIDを確認

今回の結果は

/dev/sda1: LABEL="outhdd" UUID="3c00b165-8ba1-481d-8f0d-372b8bbbcb66" TYPE="ext4" PARTUUID="c675b7b1-01"

なお blkid コマンドについては
【 blkid 】コマンド――ブロックデバイスの属性を表示する

を参考に

次にext4 形式でフォーマットするので
もともと書き込まれていたファイルシステムの情報を削除

使用するコマンドは wipefs コマンド

ファイルシステム関連コマンドについては
ファイルシステムの痕跡(メタデータ)をクリアする方法あれこれ(wipefsほか)

を参考に

wipefs -a /dev/sda1

を実行したものの

wipefs: error: /dev/sda: probing initialization failed: デバイスもしくはリソースがビジー状態です

となってしまう

このため

df

でマウント位置の確認

ファイルシス   1K-ブロック      使用   使用可 使用% マウント位置
/dev/root         26651708  11079260 14195580   44% /
devtmpfs            468084         0   468084    0% /dev
tmpfs               472692         4   472688    1% /dev/shm
tmpfs               472692     12472   460220    3% /run
tmpfs                 5120         4     5116    1% /run/lock
tmpfs               472692         0   472692    0% /sys/fs/cgroup
/dev/mmcblk0p6       66528     22541    43988   34% /boot
tmpfs                94536         0    94536    0% /run/user/1000
/dev/sda1        961301000 820207676 92238940   90% /media/pi/outhdd
/dev/mmcblk0p5       30701       398    28010    2% /media/pi/SETTINGS

/media/pi/outhdd
にマウントされているようなので

デバイスもしくはリソースがビジー状態です

を参考に
umount コマンドでアンマウント

umount -f /media/pi/outhdd/

そして再度

wipefs -a /dev/sda1

とすると成功

次にパーティションの新規作成

fdisk に関しては
fdisk でパーティションのサイズを変更する

を参考に

fdisk /dev/sda1

を実行すると

Changes will remain in memory only, until you decide to write them. Be careful before using the write command.  Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xe590c949.

となるので
n を入力し Enter

Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

となるので、そのままEnter

Partition number (1-4, default 1): 

となるので、これも Enter

First sector (2048-1953520001, default 2048): 

も Enter

Last sector, +sectors or +size{K,M,G,T,P} (2048-1953520001, default 1953520001):

もEnter

これで

Created a new partition 1 of type 'Linux' and of size 931.5 GiB.

Command (m for help): 

とでたら
p を入力するとパーティーション情報が表示される

今回は

Disk /dev/sda1: 931.5 GiB, 1000202241024 bytes, 1953520002 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe590c949

Device      Boot Start        End    Sectors   Size Id Type
/dev/sda1p1       2048 1953520001 1953517954 931.5G 83 Linux

Command (m for help): 

これで設定反映のため
w とすると

The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: 無効な引数です

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

となってしまう

エラーメッセージから検索したところ
37.3. パーティションの作成と削除
https://www.turbolinux.co.jp/products/server/11s/user_guide/partition.html
によれば再起動が必要とのこと

再起動前にフォーマットやマウントをしておきたいので

mkfs.ext4 /dev/sda1

を実行

Found a dos partition table in /dev/sda1
Proceed anyway? (y,N)

となるので y を入力

次に外付けHDDのマウント先を作成し
マウント

mkdir /mnt/hdd
mount /dev/sda1 /mnt/hdd/

外付けHDDを ext4 でフォーマットしているので

blkid /dev/sda1

で確認

結果

/dev/sda1: UUID="96cc41c9-808c-4851-83f5-53bdfa487787" TYPE="ext4" PARTUUID="c675b7b1-01"

となっているので

nano /etc/fstab 

で設定ファイルを開き

最終行に

UUID="96cc41c9-808c-4851-83f5-53bdfa487787"     /mnt/usb1       ext4    defaults 0 0

を追記

あとは設定反映のため再起動するので

reboot

を実行

これで

 df 

を実行し
マウントされていればOK

今回だと

ファイルシス   1K-ブロック     使用    使用可 使用% マウント位置
/dev/root         26651708 11079248  14195592   44% /
devtmpfs            468084        0    468084    0% /dev
tmpfs               472692        4    472688    1% /dev/shm
tmpfs               472692    12452    460240    3% /run
tmpfs                 5120        4      5116    1% /run/lock
tmpfs               472692        0    472692    0% /sys/fs/cgroup
/dev/mmcblk0p6       66528    22541     43988   34% /boot
/dev/sda1        960379088    77852 911446852    1% /mnt/hdd
tmpfs                94536        0     94536    0% /run/user/1000

というかんじ

次に samba 用フォルダ作成

mkdir /mnt/hdd/share
mkdir /mnt/hdd/share/family
chmod -R 777 /mnt/hdd/share/

次に設定ファイルの編集
ここからは使い慣れた vim で編集していきます

vim /etc/samba/smb.conf 

で設定ファイルを開き
/global で検索し
25行目あたりに

dos charset = CP932
unix charset = UTF-8
guest account = pi

を追加

なお、vim の場合 ctrl + shift + v で貼り付けが可能

そして
shift + g で最終行に移動し

[ファミリー]
        path = /mnt/hdd/share/family
        writable = yes
        guest ok = yes
        guest only = yes
        create mode = 0777
        directory mode = 0777

として保存

これで

service smbd restart

でSamba の再起動をすることでファイル共有が可能に

Ubuntu 16.04 の場合
エクスプローラで
ネットワークをクリックすると
RASPBERRYPI
と表示されるので

これを
クリックして今回設定したフォルダをクリックすると
ユーザ認証になるので
ユーザ名 pi
パスワード ラズパイ3のパスワード
とすることでログインしてファイル共有することが可能になります