ラズパイ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のパスワード
とすることでログインしてファイル共有することが可能になります