Lubuntu アップデートエラー

投稿者: | 2018年4月10日

自宅でコンソールに使用しているシングルボードコンピュータ”Orange Pi One”のアップグレード(apt-get upgrade)でエラーになったので、対応しました。

バージョン

今年1月に Orange Pi One に Lubuntu を導入しています。

$ cat /etc/issue
Ubuntu 16.04.4 LTS \n \l

$ cat /proc/version 
Linux version 3.4.112 (root@curry) (gcc version 4.6.3 20120201 (prerelease) (crosstool-NG linaro-1.13.1-2012.02-20120222 - Linaro GCC 2012.02) ) #1 SMP PREEMPT Mon Nov 14 17:00:28 CST 2016

$ uname -a
Linux OrangePI 3.4.112 #1 SMP PREEMPT Mon Nov 14 17:00:28 CST 2016 armv7l armv7l armv7l GNU/Linux

エラー内容

アップグレードで以下のエラーが発生しました。

  • flash-kernel
  • initramfs-tools
$ sudo apt-get upgrade
以下のパッケージは保留されます:
  linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 3 個。
1 個のパッケージが完全にインストールまたは削除されていません。
この操作後に追加で 0 B のディスク容量が消費されます。

initramfs-tools (0.122ubuntu8.11) を設定しています ...
update-initramfs: deferring update (trigger activated)
flash-kernel (3.0~rc.4ubuntu62.2) のトリガを処理しています ...
Unsupported platform.
dpkg: パッケージ flash-kernel の処理中にエラーが発生しました (--configure):
 サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました
initramfs-tools (0.122ubuntu8.11) のトリガを処理しています ...
update-initramfs: Generating /boot/initrd.img-4.13.0-26-generic
Unsupported platform.
run-parts: /etc/initramfs/post-update.d//flash-kernel exited with return code 1
dpkg: パッケージ initramfs-tools の処理中にエラーが発生しました (--configure):
 サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました
処理中にエラーが発生しました:
 flash-kernel
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

詳細確認

“-s”オプションでシミュレーションを行ってみます。

linux-header(linux-headers-generic)周りでエラーが起きているようです。
※”-u”オプションで内容の詳細を表示しても良かったかもしれません

$ sudo apt-get -s dist-upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージが新たにインストールされます:
  linux-headers-4.13.0-37 linux-headers-4.13.0-37-generic linux-image-4.13.0-37-generic
以下のパッケージはアップグレードされます:
  linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04
アップグレード: 3 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。
2 個のパッケージが完全にインストールまたは削除されていません。
Inst linux-image-4.13.0-37-generic (4.13.0-37.42~16.04.1 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [armhf])
Inst linux-generic-hwe-16.04 [4.13.0.26.46] (4.13.0.37.56 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [armhf]) []
Inst linux-image-generic-hwe-16.04 [4.13.0.26.46] (4.13.0.37.56 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [armhf]) []
Inst linux-headers-4.13.0-37 (4.13.0-37.42~16.04.1 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [all]) []
Inst linux-headers-4.13.0-37-generic (4.13.0-37.42~16.04.1 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [armhf]) []
Inst linux-headers-generic-hwe-16.04 [4.13.0.26.46] (4.13.0.37.56 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [armhf])
Conf initramfs-tools (0.122ubuntu8.11 Ubuntu:16.04/xenial-updates [all])
Conf flash-kernel (3.0~rc.4ubuntu62.2 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [armhf])
Conf linux-image-4.13.0-37-generic (4.13.0-37.42~16.04.1 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [armhf])
Conf linux-image-generic-hwe-16.04 (4.13.0.37.56 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [armhf])
Conf linux-headers-4.13.0-37 (4.13.0-37.42~16.04.1 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [all])
Conf linux-headers-4.13.0-37-generic (4.13.0-37.42~16.04.1 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [armhf])
Conf linux-headers-generic-hwe-16.04 (4.13.0.37.56 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [armhf])
Conf linux-generic-hwe-16.04 (4.13.0.37.56 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [armhf])

bootパーティション確認

カーネルエラーなので、bootパーティションを確認します。
特にパンクしているわけではなさそうです。

$ ls /boot/
abi-4.13.0-26-generic                  script.bin.OPI-2_720p50_hdmi      script.bin.OPI-PLUS_480p_dvi
abi-4.13.0-37-generic                  script.bin.OPI-2_720p60_dvi       script.bin.OPI-PLUS_480p_hdmi
boot0_OPI.fex                          script.bin.OPI-2_720p60_hdmi      script.bin.OPI-PLUS_720p50_dvi
config-4.13.0-26-generic               script.bin.OPI-PC_1080p50_dvi     script.bin.OPI-PLUS_720p50_hdmi
config-4.13.0-37-generic               script.bin.OPI-PC_1080p50_hdmi    script.bin.OPI-PLUS_720p60_dvi
initrd.img-4.13.0-26-generic           script.bin.OPI-PC_1080p60_dvi     script.bin.OPI-PLUS_720p60_hdmi
initrd.img-4.13.0-26-generic.dpkg-bak  script.bin.OPI-PC_1080p60_hdmi    System.map-4.13.0-26-generic
initrd.img-4.13.0-37-generic           script.bin.OPI-PC_480p_dvi        System.map-4.13.0-37-generic
initrd.img-4.13.0-37-generic.dpkg-bak  script.bin.OPI-PC_480p_hdmi       u-boot_OPI-emmc.fex
retpoline-4.13.0-37-generic            script.bin.OPI-PC_720p50_dvi      u-boot_OPI.fex
script.bin.OPI-2_1080p50_dvi           script.bin.OPI-PC_720p50_hdmi     uImage
script.bin.OPI-2_1080p50_hdmi          script.bin.OPI-PC_720p60_dvi      uImage_OPI-2
script.bin.OPI-2_1080p60_dvi           script.bin.OPI-PC_720p60_hdmi     uImage_OPI-PLUS
script.bin.OPI-2_1080p60_hdmi          script.bin.OPI-PLUS_1080p50_dvi   vmlinuz-4.13.0-26-generic
script.bin.OPI-2_480p_dvi              script.bin.OPI-PLUS_1080p50_hdmi  vmlinuz-4.13.0-37-generic
script.bin.OPI-2_480p_hdmi             script.bin.OPI-PLUS_1080p60_dvi
script.bin.OPI-2_720p50_dvi            script.bin.OPI-PLUS_1080p60_hdmi

