Banana Pi でOMV : 初期化

投稿者: | 2018年7月2日

あるタイミングで初期化、もといインストール完了処理を促されます。

あるタイミングと書いたのには理由があります。
以前 Raspbian (Raspberry Pi)に OpenMediaVault (以下、OMV)をインストールした際は、インストール完了後に「omv-initsystem」の実行を促すメッセージが表示されたので順当なのですが、今回の(SBC用イメージを利用した)場合はロケール設定をした際に表示されたので、1つではない可能性があるからです。

メッセージ例

 ┌────────────────────┤ openmediavault を設定しています ├────────────────────┐  
 │                                                                           │  
 │ Complete the installation                                                 │  
 │                                                                           │  
 │ To complete the installation you need to run the following command:       │  
 │                                                                           │  
 │  omv-initsystem                                                           │  
 │                                                                           │  
 │                                                                           │  
 │ To manage the system visit the openmediavault web control panel via a     │  
 │ web browser:                                                              │  
 │                                                                           │  
 │  http://<IP or hostname>                                                  │  
 │                                                                           │  
 │                                                                           │  
 │ By default the web control panel administrator account has the username   │  
 │ 'admin' and password 'openmediavault'. It is recommended that you change  │  
 │ the password for this account within the web control panel or using the   │  
 │ 'omv-firstaid' CLI command.                                               │  
 │                                                                           │  
 │                                  <了解>                                   │  
 │                                                                           │  
 └───────────────────────────────────────────────────────────────────────────┘  

簡単に翻訳すると以下のようになります。

  • OpenMediaVaultを初期化する
  • インストールを完了する
  • インストールを完了するには、次のコマンドを実行する必要があります。
    omv-initsystem
  • システムを管理するには、Webブラウザを使用してopenmediavault Webコントロールパネルを開きます。
    http://<IP or hostname>
  • デフォルトでは、Webコントロールパネルの管理者アカウントには、ユーザー名「admin」とパスワード「openmediavault」があります。
    ウェブコントロールパネル内のこのアカウントのパスワードを変更するか、「omv-first」CLIコマンドを使用することをお勧めします。

インストール完了処理の実行

エラー

何故かエラーになりました。

$ sudo omv-initsystem
I: The initramfs will attempt to resume from /dev/zram1
I: (UUID=49384270-6a2d-4fe4-8ad4-ac1905411ee1)
I: Set the RESUME variable to override this.
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
update-initramfs: Converting to u-boot format
ERROR: rpn expressions without DEF or CDEF variables are not supported
ERROR: rpn expressions without DEF or CDEF variables are not supported
ERROR: rpn expressions without DEF or CDEF variables are not supported
ERROR: rpn expressions without DEF or CDEF variables are not supported
ERROR: rpn expressions without DEF or CDEF variables are not supported

mdadm 確認

最初に、mdadm で警告が出ているので、設定を確認してみます。
なお、mdadm はソフトウェアRAID用ユーティリティです。

別に何もなさそうです...。

$ cat /etc/mdadm/mdadm.conf 
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
# Note, if no DEVICE line is present, then "DEVICE partitions" is assumed.
# To avoid the auto-assembly of RAID devices a pattern that CAN'T match is
# used if no RAID devices are configured.
DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# definitions of existing MD arrays

apt 警告

ここまできて思い出したことがあります。
先日の記事「Banana Pi でOMV : ロケール設定」の際、冒頭 apt コマンドで警告が表示されました。

ロケール設定完了後はメッセージは表示されなくなったのですが、その後「保留:1個」と表示されるようになりました。
保留については、インストール中にゴミが残ったのね・・・くらいに考えて dist-upgrade コマンドで解消していたのですが、この時の処理が悪さをしていたのでした。

重複エラー

試しに apt コマンドを実行してみると、大量の警告メッセージが!!!

内容を見てみると、以下のファイルで重複があるようです。

  • /etc/apt/sources.list
  • /etc/apt/sources.list.d/openmediavault-kernel-backports.list
$ sudo apt update

