●Raspberry Pi NASを作る
2021.03.15
ネットワーク接続形記憶装置 NAS(Network Attached Storage) を作ります。
USBメモリや SDメモリに入れている画像や動画や文書を1ヶ所に
まとめてしまえば、煩雑さから解放されます。
市販のNAS は、記憶媒体には3.5inch HDDを使用するタイプが
大半であり形も大きく場所を取る。
Raspberry Pi ですから場所もとらず小さくて、使用した感じも内部Disk と
変わらない感覚で使用できるのでこれは便利です。
家中の、どのパソコンからでもアクセスできるので、
共有File と容量の大きなFile はできるだけNASに入れる様にしました。
NASと接続できる端末
NAS ⇔ Windows10 NAS ⇔ Android Tablet NAS ⇔ iPad・iPhone NAS ⇔ ChromeBook |
Network Drive の割付をすれば、 内部Disk と同等に読み書きできる。 File Manager で開くと読み書きできる。 File Explorer で開くと読み書きできる。 My File を開き Drive の割付をすれば 内部Disk と同等に読み書きできる。 |
Network Disk ですから高度な事をしようとすると無理がありますが、
端末のMemory 不足を気にしなくてよくなりこれは便利。
NAS の構成材料
NASの外観
目 次
目次を開く
1. NASの機器仕様2. Open Media Vault を使用してみて
3. SAMBA Server
3.1 Raspbian OS install
・OS DownLoad
・SD Card に RasPi OS 書き込み
3.2 初期設定
1. System Options
・Wireless LAN
・Password
3. Interface Options
・SSH
5. Localisation Options
・Locale
・Timezone
・WLAN Country
8. Update
3.3 SAMBA App install
・Install
・smb.conf設定
・HDDをmount
・起動時の自動Mount
・起動時の mount がうまくいかない時
3.4 user 設定
・User登録
・group設定
・Folderの所有権設定
3.5 SD Card 寿命を延ばす
4. パソコンからVNC接続
1. NAS 機器仕様
・ Hard Ware ・ CPU ・ Memory ・ Storage ・ SD CARD ・ O S ・ App ・ python ・ WiFi 規格 ・ Bluetooth ・ 寸法 W×H×D ・ 電 源 |
Raspberry Pi 4B Broadcom BCM2711 1.5Ghz 4Core 4GB HDD HGST 1TB 7200rpm Micro SD 64GB (OS install) Linux Raspbian GNU/Linux 10 (buster) Ver. 5.10.17-v7l+ armv7l 32bit ↓ Ver. 6.1.61-v8+ aarch64 64bit (2023.12.03) SAMBA Server Ver. 3.12.0 802.11 a/g/n/ac Bluetooth 5.0 85×56×17 (mm) +5v 3A |
2. Open Media Vaultを使用してみて
Freeで使用できるNAS用SOFTに、Open Media Vaultがあります。
GUIで全て設定できると解説しているので、NASを作るのが
初めての人には簡単に構築できてよいかもしれません。
しかし、種々の問題が出てくる割りには得られるメリットがGUIしかない。
(1) Open Media Vaultをinstallすると出る問題
・WiFiが切れてつながらなくなる。
・DHCPに設定した固定IP Addressが解除されてしまう。
・固定IP Addressが変わるので、SSH がつながらなくなる。
これはOpen Media Vaultが /etc配下のFolderやFileを
消してしまうので発生します。
Open Media Vaultを立上げてこれらの項目を設定すれば、
解決する話ですが知らないと大混乱する。
(2) Diskの登録をしてPartitionをを設定して使用できる状態に
してもなぜか解除されてしまう。
(3) 安定しない。
・これが一番困る。設定を詳細に調べて調整していけば、
安定稼働が行えるかもしれないが誰もができる事ではない。
・InterNetの情報では1年で使用できなくなると書いてあった。
Programの更新が行われた時に、最初から設定の見直しをしなければ、
いけないという手間がかかるという事の様です。
すでにDiskにDataが入った状態になっている時に、初期設定と同じ様な事を
しなければいけない事態になった場合は、これは影響が大きすぎる。
残念ながら、Open Media Vaultを使用する事をあきらめました。
3. SAMBA Server
Linuxで標準的に使用されているAppですから、InterNetに情報がたくさんあり
何ら問題なく5年以上稼働できます。
3.1 Raspbian OS install
・OS DownLoad
Raspbian OS の Download は RaspberryPi の本家からまず Windows用の
RaspberryPi Imager Tool を入手します。
DownLoad Site → RaspberryPi OS
・SD Card に RasPi OS 書き込み
DownLoad した RaspberryPi Imager_1.6.1.exe を起動すると、
C Drive に Imager が install されますので rpi-imager.exe を Click
Operating System は samba が必要なだけで他の GUI Programなどは不要
なので RaspberryPi OS (other) → RaspberryPi OS Lite(32bit)を
選択します。
Storage は USB 変換器に差した SD Card Drive を選択します。
右端の Write をクリックすれば RasberryPi OS の install が始まります。
3.2 初期設定
ここからは、Raspberry Pi 用に keyBoard と Display が必要になります。
Raspberry Pi に、作成した SD Card を Set して電源を入れて起動したら
Default の ID と Password を入力します。
ID : pi
Password: raspberry
まず raspi-config を起動して WiFi や Password や SSH の設定を行います。
$ sudo raspi-config #Raspi 設定File 起動
1 System Options
(1) Wireless LAN
WiFi「SSID」と「Password」を設定して Internet に接続します。
System Options
1 System Options → S1 Wireless LAN
WiFi の SSID を入力します。
WiFi の Password を入力します。
(2) Password
login Password は Default のままでは危険ですから、自分の Password に
書き換えを行います。
S3 Password
Password を打ち込んでもカーソルは動きませんが入力されています。
Password は2回入力します。
3 Interface Options
(1) SSH
Windows パソコンなどから Login 出来る様に SSH を ON に設定します。
3 Interface Options → P2 SSH
P2 SSH
SSH Enable
5 Localisation Options
(1) Locale
Locale で地域と使用言語、使用するコードの設定を行います。
5 Local Options → L1 Locale
L1 Locale
表の中から「ja_JP,UTF8」にカーソルを進めて、空白key を押すと
*印がついて選択されますので Enter 。
ja_JP UTF8 選択
表示されたmenu からja_JP UTF8 を選択して OK を Click。
ja_JP UTF8 選択
(2) Timezone
「Asia」を選択した後→「Tokyo」を選択します。
5 Local Options → L2 Time-zone
L2 Time-Zone
Asia を選択
Time zone Tokyo 選択
(3) WLAN Country
WiFiを使用する国「JP japan」を選択します。
この設定を入れないと WiFi がつながりません。
5 Local Options → L4 WLAN Country
L4 WLAN Country
JP Japan 選択
8 Update
Raspberry Pi OS が最新 Version になる様にUpdate をしておきます。
8 Update
ここまで設定すると一旦再起動して、今度はWindows パソコンから
SSHで接続します。
Windows パソコンから接続するための RaspberryPi の IP Address は、
Raspberry Pi に Login して ifconfig を keyin すれば確認できます。
$ ifconfig
3.3 SAMBA App install
(1) install
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install samba
samba の install が始まります。
install が終わったら status の確認をします。
$ sudo systemctl status smbd
$ sudo systemctl status nmbd
いずれも Active になっていれば可。
(2) smb.conf の設定
$ cd /etc/samba
$ sudo nano smb.conf
以下の設定を追加します。
[global]
client max protocol = SMB3 → ないとWin Explorerに表示されない
client min protocol = SMB3 → ないとWin Explorerに表示されない
interfaces = 192.168.1.0/24 wlan0 #4カラム目は 0 にする。
map to guest = Bad User
[public]
browseable = yes
comment = samba server
create mask = 0775
directory mask = 0775
force group = family
force user = pi
guest ok = yes
path = /home/public
read only = No
valid users = @family
(3) HDD を mount
HDD を mount する Directory を/home に作ります。
$ cd /home
$ mkdir public
(4) Diskの確認
Diskの確認 Commandで名称・状態の確認を行います。
表示されたら mountする Diskの名前をメモしておきます。
$ sudo fdisk -l
Disk /dev/sda
Device /dev/sda1
Diskの mount
$ sudo mount /dev/sda1 /home/public
mountされたか確認
$ df -h
/dev/sda1が /home/publicに mountされていれば OK
(5) 起動時の自動mount
HDDの UUIDを表示させる。
$ blkid
HDD の UUID を表示させ Memo しておく。
$ sudo blkid /dev/sda1
/dev/sda1: UUID="2cd1ee2a-e090-4aec-b6f1-3fe3733da861" TYPE="ext4" PARTUUID="73ca9aae-5111-4f14-97f4-ccc5022dee6f"
再起動した後も mount させるために UUID を fstab に書き込みします。
$ cd /etc
$ sudo nano fstab
UUID=2cd1ee2a-e090-4aec-b6f1-3fe3733da861 /home/piblic ext4 default 0 1
fstab の UUID では、" " を省いて記入します。
設定が終わったら再起動して mount されているか確認します。
$ sudo reboot
再起動
$ cd /home/public
$ df -Th
/home/public に /dev/sda1 が mount されていれば OK です。
fstab の記述を間違うと、立ち上げができなくなるので注意が必要です。
(6) 起動時の mount がうまくいかない時
これは起動時に mount が rc.local より先に実行されることにより発生する
現象です。
InterNet では、色々な解決方法が公開されていますが、かなり複雑で面倒。
この方法は、下記の command を1回実行するだけで解決します。
$ sudo systemctl enable systemd-networkd-wait-online
これで mount は network がつながった後まで待たされます。
3.4 User 設定
(1) User 登録
samba にユーザー追加を行います。
$ sudo useradd pi
$ sudo pdbedit -a pi #samba に pi を登録
$ sudo pdbedit -L #登録の確認
(2) group 登録
samba に group を登録して pi を group に追加します。
$ sudo groupadd family #family 追加
$ sudo usermod -aG family pi #family に pi を追加
(3) Folder の所有権設定
folder の所有権の変更
$ sudo chown -hR pi:family /home/public
$ sudo chmod 775 /home/public
3.5 SD Cardの寿命を延ばす
SD Cardは、HDDなどに比べると寿命が短かいので、最初に壊れてしまいます。
SD Cardの寿命を延ばす方法には種々のやり方があります。
SD Cardの寿命を延ばす方法
1. 容量の大きな SD Cardを使用する。
2. SD Card上のスワップ領域を無効にする。
3. log 出力を減らす。
4. log fileの作成場所を RAM領域に変更する。
1は 現状では 64GBの SD Cardを使用しているので良しとするか。
2は SD Card上のスワップ領域はほとんど使用していないのでそのまま。
スワップ領域を頻繁に使用する様な大きな処理が出てきた時に設定します。
3は、まず最初にやるのはいらない log を減らす事。
$ cd /etc
$ sudo nano rsyslog.conf
SAMBAで使用していない mailや Newsや debugなどは
コメントアウトします
少なくとも故障時の解析に必要なsyslogは残しておきます。
他の解析用 logは、今まで使用してみて、役立った事がないものばかりなので
すべてコメントアウトします。
まずは、これだけ。
これで、まだ寿命が短い様であればやることを増やしてみます。
参考にした site
SD Cardの寿命を延ばす ⇒ RaspberryPiのSD Cardが壊れた
4. パソコンからVNC接続
パソコンからVNCで接続する。
VNC接続する場合はこちら → パソコンからRaspberryPiにVNC接続する
----------------------------------------------------------------------------------------------------------------------------