Webページ:https://git.bokunimo.com/nas/
- Raspberry Pi Imager(PC用ソフト):
https://www.raspberrypi.org/downloads/
-
ドライブとパーティションを表示する
pi@raspberrypi:~ $
ls /dev/sd*
⏎
/dev/sda /dev/sda1 -
パーティションの情報を確認する
pi@raspberrypi:~ $
sudo fdisk -l /dev/sda
⏎
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 250069678 250067631 119.2G 83 Linux -
ディレクトリの作成とマウントを実行
pi@raspberrypi:~ $
sudo mkdir -pm775 /mnt/ssd1
⏎
pi@raspberrypi:~ $sudo mount /dev/sda1 /mnt/ssd1
⏎ -
マウントできたかどうかを確認する
pi@raspberrypi:~ $
df
⏎
/dev/sda1 123071848 63156 116757004 1% /mnt/ssd1 -
ファイル共有サーバSambaをインストールする
pi@raspberrypi:~ $
sudo apt-get update
⏎
pi@raspberrypi:~ $sudo apt-get install samba
⏎ -
設定ファイルに[nas]を追加する
pi@raspberrypi:~ $
sudo mousepad /etc/samba/smb.conf
⏎[nas] comment = NAS for DMS path = /mnt/ssd1 guest ok = yes read only = yes
-
パーティションのリストを確認
pi@raspberrypi:~ $
mount|grep ^/dev/
⏎
/dev/mmcblk0p7 on / type ext4 (rw,noatime)
/dev/mmcblk0p6 on /boot type vfat(rw,relatime,~)
/dev/sda1 on /mnt/ssd1 type ext2 (rw,relatime) -
自動マウントしたいパーティション情報
マウント先 /mnt/ssd1
フォーマット形式 ext2 (購入したSSDによって違う)
オプション rw,relatime (購入したSSDによって違う) -
パーティション/dev/sda1のUUIDを調べる
pi@raspberrypi:~ $
sudo blkid
⏎
/dev/sda1: UUID="~" TYPE="ext2" PARTUUID=”~” -
設定ファイル/etc/fstabの最下行に、上記を追記する
UUID="~" /mnt/ssd1 ext2 rw,relatime 0 2
-
ラズベリー・パイを再起動する
pi@raspberrypi:~ $
sudo reboot
⏎
-
メディア・サーバReadyMediaをインストールする
pi@raspberrypi:~ $
sudo apt-get install minidlna
⏎ -
コンテンツ用ディレクトリを作成する
pi@raspberrypi:~ $
sudo mkdir -pm777 /mnt/ssd1/minidlna/pictures
⏎
pi@raspberrypi:~ $sudo mkdir -pm777 /mnt/ssd1/minidlna/music
⏎
pi@raspberrypi:~ $sudo mkdir -pm777 /mnt/ssd1/minidlna/videos
⏎
pi@raspberrypi:~ $sudo chown -R minidlna:minidlna /mnt/ssd1/minidlna/
⏎ -
設定ファイルにコンテンツのパスを記入する
pi@raspberrypi:~ $
sudo mousepad /etc/minidlna.conf
⏎'''minidlna.conf media_dir=P,/mnt/ssd1/minidlna/pictures media_dir=A,/mnt/ssd1/minidlna/music media_dir=V,/mnt/ssd1/minidlna/videos '''
-
メディア・サーバReadyMediaを再起動する
pi@raspberrypi:~ $
sudo service minidlna restart
⏎
-
マウントの解除
pi@raspberrypi:~ $
sudo umount /dev/sda1
⏎ -
fdiskの起動
pi@raspberrypi:~ $
sudo fdisk /dev/sda
⏎
Welcome to fdisk (util-linux 2.33.1).
~表示省略~ -
fdiskでパーティション削除
Command (m for help):
delete -a
⏎
Selected partition 1
Partition 1 has been deleted. -
fdiskでパーティション作成
Command (m for help):
new
⏎
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):⏎Using default response p.
Partition number (1-4, default 1): ⏎
First sector (2048-250069678, default 2048): ⏎
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-250069678, default 250069678): ⏎
~表示省略~
Do you want to remove the signature? [Y]es/[N]o:Y
⏎The signature will be removed by a write command.
-
fdiskでパーティション変更の実行
Command (m for help):
write
⏎
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks. -
mkfsでファイル・システムの作成
pi@raspberrypi:~ $
sudo mkfs /dev/sda1
⏎
mke2fs 1.44.5 (15-Dec-2018)
~表示省略~
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done -
作成したボリュームの確認
pi@ raspberrypi:~ $
ls /dev/sd*
⏎
/dev/sda /dev/sda1
-
アカウントdmsuserを作成する
pi@raspberrypi:~ $
sudo useradd dmsuser
⏎
pi@raspberrypi:~ $sudo pdbedit -a dmsuser
⏎
new password: ********** ⏎
retype new password: ********** ⏎ -
設定ファイルに[minidlna]を追加する
pi@raspberrypi:~ $
sudo mousepad /etc/samba/smb.conf
⏎[minidlna] path = /mnt/ssd1/minidlna browseable = yes read only = no guest ok = no
https://www.arduino.cc/en/Main/Software
-
本誌の実験用サンプル・プログラム:
https://github.com/bokunimowakaru/m5camera/archive/master.zip -
ラズベリー・パイ用カメラ・サーバのダウンロードと実行
pi@raspberrypi:~ $
git clone https://github.com/bokunimowakaru/m5camera
⏎
pi@raspberrypi:~ $cd m5camera/tools
⏎
pi@raspberrypi:~ $./get_photo_ssd.sh
⏎
-
Nextcloudのインストール
sudo apt install apache2 sudo apt install php sudo apt install mariadb-client sudo apt install mariadb-server cd /var/www/html sudo wget https://download.nextcloud.com/server/releases/nextcloud-19.0.3.zip sudo unzip nextcloud-19.0.3.zip cd nextcloud sudo mkdir -pm750 data sudo chown -R www-data:www-data data sudo chown -R www-data:www-data config sudo chown -R www-data:www-data apps
-
PHPライブラリの追加(起動に必要)
sudo apt install php-mysql sudo apt install php-pgsql sudo apt install php-zip sudo apt install php-intl sudo apt install php-xml sudo apt install php-mbstring sudo apt install php-gd sudo apt install php-curl sudo service apache2 restart
上記はNextcloudの起動に必要な最小限度の構成です。他にも要件があるので、本格的に使用する際は下記の「Prerequisites for manual installation」をご覧ください。
https://docs.nextcloud.com/server/19/admin_manual/installation/source_installation.html -
データベースへのアカウント追加(passwordは変更する) データベースと作成し、Nextcloudからのアクセス用のパスワードを設定します。
sudo mysql MariaDB [(none)]> create database nextcloud_db; MariaDB [(none)]> create user 'nxcuser'@'localhost' identified by 'password'; MariaDB [(none)]> grant all privileges on nextcloud_db.* to 'nxcuser'@'localhost'; MariaDB [(none)]> quit;
-
SSD内にデータ用ディレクトリを作成
sudo mkdir -pm777 /mnt/ssd1/nextcloud sudo chown www-data:www-data /mnt/ssd1/nextcloud
-
ブラウザでアクセスし、設定を行う。管理者アカウントはpiやnxcuserを避ける
http://127.0.0.1/nextcloudユーザ名 :(他と違うユーザ名) パスワード:(他と違うパスワード) データフォルダー:/mnt/ssd1/nextcloud データベースのユーザ名 :nxcuser データベースのパスワード:password データベース名 :nextcloud_db
しばらく「待機中」が続く、数分以上待つと、起動します(数分以上)。
-
(参考) Nextcloud の初期化方法
★注意:すべての設定などが消えます。
実験で準備したNextcloudを作り直したいときは、以下のコマンドで、Nextcloudの環境を消去することが出来ます。# Nextcloud の履歴や設定を初期化します(消えます) cd /var/www/html sudo rm -Rf nextcloud sudo unzip nextcloud-19.0.3.zip cd nextcloud sudo mkdir -pm750 data sudo chown -R www-data:www-data data sudo chown -R www-data:www-data config sudo chown -R www-data:www-data apps sudo mysql MariaDB [(none)]> drop database nextcloud_db; MariaDB [(none)]> create database nextcloud_db; MariaDB [(none)]> quit; sudo service apache2 restart
-
(参考) データベースのroot用のパスワードを設定するには以下のコマンドを入力します。
MariaDB [(none)]> update mysql.user set password=password('password1') where user = 'root'; MariaDB [(none)]> flush privileges;
-
(参考) セキュリティ自己診断機能
ユーザアイコンの[設定]をクリックし、左側のサイド・メニュー(表示されない場合は、ウィンドウ幅を広げるかメニューアイコンをクリック)の項目「管理」の[概要]をクリックすると自己診断が実行されます。
サーバをインターネットに公開する場合は、必ず診断結果を確認して下さい。
著作権のあるコンテンツをインターネットに公開すると、仮に誤操作や不具合であったとしても、権利者への賠償責任と法律による刑事罰の対象となる場合があります。
ラズベリー・パイは、プログラミング学習用として設計されました。
ホーム・サーバとして常時通電した動作は、想定されていません。
また、M5CameraやT-Cameraについても安全性や信頼性が確保されていない実験用の製品です。
これらの製品を常時・通電して運用する場合は、自己責任で安全性や信頼性、合法性などに留意する必要があります.
具体的には、ラズベリー・パイやM5Camera、T-Camera、周辺機器、ACアダプタなどによる火災を起こさないための対策や、
インターネットからの脅威に対する備え、著作権のあるコンテンツの適切な管理、マイクロSDカードやSSDなどの寿命に対する考慮が必要です。
- 火災を起こさないための対策
- インターネット・セキュリティ対策
- 著作権に対する管理
- データ破損に対する対策
とくに、上記1~3については、自分だけでなく他人や社会を巻き込む恐れがあるので、慎重に取り扱ってください。
- 機器ごと、用途ごとにアカウントとパスワードを設定(同じパスワードを共用しない)
- ファイヤーウォールの設置(ホーム・ゲートウェイ、ラズベリー・パイ本体など)
- ファイルの読み書き実行権限の設定
- OS、アプリケーション、ライブラリの定期的な更新
- 不正侵入や不正操作の監視(ログイン履歴、アクセス履歴の保存と拒絶時のアラート送信など)
by 国野 亘 https://bokunimo.net