ラズパイ って何だべ~? 私設 基板実験室

地元東松島市のイベントや、パソコン・ラズベリーパイの実験報告しています

Raspberry Pi 3 でSambaサーバー構築法、Webminも入れると、クライアントPCからの設定・監視・コマンドが超便利になる!!

  

f:id:masa19569810303:20190109205345p:plain

 

 

はじめに

 ラズパイでデータ共有サーバーを構築すると非常に便利です。一般的な方法として、Windowsファイル共用のオープンソース”Samba”を入れ、conf設定ファイルの修正で行います。これだけではつまらないので、クライアントPCのWebブラウザで、Samba設定がいじれたり、状態を監視できる、Webminというオープンソースも入れてみました。

昔、PCにLinuxを入れた時に一度やったことがありましたが、ラズパイにも適用可能かやってみました。設定状況をWebブラウザ見える化すると、とても便利で、サーバーの動作の勉強にもなります。

 

ラズパイで共有サーバー実現方法

 

下記のように、方法1がだめでしたので、方法2で実現しました。

 

方法1:SWATという、Samba設定に特化したWebブラウザで操作するオープンソースが昔ありましたが、今、調べて見ると、最近のSamba-Ver4では、サポート中止・更新も止まっていました。(脆弱性の問題とか、そもそも更新する人がいなくなったためのようです。)

試しに、apt-getでインストールしてみると、やはり、SWATは廃止と考えて良いようです。

f:id:masa19569810303:20190109205534p:plain

 方法2:Samba設定を含め、サーバー各設定の管理まで行えるものに、Webminというもの、昔からありました。現在も更新されているようなので、今回はこれをラズパイにインストールしました。

外部ハードディスク接続

 ※chinathuでやってみた、外部HDのマウントから手順を復習を兼ねて追記しました。(1/10)

 

最初に、ハードディスクをアンマウントします。(自動でマウントされてある場合を想定して)

#dfコマンドでマウント状態の確認
pi@raspberrypi:~ $ df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/root 7593848 6149268 1072628 86% /
devtmpfs 470116 0 470116 0% /dev
tmpfs    474724 0 474724 0% /dev/shm
tmpfs 474724 12388 462336 3% /run
tmpfs 5120 4 5116 1% /run/lock
tmpfs 474724 0 474724 0% /sys/fs/cgroup
/dev/mmcblk0p1 43539 22502 21037 52% /boot
tmpfs 94944 0 94944 0% /run/user/1000
/dev/sda1 1921802500 77856 1824032584 1%/media/pi/e1e1258a-8143-49db-a87b-21b4a8b0c46b
※ /sda1 でマウントされている例
# umount /dev/sda1 ← /dev/sda1 をアンマウント
pi@raspberrypi:~ $ df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/root 7593848 6149264 1072632 86% /
devtmpfs 470116 0 470116 0% /dev
tmpfs 474724 0 474724 0% /dev/shm
tmpfs 474724 12384 462340 3% /run
tmpfs 5120 4 5116 1% /run/lock
tmpfs      474724 0 474724 0% /sys/fs/cgroup
/dev/mmcblk0p1 43539 22502 21037 52% /boot
tmpfs 94944 0 94944 0% /run/user/1000

※ /dev/sda1のマウントが解除され表示されなくなった
# パーティションテーブルの設定を行います

sudo fdisk /dev/sda1

# d でパーティションを削除

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

# p で現在の状態を確認

Command (m for help): p
Disk /dev/sda1: 1.8 TiB, 2000397868544 bytes, 3907027087 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: 0x19867eb5

# n でパーティションを作成 その後の設定で何も入力しない場合全てデフォルトとなる

pi@raspberrypi:~ $ sudo fdisk /dev/sda1
Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command. Device /dev/sda1 already contains a ext4 signature.
The signature will be removed by a write command. Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x19867eb5. Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-3907027086, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-3907027086, default 3907027086): Created a new partition 1 of type 'Linux' and of size 1.8 TiB.

 

# p で再度現在の状態を確認

Command (m for help): p
Disk /dev/sda1: 1.8 TiB, 2000397868544 bytes, 3907027087 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: 0x19867eb5 Device Boot Start End Sectors Size Id Type
/dev/sda1p1 2048 3907027086 3907025039 1.8T 83 Linux

 

# w で変更を書き込みます

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).

ext4でフォーマットする

sudo mkfs.ext4 /dev/sda1
pi@raspberrypi-c:~ $ sudo mkfs.ext4 /dev/sda1
mke2fs 1.43.4 (31-Jan-2017)
Found a dos partition table in /dev/sda1
Proceed anyway? (y,N) y
Creating filesystem with 488378385 4k blocks and 122101760 inodes
Filesystem UUID: e94a9fef-fc73-4b8c-ae9b-56f0ee10fce8
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848 Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

 

マウントする

/etc/fstabに、デバイスを登録することにより、起動時に自動マウントすることができます。 またデバイスのパスではなくUUIDを登録しておくことにより、デバイスのパスが変更されてもマウントすることが可能です。

マウントポイントを作成
必要に応じてマウントポイントを作成します。今回は/mnt/hdd1としました。

sudo mkdir /mnt/hdd1

UUIDを調べる
# ブロックデバイスの情報を表示する

pi@raspberrypi:~ $ sudo blkid /dev/sda1
/dev/sda1: UUID="e94a9fef-fc73-4b8c-ae9b-56f0ee10fce8" TYPE="ext4" PARTUUID="9bcc73b5-079a-4f69-a809-d0122aa289d1"

 

