ラズパイ3に外付けHDDでNAS 構築
ラズパイZeroW で動画撮影できるようになったけど
容量が足りないため
NAS へ保存することに
ただ、NASは高いため
ラズパイ3と外付けHDDで構築
今回使用したのは昔購入した外付けHDDがあったので
これを活用
今回は
Raspberry Pi 3 に Samba 4.2 をインストール
を参考に実践
すでに過去にインストールなどは済ませてあるので
ssh で接続
1 | ssh pi@192.168.1.208 |
というように
pi@ラズパイのIPアドレスで接続
なお、パスワードは変更済みだけど
デフォルトのパスワードは
raspberry
ここからは root ユーザで実行するので
1 | sudo su |
で root ユーザに切り替え
1 | apt-get update |
でリポジトリ更新
1 | apt-get -y upgrade |
でソフトのアップデート
次にSamba のインストール
1 | apt-get -y install samba |
次に外付けHDDの設定
とはいっても
デバイスがどのパスになっているのかは
それぞれの環境により異なるので
ラズパイ3 外付けhdd
で検索し
Raspberry Pi 3 ModelB で外付けHDDをファイルサーバー化する
を参考に
1 | fdisk -l |
で
1 2 | Device Boot Start End Sectors Size Id Type /dev/sda1 63 1953520064 1953520002 931.5G 83 Linux |
と表示されるので
/dev/sda1 にあることを確認
次に再起動時に自動マウントさせるために
UUIDを調べたいので
1 | blkid /dev/sda1 |
でUUIDを確認
今回の結果は
1 | /dev/sda1 : LABEL= "outhdd" UUID= "3c00b165-8ba1-481d-8f0d-372b8bbbcb66" TYPE= "ext4" PARTUUID= "c675b7b1-01" |
なお blkid コマンドについては
【 blkid 】コマンド――ブロックデバイスの属性を表示する
を参考に
次にext4 形式でフォーマットするので
もともと書き込まれていたファイルシステムの情報を削除
使用するコマンドは wipefs コマンド
ファイルシステム関連コマンドについては
ファイルシステムの痕跡(メタデータ)をクリアする方法あれこれ(wipefsほか)
を参考に
1 | wipefs -a /dev/sda1 |
を実行したものの
1 | wipefs: error: /dev/sda : probing initialization failed: デバイスもしくはリソースがビジー状態です |
となってしまう
このため
1 |
でマウント位置の確認
1 2 3 4 5 6 7 8 9 10 11 | ファイルシス 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 コマンドでアンマウント
1 | umount -f /media/pi/outhdd/ |
そして再度
1 | wipefs -a /dev/sda1 |
とすると成功
次にパーティションの新規作成
fdisk に関しては
fdisk でパーティションのサイズを変更する
を参考に
1 | fdisk /dev/sda1 |
を実行すると
1 | 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
1 2 3 4 | Partition type p primary (0 primary, 0 extended, 4 free ) e extended (container for logical partitions) Select (default p): |
となるので、そのままEnter
1 | Partition number (1-4, default 1): |
となるので、これも Enter
1 | First sector (2048-1953520001, default 2048): |
も Enter
1 | Last sector, +sectors or +size{K,M,G,T,P} (2048-1953520001, default 1953520001): |
もEnter
これで
1 2 3 | Created a new partition 1 of type 'Linux' and of size 931.5 GiB. Command (m for help): |
とでたら
p を入力するとパーティーション情報が表示される
今回は
1 2 3 4 5 6 7 8 9 10 11 | 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 とすると
1 2 3 4 5 | 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
によれば再起動が必要とのこと
再起動前にフォーマットやマウントをしておきたいので
1 | mkfs.ext4 /dev/sda1 |
を実行
1 2 | Found a dos partition table in /dev/sda1 Proceed anyway? (y,N) |
となるので y を入力
次に外付けHDDのマウント先を作成し
マウント
1 2 | mkdir /mnt/hdd mount /dev/sda1 /mnt/hdd/ |
外付けHDDを ext4 でフォーマットしているので
1 | blkid /dev/sda1 |
で確認
結果
1 | /dev/sda1 : UUID= "96cc41c9-808c-4851-83f5-53bdfa487787" TYPE= "ext4" PARTUUID= "c675b7b1-01" |
となっているので
1 | nano /etc/fstab |
で設定ファイルを開き
最終行に
1 | UUID= "96cc41c9-808c-4851-83f5-53bdfa487787" /mnt/usb1 ext4 defaults 0 0 |
を追記
あとは設定反映のため再起動するので
1 | reboot |
を実行
これで
1 |
を実行し
マウントされていればOK
今回だと
1 2 3 4 5 6 7 8 9 10 | ファイルシス 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 用フォルダ作成
1 2 3 | mkdir /mnt/hdd/share mkdir /mnt/hdd/share/family chmod -R 777 /mnt/hdd/share/ |
次に設定ファイルの編集
ここからは使い慣れた vim で編集していきます
1 | vim /etc/samba/smb .conf |
で設定ファイルを開き
/global で検索し
25行目あたりに
1 2 3 | dos charset = CP932 unix charset = UTF-8 guest account = pi |
を追加
なお、vim の場合 ctrl + shift + v で貼り付けが可能
そして
shift + g で最終行に移動し
1 2 3 4 5 6 7 | [ファミリー] path = /mnt/hdd/share/family writable = yes guest ok = yes guest only = yes create mode = 0777 directory mode = 0777 |
として保存
これで
1 | service smbd restart |
でSamba の再起動をすることでファイル共有が可能に
Ubuntu 16.04 の場合
エクスプローラで
ネットワークをクリックすると
RASPBERRYPI
と表示されるので
これを
クリックして今回設定したフォルダをクリックすると
ユーザ認証になるので
ユーザ名 pi
パスワード ラズパイ3のパスワード
とすることでログインしてファイル共有することが可能になります