対処法1

念のため、カーネルを確認して古いカーネルを削除します。

$ ls -lh /boot/*generic
-rw-r--r-- 1 root root 1.4M Jan 10 00:49 /boot/abi-4.13.0-26-generic
-rw-r--r-- 1 root root 1.4M Mar  7 21:43 /boot/abi-4.13.0-37-generic
-rw-r--r-- 1 root root 221K Jan 10 00:49 /boot/config-4.13.0-26-generic
-rw-r--r-- 1 root root 221K Mar  7 21:43 /boot/config-4.13.0-37-generic
-rw-r--r-- 1 root root  43M Apr  3 02:37 /boot/initrd.img-4.13.0-26-generic
-rw-r--r-- 1 root root  43M Apr  3 02:58 /boot/initrd.img-4.13.0-37-generic
-rw-r--r-- 1 root root   24 Mar  7 21:43 /boot/retpoline-4.13.0-37-generic
-rw------- 1 root root 3.5M Jan 10 00:49 /boot/System.map-4.13.0-26-generic
-rw------- 1 root root 3.5M Mar  7 21:43 /boot/System.map-4.13.0-37-generic
-rw------- 1 root root 7.6M Jan 10 00:49 /boot/vmlinuz-4.13.0-26-generic
-rw------- 1 root root 7.6M Mar  7 21:43 /boot/vmlinuz-4.13.0-37-generic

$ sudo rm -rf /boot/*4.13.0-26*

アップデートを再試行します。

$ sudo apt-get dist-upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
2 個のパッケージが完全にインストールまたは削除されていません。
この操作後に追加で 0 B のディスク容量が消費されます。
続行しますか? [Y/n] y
initramfs-tools (0.122ubuntu8.11) を設定しています ...
update-initramfs: deferring update (trigger activated)
flash-kernel (3.0~rc.4ubuntu62.2) を設定しています ...
initramfs-tools (0.122ubuntu8.11) のトリガを処理しています ...
update-initramfs: Generating /boot/initrd.img-4.13.0-37-generic
Unsupported platform.
run-parts: /etc/initramfs/post-update.d//flash-kernel exited with return code 1
dpkg: パッケージ initramfs-tools の処理中にエラーが発生しました (--configure):
 サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました
処理中にエラーが発生しました:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

相変わらず、エラーです...。

対処法2

パッケージ管理システムのデータベースをチェック

“–audit”オプションで、パッケージDBの健全性・整合性をチェックします。

$ sudo dpkg --audit
以下のパッケージは最初の設定中に問題が発生したため、設定が終了していません。
dpkg --configure <パッケージ> か dselect で設定 (configure) メニューオプショ
ンを使って設定作業を再試行しなければなりません:
 initramfs-tools      generic modular initramfs generator (automation)

未設定のパッケージを再設定

上記、メッセージに従い”–configure”オプションを使って、設定作業を再試行します。

$ sudo dpkg --configure initramfs-tools
initramfs-tools (0.122ubuntu8.11) を設定しています ...
update-initramfs: deferring update (trigger activated)
initramfs-tools (0.122ubuntu8.11) のトリガを処理しています ...
update-initramfs: Generating /boot/initrd.img-4.13.0-37-generic
Unsupported platform.
run-parts: /etc/initramfs/post-update.d//flash-kernel exited with return code 1
dpkg: パッケージ initramfs-tools の処理中にエラーが発生しました (--configure):
 サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました
処理中にエラーが発生しました:
 initramfs-tools

エラースクリプトの削除

壊れたアップグレードスクリプトを削除します。

$ ls /var/lib/dpkg/info/ | grep initramfs-tools
initramfs-tools-bin.list
initramfs-tools-bin.md5sums
initramfs-tools.conffiles
initramfs-tools-core.conffiles
initramfs-tools-core.list
initramfs-tools-core.md5sums
initramfs-tools-core.postinst
initramfs-tools-core.postrm
initramfs-tools.list
initramfs-tools.md5sums
initramfs-tools.postinst
initramfs-tools.triggers

$ sudo rm -rf /var/lib/dpkg/info/initramfs-tools*

適用

再度、”–configure”オプションを使って設定すると正常終了します。

$ sudo dpkg --configure initramfs-tools
initramfs-tools (0.122ubuntu8.11) を設定しています ...

問題なくアップデート出来ました。

$ sudo apt-get upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。