fstabを編集

# バックアップをとっておく

cd /etc
sudo cp fstab fstab.bak

# fstabを編集しマウント設定を追加

sudo nano fstab
# デバイス名 マウントポイント ファイルシステム オプション dump指定 fsck指定
UUID=e94a9fef-fc73-4b8c-ae9b-56f0ee10fce8 /mnt/hdd1 ext4 nofail 0 0

# 再起動

$ sudo reboot

# 確認

$ df
f | grep /mnt/hdd1
pi@raspberrypi:~ $ df | grep /mnt/hdd1
/dev/sda1 1921802500 77852 1824032588 1% /mnt/hdd
 

共用フォルダ作成

$ cd /mnt/hdd1
$ sudo mkdir Public


sambaのインストールと設定

sambaのインストール

pi@raspberrypi:~$ sudo apt install -y samba

設定ファイルに /mnt 以下を読み取り専用、ゲストアクセスOKで公開するよう設定を追加します。


#sambaの設定ファイルの編集

pi@raspberrypi:~$ sudo nano /etc/samba/smb.conf

/etc/samba/smb.conf
....
#ファイルの末尾に以下の行を追加

[Public]
comment = Public
path = /mnt/hdd1/Public
browseable = no
read only = no
guest ok = no

 

sambaを再起動して設定を有効にします。


#sambaの再起動

pi@raspberrypi:~$ sudo systemctl restart smbd nmbd

Windowsから ¥¥(録画サーバのIP)¥Public  (¥は半角)にアクセスしてフォルダが見れれば成功です。

 

Webminインストール

前処理が必要で下記Debianの記事を参考にさせてもらいました。

pandametal.xsrv.jp

 

前処理後、ようやくapt-getでインストールが出来ます

pi@raspberrypi:~ $ cd /
pi@raspberrypi:/ $ sudo wget http://www.webmin.com/jcameron-key.asc
pi@raspberrypi:/ $ sudo apt-key add jcameron-key.asc
pi@raspberrypi:/ $ sudo apt-get install apt-transport-https
pi@raspberrypi:/ $ sudo apt-get update
pi@raspberrypi:/ $ sudo apt-get install webmin 

f:id:masa19569810303:20190109205312p:plain

 プライバシーポリシーが出るが、問題ないので、無視して進むと、webminの ID、パスワード要求メニューが出ます。ラズパイのユーザーIDは、”pi“  ,パスワードはインストール時に設定変更していると思うので、それを入れます。

 

/pre>f:id:masa19569810303:20190109205555p:plain

 

 すると 英語のconfigメニューが現れる。言語設定メニューで日本語を入れると

f:id:masa19569810303:20190109205113p:plain

 

f:id:masa19569810303:20190109205131p:plain

日本語のwebmin設定画面になります。

f:id:masa19569810303:20190109205148p:plain

 

/etc/samba/smb.conf の設定が画面で行える。設定を保存したら、ラズパイのコンソールで rebootしてあげると有効になるみたい。

f:id:masa19569810303:20190109205507p:plain

 これで、クライアントPC側から Sambaの共有フォルダが見えたら成功。

 

 

 Sambaの設定監視以外にも、下記のような、ローカルディスクの状態監視や、システムインフォメーションで CPU、RAM の %表示で動作状況が見れます。(動作が見えると安心しますね。)

f:id:masa19569810303:20190109205251p:plain

 

f:id:masa19569810303:20190116230340p:plain

 

f:id:masa19569810303:20190109205345p:plain

 

 超便利なWebminの機能(1/16追記)

 設定・監視機能のほかに、下記の超便利な機能がありました。
これがあれば、サーバーにSSHVNCで繋ぐことなく、Webminで操作が完結します。

 ・ファイルマネージャー機能

  普通にファイルのコピー・削除・リネームが出来てしまいます

 

f:id:masa19569810303:20190116224341p:plain

 

f:id:masa19569810303:20190116224357p:plain

さらにプロパティで、各ファイルのパーミッション(アクセス許可)変更もGUIで出来てしまいます。 

f:id:masa19569810303:20190117144938p:plain

 

 ・コマンドライン機能

  まさかの機能ですが、コマンドシェルが出て来て、普通に

  コマンド実行が出来ました。

  

f:id:masa19569810303:20190116224428p:plain

 

f:id:masa19569810303:20190116224440p:plain

 結果

 ラズパイ3のネットワーク共用データサーバー、SambaとWebminを使って非常に順調に、便利に運用中です。
予想以上に、Webminが超便利です。動作状態がリアルタイムで確認出来るし、インストールされているパッケージソフトのアップデートも、さらに、ファイルマネージャーもコマンドシェルも、クライアントのブラウザ上からできました。

 

 ※ただし、外部HDに保管するデータは、定期的にバックアップを取るようにした方が良いです。私の設定の不備だと思いますが、 一度だけ、外部HDを認識しなくなり、一瞬でデータが使えなくなって、再フォーマットと再マウントをしました。 

※参考:上記のこのHDを認識しなくなる現象、ネット検索すると、他のラズパイでも発生してたようですね(下記)。対策例をやってみたところ、今のところ問題ないです。要注意です。

qiita.com

 

 今後の予定

 このラズパイの共用サーバーは、ドキュメントのほかに、音楽、ビデオ、写真なども入れ、パソコン以外のネットTVからも使えるようにもに出来そうなのでやってみます。実現したら、また公開します。  今回はここまで。