W: ターゲット Packages (main/binary-armhf/Packages) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Packages (main/binary-all/Packages) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Contents-deb (main/Contents-armhf) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Contents-deb (main/Contents-all) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Packages (contrib/binary-armhf/Packages) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Packages (contrib/binary-all/Packages) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Contents-deb (contrib/Contents-armhf) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Contents-deb (contrib/Contents-all) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Packages (non-free/binary-armhf/Packages) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Packages (non-free/binary-all/Packages) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Contents-deb (non-free/Contents-armhf) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Contents-deb (non-free/Contents-all) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Packages (main/binary-armhf/Packages) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Packages (main/binary-all/Packages) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Contents-deb (main/Contents-armhf) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Contents-deb (main/Contents-all) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Packages (contrib/binary-armhf/Packages) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Packages (contrib/binary-all/Packages) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Contents-deb (contrib/Contents-armhf) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Contents-deb (contrib/Contents-all) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Packages (non-free/binary-armhf/Packages) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Packages (non-free/binary-all/Packages) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Contents-deb (non-free/Contents-armhf) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています
W: ターゲット Contents-deb (non-free/Contents-all) は /etc/apt/sources.list:7 と /etc/apt/sources.list.d/openmediavault-kernel-backports.list:1 で複数回設定されています

対象ファイルを確認

当該ファイルの中身を確認すると、2つのファイルで以下が重複して記述してあります。

  • deb http://httpredir.debian.org/debian stretch-backports main contrib non-free
$ cat /etc/apt/sources.list
deb http://httpredir.debian.org/debian stretch main contrib non-free
#deb-src http://httpredir.debian.org/debian stretch main contrib non-free

deb http://httpredir.debian.org/debian stretch-updates main contrib non-free
#deb-src http://httpredir.debian.org/debian stretch-updates main contrib non-free

deb http://httpredir.debian.org/debian stretch-backports main contrib non-free
#deb-src http://httpredir.debian.org/debian stretch-backports main contrib non-free

deb http://security.debian.org/ stretch/updates main contrib non-free
#deb-src http://security.debian.org/ stretch/updates main contrib non-free

$ cat /etc/apt/sources.list.d/openmediavault-kernel-backports.list 
deb http://httpredir.debian.org/debian stretch-backports main contrib non-free

対象ファイルを編集

今回は、以下のファイルから記述をコメントアウト(論理削除)しました。

  • /etc/apt/sources.list.d/openmediavault-kernel-backports.list
$ diff -u openmediavault-kernel-backports.list_org /etc/apt/sources.list.d/openmediavault-kernel-backports.list
--- openmediavault-kernel-backports.list_org    2018-06-25 06:53:33.668449245 +0000
+++ /etc/apt/sources.list.d/openmediavault-kernel-backports.list    2018-06-25 06:53:53.237795165 +0000
@@ -1 +1 @@
-deb http://httpredir.debian.org/debian stretch-backports main contrib non-free
+###deb http://httpredir.debian.org/debian stretch-backports main contrib non-free

それでも object is not callable エラーは残る

Google製フレームワーク「TensorFlow」の Graphクラス をリセット(clear_session)していない・・・とエラーが表示されます。

  • エラーメッセージ例
$ sudo apt update

Exception ignored in: <function WeakValueDictionary.__init__.<locals>.remove at 0xb61d0390>
Traceback (most recent call last):
  File "/usr/lib/python3.5/weakref.py", line 117, in remove
TypeError: 'NoneType' object is not callable
Exception ignored in: <function WeakValueDictionary.__init__.<locals>.remove at 0xb61d0390>
Traceback (most recent call last):
  File "/usr/lib/python3.5/weakref.py", line 117, in remove
TypeError: 'NoneType' object is not callable

当該ファイルの117行目にはメソッド _remove_dead_weakref のエラーが出ています。

$ head -n 117 /usr/lib/python3.5/weakref.py

                    _remove_dead_weakref(d, wr.key)

Python は普段使わないのですが、Python 3 から引数が足りないとエラーになるようです。
(以前は、引数の初期値を設定していなくても省略可能として処理してくれていた模様)。
そういえば、昔 PHP のバージョンアップした時もあったなぁ。