RaspberryPiでOpenMediaVault
環境
ボード | Raspberry Pi 3 Model B |
ストレージ | SanDisk Ultra microSDHC Class10 8GB |
LAN | 標準搭載のLAN |
アクセスポイント | 標準搭載のWiFi |
失敗
Stretch Liteで準備するとOpenMediaVault3.0(Erasmus)のインストールでエラーが出る
以下のパッケージには満たせない依存関係があります: openmediavault : 依存: php5-fpm しかし、インストールすることができません 依存: php5-cgi しかし、インストールすることができません 依存: php5-cli (>= 5.6) しかし、インストールすることができません 依存: php5-pam しかし、インストールされようとしていません E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
Stretch LiteでPHP5はPHP7へ、MySQLはMariaDBに変わったのが原因のよう
面倒なのでJessie Liteを使用
OSの設定
Jessie Lite最終版ダウンロード先
https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2017-07-05/
OS書き込み
(省略)
キーボードとマウス、モニター、LANを取り付け電源ON
raspberrypi login: pi Password: raspberry
$ sudo raspi-config 7.Advanced Options → A1 Expand Filesystem tabでFinishでreboot
raspberrypi login: pi Password: raspberry
$ sudo apt-get update $ sudo apt-get upgrade
キーボードレイアウト変更
$ sudo raspi-config 4.Localisation Options I3 Change Keyboard Layout → Generic 105-key (Intl) PC → Other → Japanese → Japanese → The default for the keyboard layout → No compose key → No tabでFinish
$ sudo reboot
インストール
OpenMediaVault
参考: OpenMediaVault
参考: OpenMediaVault Documentation
Version Codename確認
Releases — OpenMediaVault Documentation
raspberrypi login: pi Password: raspberry
$ echo "deb http://packages.openmediavault.org/public erasmus main" | sudo tee -a /etc/apt/sources.list.d/openmediavault.list $ wget -O - http://packages.openmediavault.org/public/archive.key | sudo apt-key add - $ sudo apt-get update $ sudo apt-get install openmediavault-keyring $ sudo apt-get install openmediavault
Postfix Configuration → No configuration ⏎ Configuring mdadm → 空白にして ⏎ ProFTPD configuration → standalone ⏎ Configuring openmediavault ⏎
$ sudo apt-get install resolvconf $ sudo omv-initsystem
OMVExtras
参考: OMVExtras
For OMV 3.x (erasmus)
$ sudo wget http://omv-extras.org/openmediavault-omvextrasorg_latest_all3.deb $ sudo dpkg -i openmediavault-omvextrasorg_latest_all3.deb $ sudo apt-get update
動作確認
IP確認
$ ifconfig
ローカルネット内の他のPCから
http://<ifconfig eth0のaddr> User: admin Password: openmediavault
成功してれば、LANと電源以外取り外し
パーティション
OpenMediaVaultは「デバイス」を作り、「デバイスに共有フォルダ」を作り、各機能で「共有フォルダを指定」することで機能するように見える
デバイスの選択はUSBメモリを挿せば機能するが、ここでは/dev/mmcblkのパーティションを切ってMicroSDHCの一部をデバイスにしてみる
他のPCでUbuntu GPartedを使いパーティションを切る
設定 > システム
一般設定
※ Nginxのwebサーバを80番ポートにしたいので管理画面は8080番
Web管理
ポート: 80 → 8080 セッションタイムアウト: 5 → 0 保存 # エラーが出るが気にしない 右上▼ > ログアウト
http://<ifconfig eth0のaddr>:8080 ユーザー名: admin パスワード: openmediavault
Web管理者パスワード
パスワード: 0000 保存 右上▼ > ログアウト
http://<ifconfig eth0のaddr>:8080 ユーザー名: admin パスワード: 0000
日付&時刻
タイムゾーン: Etc/UTC → Japan NTPサーバを使用する: OFF → ON 時刻サーバ: pool.ntp.org → ntp.nict.jp 保存
ネットワーク
一般
ホスト名: raspberrypi → nas 保存
インタフェース
追加 > イーサネット 一般設定 名前: eth0 IPv4 > メソッド: DHCP IPv6 > メソッド: 無効 保存 右上▼ > 再起動
http://nas.local:8080 ユーザー名: admin パスワード: 0000
通知
有効化: ON SMTPサーバ: smtp.gmail.com SMTPポート: 25 → 587 SSL/TSLセキュアコネクションを利用する: ON 送信者のメールアドレス: 自分のGmailアドレス 認証の要求: ON ユーザ名: 自分のGmailアドレス パスワード: 自分のGmailのパスワード(二段階認証の場合はアプリパスワードを使用) プライマリメール: 自分のGmailアドレス 保存
電源管理
モニタリング: ON → OFF 保存
モニタリング
有効化: ON → OFF 保存
証明書
SSH
追加 > 作成 Create SSH certificate コメント: key
アップデート管理
設定
プレリリースされたアップデート: ON コミュニティーによるメンテナンスアップデート: ON 保存
アップデート
チェック 全て✔ アップグレード
OMV-Extras
リポジトリ
OMV-Extras.org Testing > 編集 > 有効: ON > 保存
プラグイン
※プラグイン全てを入れ、要らないものをアンインストールする手順踏むと管理画面の読み込みに時間が掛かる現象があり使い物にならないので不要なものは入れない
チェックで更新
チェック✔してインストール
3個はエラーが出るのでインストールしない
openmediavault-iscsitarget openmediavault-nut openmediavault-virtualbox
使いそうにない以下もインストールしない
openmediavault-duplicati openmediavault-couchpotato openmediavault-deluge openmediavault-jdownloader openmediavault-nzbget openmediavault-pyload openmediavault-radarr openmediavault-sabnzbd openmediavault-sickbeard openmediavault-sonarr openmediavault-mumble openmediavault-subsonic openmediavault-vdr openmediavault-vdr-extras openmediavault-vdr-vnsiserver openmediavault-dnsmasq openmediavault-domoticz openmediavault-letsencrypt openmediavault-wakealarm
設定 > ストレージ
ファイルシステム
/dev/mmcblk0p3を選択 > マウント
フラッシュメモリ
SSHかShell in a boxを有効後に設定
OpenMediaVaultの指示に従わない
現状は
PARTUUID=45534226-01 /boot vfat defaults 0 2 PARTUUID=45534226-02 / ext4 defaults,noatime 0 1 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on|off] for that tmpfs /tmp tmpfs defaults 0 0 # >>> [openmediavault] /dev/disk/by-id/mmc-SU08G_0xd2bc1f42-part3 /srv/dev-disk-by-id-mmc-SU08G_0xd2bc1f42-part3 ext4 defaults,no$ /srv/dev-disk-by-id-mmc-SU08G_0xd2bc1f42-part3/mydata /export/mydata none bind,nofail 0 0 # <<< [openmediavault]
noatimeとnodiratimeの設定
参考: 革命の日々! relatimeがどこで実装されているのか調べてみた
$ sudo nano /etc/fstab
PARTUUID=45534226-02 / ext4 defaults,noatime 0 1 を PARTUUID=45534226-02 / ext4 defaults,noatime,nodiratime 0 1
swap無効化の設定
参考: Raspberry Pi -RASPBIAN- のswapを無効化 - Qiita
$ sudo insserv -r dphys-swapfile
設定 > アクセス権の管理
ユーザー
ユーザー > pi選択 > 編集
パスワード: 0000 パスワードの確認: 0000 保存
共有フォルダ
共有フォルダ > 追加
名前: mydata デバイス: /dev/mmcblk0p3 [3.01 MiB (1%) used, 1.78 GiB available] パス: mydata/ パーミッション: みんな:読み/書き 保存
共有フォルダ > mydata選択
特権 PiユーザーとPiグループの「読み/書き」にチェック > 保存
設定 > サービス
Apple Filing
設定
有効: OFF → ON 保存
共有 > 追加
有効: ON 共有フォルダ: mydata [on /dev/mmcblk0p3, mydata/] コメント: 空白 パスワード: 空白 読み込み専用: OFF ゲストログイン: OFF → ON ゲストのパーミッション: OFF → ON TimeMachineサポート: OFF → ON 保存
DLNA
設定
有効: ON 名前: MiniDLNA Server on OpenMediaVault → MiniDLNA ポート: 8200 Strict DLNA: OFF TiVoサポート: ON ルートコンテナ: 標準 ログレベル: エラー 保存
共有 > 追加
共有フォルダ: mydata [on /dev/mmcblk0p3, mydata/] コンテンツタイプ: すべてのメディア 保存
確認
http://nas.local:8200
FTP
設定
有効: ON ポート: 21 最大クライアント: 5 ホストあたりの最大コネクション: 2 最大ログイン試行回数: 1 → 4 タイムアウト: 1200 → 0 パッシブFTP: ON 49152 65534 保存
共有 > 追加
有効: ON 共有フォルダ: mydata [on /dev/mmcblk0p3, mydata/] 保存
確認(FFFTPの場合)
ホスト名(アドレス): nas.local ユーザー: pi パスワード: 0000
iTunes/DAAP
設定
有効: ON ライブラリ名: %h - iTunes/DAAP ポート: 3689 共有フォルダ: なし → mydata [on /dev/mmcblk0p3, mydata/] 認証: OFF 保存
確認(iTunesの場合)
ライブラリをnas - iTunes/DAAP
MySQL
設定
有効: OFF → ON ネットワークを有効にする: ON ポート: 3306 バインドアドレス: 127.0.0.1 → 0.0.0.0 AIOを無効化: OFF SQL管理サイト > 有効: ON 保存
確認
http://nas.local:8080/mysql ユーザーID: root パスワード: (空白) サーバ: localhostMySQL 言語: 日本語
NFS
設定
有効: OFF → ON サービス番号: 8 保存
共有 > 追加
共有フォルダ: mydata [on /dev/mmcblk0p3, mydata/] クライアント: 空白 特権: 読み/書き その他のオプション: subtree_check,insecure 保存
Nginx
設定
有効: OFF → ON 保存
プール > 追加
名前: www-data ユーザー: www-data グループ: www-data エラーの表示: OFF HTMLエラー: ON 最大実行時間(s): 30 メモリ上限(MB): 128 最大POSTサイズ(MB): 8 最大アップロードサイズ(MB): 2 最大子プロセス: 5 サービス開始: 2 最小スペアサーバ: 1 最大スペアサーバ: 3 最大リクエスト: 0
サーバ > 追加
有効: ON ディレクトリ: mydata [on /dev/mmcblk0p3, mydata/] ルートの使用: ON 公開ディレクトリを使用します: OFF ホストタイプ: ポート ポート: 80 デフォルトサーバ: OFF SSLを有効にする: OFF PHPを有効にする: ON PHP-FPMプール: www-data デフォルトの設定: ON インデックスの使用: ON index.html: ON index.php: ON Autoindex: OFF .htaccess: OFF ログを有効化: ON → OFF ヘッダバッファサイズ: 8k
確認
$ sudo nano /export/mydata/index.php
<?php phpinfo(); ?>
http://nas.local
Remote Desktop
OFFにする項目が無いので常にON?
確認(Windows10の場合)
スタートメニューのプログラムリスト → Windowsアクセサリ → リモートデスクトップ接続 コンピュータ: nas.local オプションの表示 > 画面 > 画面の設定 > 1280x720ピクセル 接続 Module: sesman-Xvnc username: pi password: 0000
SFTP
設定
有効: OFF → ON ポート: 222 → 22 パスワード認証: ON 公開鍵認証: OFF → ON AllowGroups: OFF 保存
確認(WinSCPの場合)
転送プロトコル: SFTP ホスト名: nas.local ポート番号: 22 ユーザー名: pi パスワード: 0000
ShairPort(AirPlay)
設定
有効: OFF → ON 名前: (空白) → nas
Shell in a box
設定
有効: OFF → ON Linkify: none ビープ: OFF ターミナル設定 > 有効: OFF 保存
確認
https://nas.local:4200 https接続なのでブラウザの例外で許可 nas login: pi pi@nas's password: 0000
SMB/CIFS
設定
有効: OFF → ON ワークグループ: WORKGROUP 説明: %h server ローカルマスタブラウザ: ON 時刻サーバ: OFF ホームディレクトリ > 有効: OFF 参照可能: ON 保存
共有 > 追加
有効: ON 共有フォルダ: mydata [on /dev/mmcblk0p3, mydata/] パブリック: ゲストのみ 読み込み専用: OFF 参照可能: ON ACLを継承: ON パーミッションを継承: OFF ごみ箱: OFF ドットファイルを非表示: ON → OFF 拡張属性: OFF DOS属性を書き込む: OFF 許可するホスト: (空白) 拒否するホスト: (空白) 監査: OFF その他オプション: (空白)
確認
エクスプローラで\\nas
SNMP
設定
有効: OFF 保存
SSH
設定
有効: ON ポート: 22 rootアカウントでのログインの許可: ON パスワード認証: ON 公開鍵認証: ON TCP転送: OFF 圧縮: OFF
確認(TeraTermの場合)
ホスト: nas.local TCPポート: 22 ユーザ名: pi パスフレーズ: 0000
TFTP
設定
有効: OFF → ON ポート: 69 共有フォルダ: なし → mydata [on /dev/mmcblk0p3, mydata/] ブロックサイズ: 512 リトライタイム: 1000000 新しいファイルを許可: OFF → ON
確認(tftpd64の場合)
未検証
WebDAV
設定
有効: OFF → ON 共有フォルダ: mydata [on /dev/mmcblk0p3, mydata/] Filesize upload limit(MiB): 2 → 10000
確認
http://nas.local:8080/webdav ユーザ名: admin パスワード: 0000
アンチウィルス
設定
有効: OFF → ON データベースチェック: 24 → 1 検疫: なし → mydata [on /dev/mmcblk0p3, mydata/] ログファイルの整形: OFF Portable Executable(PE)のスキャン: ON OLE2のスキャン: ON HTMLのスキャン: ON PDFのスキャン: ON ELFのスキャン: ON 圧縮ファイルのスキャン: ON 壊れた実行ファイルを検出: OFF PUAの検出: OFF アルゴリズム的検出: ON ディレクトリのシンボリックリンクをたどる: OFF ファイルのシンボリックリンクをたどる: OFF 保存
印刷中(AirPrint)
いまいち快適に動かないのでOFF
設定 > 診断
システム情報
CPU使用率: 0-50%程度
メモリ使用率: 65%程度
システムログ
エラーログ
snmpd[1445]: error on subcontainer 'ia_addr' insert (-1) 対処: サービス > SNMP を一度有効に、再度無効でエラー消えた
アクセスポイント化
標準搭載のWiFiをアクセスポイント化してみます
参考: Using your new Raspberry Pi 3 as a WiFi access point with hostapd
wlan0をDHCPから外す
$ sudo nano /etc/dhcpcd.conf
末尾に追記
denyinterfaces wlan0
wlan0のIP固定
$ sudo nano /etc/network/interfaces
修正
# The loopback network interface auto lo iface lo inet loopback # eth0 network interface auto eth0 allow-hotplug eth0 iface eth0 inet dhcp iface eth0 inet6 manual pre-down ip -6 addr flush dev $IFACE # wlan0 network interface allow-hotplug wlan0 iface wlan0 inet static address 10.0.0.1 netmask 255.255.255.0 network 10.0.0.0 broadcast 10.0.0.255
hostapd
インストール
$ sudo apt-get install hostapd
新規作成
$ sudo nano /etc/hostapd/hostapd.conf
interface=wlan0 driver=nl80211 ssid=なす hw_mode=g channel=11 ieee80211n=1 wmm_enabled=1 ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40] macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_key_mgmt=WPA-PSK wpa_passphrase=19191818 rsn_pairwise=CCMP
書き換え
$ sudo nano /etc/default/hostapd
#DAEMON_CONF="" を DAEMON_CONF="/etc/hostapd/hostapd.conf"
dnsmasq
インストール
$ sudo apt-get install dnsmasq
新規作成
$ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig $ sudo nano /etc/dnsmasq.conf
interface=wlan0 listen-address=10.0.0.1 bind-interfaces server=8.8.8.8 domain-needed bogus-priv dhcp-range=10.0.0.50,10.0.0.150,12h
iptables
書き換え
$ sudo nano /etc/sysctl.conf
コメント削除
net.ipv4.ip_forward=1
実行
$ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
新規作成
$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE $ sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT $ sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT $ sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
書き換え
$ sudo nano /etc/rc.local
exit 0の前に追記
iptables-restore < /etc/iptables.ipv4.nat
再起動
$ sudo reboot
確認
モニタ、キーボードからアクセス
ユーザ名 | パスワード |
pi | 0000 |
LANからアクセス
インターフェイス | IP | ユーザ名 | パスワード |
Nginx | http://nas.local | - | - |
OpenMediaVault | http://nas.local:8080 | admin | 0000 |
WebDAV | http://nas.local:8080/webdav | admin | 0000 |
MySQL | http://nas.local:8080/mysql | root | - |
Shell in a box | https://nas.local:4200 | pi | 0000 |
FTP | nas.local | pi | 0000 |
SFTP | nas.local | pi | 0000 |
SSH | nas.local | pi | 0000 |
RemoteDesktop | nas.local | pi | 0000 |
DLNA | http://nas.local:8200 | - | - |
SMB | \\nas | - | - |
アクセスポイントからアクセス
SSID | パスワード |
なす | 19191818 |
インターフェイス | IP | ユーザ名 | パスワード |
Nginx | http://10.0.0.1 | - | - |
OpenMediaVault | http://10.0.0.1:8080 | admin | 0000 |
WebDAV | http://10.0.0.1:8080/webdav | admin | 0000 |
MySQL | http://10.0.0.1:8080/mysql | root | - |
Shell in a box | https://10.0.0.1:4200 | pi | 0000 |
FTP | 10.0.0.1 | pi | 0000 |
SFTP | 10.0.0.1 | pi | 0000 |
SSH | 10.0.0.1 | pi | 0000 |
RemoteDesktop | 10.0.0.1 | pi | 0000 |
DLNA | http://10.0.0.1:8200 | - | - |
SMB | \\nas | - | - |
不具合の対処
OpenMediaVaultのシステム > ネットワーク > インタフェースで変更を加えるとinterfacesの記述が変更されてしまう
手動で修正
$ sudo nano /etc/network/interfaces
# The loopback network interface auto lo iface lo inet loopback # eth0 network interface auto eth0 allow-hotplug eth0 iface eth0 inet dhcp iface eth0 inet6 manual pre-down ip -6 addr flush dev $IFACE # wlan0 network interface allow-hotplug wlan0 iface wlan0 inet static address 10.0.0.1 netmask 255.255.255.0 network 10.0.0.0 broadcast 10.0.0.255
検討項目
- アクセスポイント化するとAirPrintが機能してないように見える
- SNMPとTFTPの価値が見えてない
- OSの最適化ができてない