OpenMediaVaultのインストールエラー
tailscale VPNつかってL2トンネル構築しているRaspberry PiをNAS化しようと、OpenMediaVaultをインストールしたら、以下のエラーが出ました。
----------
ID: apply_netplan_config
Function: cmd.run
Name: netplan apply
Result: False
Comment: Command "netplan apply" run
Started: 22:32:58.808647
Duration: 362.507 ms
Changes:
----------
pid:
847
retcode:
78
stderr:
/etc/netplan/20-openmediavault-gre0.yaml:5:21: Error in network definition: Invalid MAC address '0.0.0.0', must be XX:XX:XX:XX:XX:XX
macaddress: 0.0.0.0
^
stdout:
Summary for raspberrypi4
-------------
Succeeded: 13 (changed=13)
Failed: 1
-------------
Total states run: 14
Total run time: 8.931 s
Error applying network changes. Skipping reboot!
Netplan
調べてみると、OpenMediaVaultはnetplanを使ってネットワーク設定の機能も持ってるとのこと。高機能なのはいいんですが、インストール時/etc/network/interfacesの内容をnetplanに移行するのにエラーが出てました。ついでに/etc/network/interfacesは初期化されてます。
通常のRaspberry Piならもともと/etc/network/interfacesは空なので、netplanへの移行で問題は起きないと思うのですが、自分の環境だと/etc/network/interfacesにブリッジやトンネルインタフェースの設定、ついでにフックでiptablesの設定が入っていました。
インストール時にnetplanに移行された設定は/etc/netplan/*.yamlに入ってますが、内容を見ると/etc/network/interfaceで記述していたブリッジやフック等が再現されておらず、このままでは使えません。ちゃんとエラーで止まっててよかったです。これで再起動したら詰んでるところでした。
Netplanを使わない設定に戻す
今まで/etc/network/interfacesで行っていた設定を手動でnetplanに移行するというのもありだと思うのですが、netplanがフックに対応していないせいもあり面倒なので元のネットワーク設定に戻す方向で対応しました。
なお、この状態だとOpenMediaVaultのWeb画面でネットワーク設定をいじることはできません。
- /etc/network/interfacesの設定を元に戻す
- sudo apt-get install ifupdown
- sudo systemctl enable networking
- sudo systemctl disable systemd-networkd.socket
- sudo systemctl disable systemd-networkd
また、/etc/dhcpcd.confも消去されてました。名前解決周りも変更されていたので元に戻します。
- /etc/dhcpcd.confの設定を元に戻す
- systemctl disable systemd-resolved.service
- /etc/resolv.confがシンボリックリンクになっているので削除
なお、OpenMediaVaultのインストールの際、/etc/systemd/network/99-default.linkも削除されているのですが、元々/dev/nullのリンクだったのでなくても問題ないかと思います。
参考リンク:
- https://askubuntu.com/questions/1031709/ubuntu-18-04-switch-back-to-etc-network-interfaces
- https://netplan.io/faq/#how-to-go-back-to-ifupdown
IPv6のグローバルユニキャストアドレスが無効になっている
/etc/sysctl.d/99-openmediavault.conf
にてIPv6のautoconfを無効にする設定が記述されています。
# Enable IPv6 privacy extension.
net.ipv6.conf.all.use_tempaddr = 2
net.ipv6.conf.default.use_tempaddr = 2
# Disable IPv6 autoconfiguration by default. Will be enabled individually
# per interface via systemd-networkd.
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0
IPv6でVPN接続する必要があったため、上記設定をすべてコメントアウトしました。
なお、上記対応後もipv6のグローバルアドレスが設定されていなかったのですが、/etc/sysctl.conf
でnet.ipv6.conf.all.forwarding=1
が設定されてたのが原因でした。
# Uncomment the next line to enable packet forwarding for IPv6
# Enabling this option disables Stateless Address Autoconfiguration
# based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1
コメントをよく読むとちゃんとその旨書いてありますね...
OpenMediaVaultのWeb UIが立ち上がってない
リブート後、Web UIをアクセスしようとするとエラー。syslogを見るとnginexの起動でエラーが出ている。/var/log/nginx/*.logを作成しようとしているが、自分のRaspberry Piでは/var/log以下をtmpfsにしているため、/var/log/nginxが存在しない。
/etc/nginx/nginx.confを以下のように修正する。
access_log /var/log/nginx_access.log;
error_log /var/log/nginx_error.log;
リブート後、sudo omv-firstaid
を実行。
で、2 Configure web control panel
を実行するととりあえず直った模様。