DEXCS2024 for OpenFOAM(R) のカーネルアップデート方法

DEXCS2024において、ソフトウェアの自動更新によりKernelが更新されると、KernelPanicを引き起こしてマシンを起動できなくなるという不具合があり、当面は古いKernelで使っていくしかないとして、不具合情報のページには応急処置的な対応方法をいくつか示しておいた。

一方、この現象の本質的な問題が、Cubicでのiso作成方法に問題があったのではないかという推論に基づいて作り直したisoイメージも作成してあった(補足2参照)。次のKernel更新時の動作確認で問題がなければ、緊急更新版としてリリースする予定であったが、残念ながらこのisoイメージであっても、KernelPanicを引き起こしてしまった。

そこで、Kernelのアップデートについて、改めてその実体を調べ直したところ、アップデートが不完全な状態で完結していなかったことが原因であり、本来実施すべき手続きを実行すれば正常にアップデートできたので、以下にその方法について説明する。

なお、不具合情報のページでも記したが、初心者には端末入力での操作が難解な部分も多く有るかと思われたので、本稿では、具体的にVirtualBoxでの作業イメージも併せて解説する。

グダグダの解説不要という方は、結論に記してあるように、カーネルのアップデートが実行されたら、再起動する前にコマンドを2つ実行するだけでよい。

Table of Contents

Kernel Panicの状態

KernelPanicというのは、仮想マシンを起動した時に、以下の画面状態になってしまうことをいう。

こうなっても、あせらなくてよい。以下、VirtualBoxの「ファイル」メニューより「閉じる」を選択する。

引き続き、以下のダイヤログ画面が現れるので、

「仮想マシンの電源オフ」が選択されていることを確認して「OK」ボタンを押す。

仮想マシンを古いカーネルで起動し直す

VirtualBoxの管理画面に戻って、強制終了したマシンを改めて起動すると、以下のGRUB選択画面となるはずである。

ここで何もしないでおくと、再度上述のKernelPanicの状態になってしまうが、上から2つ目の *Advanced …を選択してEnterキーを押す。 

上から3つ目の 6.8.0-45-generic を選択すれば、古いカーネル(6.8.0-45)で起動できるようになる。

本例では 6.8.0-48-generic がインストールされているはずであるが、これを選択すると、KernelPanicになるということである。なお、2024/12/1時点での最新Kernelは、6.8.0-49-generic であり、すでに6.8.0-49-genericにアップデートしてKernelPanicとなっている場合には、以下の説明文中、6.8.0-48の部分を6.8.0-49と読み替えて実施されたい

不具合の本質原因を確認

仮想マシンが起動したら、端末を起動して。

				
					$ ls /boot/ -l
				
			

と入力して、現在のブートイメージの収納状態を確認する。 System.map-##, config-##,  initrd.img-##,  vmlinuz-## など、##にあたる部分が68.0-45に加えて、6.8.0-48のファイルが存在するが、

initrd.img-6.8.0-48が存在せず、結果的にinitrd.img のシンボリックリンクが赤色表示され無効になっていることを確認できた。

また、もう一点、

				
					$ ls /lib/modules -l
$ ls /lib/modules/6.8.0-48-generic/ -l

				
			

と入力して、カーネルの実体が存在していることも確認されたい。

上図イメージの応答があればOK(以下の作業を実施可能)である。

つまり、Kernelアップデートにより、Kernelファイルそのものは作成できているのであるが、これを圧縮したイメージファイル(initrd.img)が出来ていなかったので、これを作成してやれば良いとなる。

Kernelイメージファイルを作成する

Kernelのイメージファイルを作るには、以下のコマンドを実行する。

				
					$ sudo mkinitramfs -o /boot/initrd.img-6.8.0-48-generic 6.8.0-48-generic
				
			

ちゃんと出来ているかどうかは、改めて

 

				
					$ ls /boot/ -l
				
			

と入力して、ブートイメージを確認する。

initrd.img-6.8.0-48-generic の実体が出来ているので、initrd.img のシンボリックリンクが有効になった。

但し、これだけでは不十分で、起動時のGRUBメニューも変更する必要がある。

 

				
					$ sudo grub-mkconfig -o /boot/grub/grub.cfg
				
			

最後に、

				
					$ sudo rebot
				
			

にて仮想マシンを再起動すれば、正常に起動できるはずである。

また、起動できたら、改めて端末にて、

				
					$ uname -a
				
			

と入力して、カーネルのバージョン番号(6.8.0-48)を確認できる。

なお、ここまではカーネル6.8.0-48の作り直しということで説明したが、すでに記したように現時点では新しいバージョンが存在すので、いずれすぐ更新されることになる。

以下、これを自動更新でなく、手動で更新してみた。すなわち、

				
					$ uudo apt update
$ sudo apt upgrade
				
			

と入力した。様々なパッケージが更新されたが、最終的に、以下の更新ログが出力されて終了した。

 

この更新ログイメージを、2つ上に示したGRUBメニューを作り直した際のログイメージと見比べていただきたい。 ⇒ ほとんど同じメッセージになっており、手動でアップデートした最後にGRUBメニューを作り直していることが推察されよう。

問題は、各バージョンでlinuxイメージと、initrdイメージがペアで存在すべきところ、更新したバージョン(上例では、6.8.0-49)において、linuxイメージは存在するが、initrdイメージが存在しない事である。したがって、このまま再起動してしまうと、やはりKernelPanicとなること必至である。

したがって、再起動する前に、以下実行すれば良いであろう…というのは容易に推察され、実際に今回のバージョンアップ(6.8.0-48 ⇒ 6.8.0-49)で確認できた。

				
					$ sudo mkinitramfs -o /boot/initrd.img-6.8.0-49-generic 6.8.0-49-generic
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
				
			

結論(Kernel Update を正しく完了させる方法)

つまり、今後カーネルのバージョンアップが行われた場合(通常は再起動が必要というメッセージが表示される)、再起動する前に、上記2つのコマンドのバージョン部分の番号(上例で”6.8.0-49”の部分)を新バージョンのそれに変更して実行してから再起動すれば良いということである。

補足1(Kernel Update が不完全に終わる原因について)

当初は、Cubicに問題があるのでないかと考えていたが、Ubuntuに問題があるのかもしれない。というのは、本稿では仮想マシンでのKernelPanicについて取り上げているが、ubuntu24.04の実マシンにおいても、カーネルアップデートに際し、システムが起動出来なくなる事態に陥ったからである。但し、この時はKernelPanicということではなく、コンソールでしか操作できなくなり、諸々試行錯誤にてなんとか回復したが…

補足2(isoイメージ作成方法の見直しの背景と経緯)

DEXCSには多くのpdf資料を同梱しているが、これらはhtnlファイルからリンクを辿って閲覧できるようになっている。htmlファイルは、いわゆるWebブラウザで見ることができ、DEXCSではLinuxの世界ではもっともポピュラーなFireFoxを標準ブラウザとして使ってきた。

しかしながら、DEXCS2023からFireFoxの標準インストール方法がSnapパッケージとしてインストールする方法に変更された。その結果、これまでのpdf資料のファイルブラウジングができなくなってしまった(これはセキュリティー上の仕様変更らしい)。その一方で、FireFoxには従来からのdebパッケージとしてインストールする方法もあって、この方法でインストールしたFireFoxであれば、従来通りpdf資料のファイルブラウジングが可能であり、DEXCS2023では、標準のsnapインストール版を削除して、debパッケージ版をインストールし直していた。

DEXCS2024でも、基本同じ方法としていたが、途中でCubic仮想マシン上の作業では、snapパッケージのアンストールが出来ないことが判明した。とはいえ実害はないとして、そのままリリースした。⇒その結果、自動更新でsnapパッケージがインストールされてしまい、改めてdebパッケージをインストールする必要が生じた(不具合情報の「同梱資料が読めなくなった(2024/10/26)」を参照)。

その後、DEXCS2024というかubuntu24.04では、システムのインストーラーそのものもsnapパッケージに変更されているという情報も得た。また、Cubic仮想マシン上では、そもそもsnapパッケージの削除も出来ないということも判明した。これらのことから、FireFoxのsnapパッケージを削除しようとして出来なかった際に、何らかの不具合が生じていたのではないかというのがKernelPanic不具合の原因推定であった。

そこで、ubuntuでは今後snapパッケージが主流になっていきそうな潮流もあり、snapパッケージはそのまま受け入れるしかなさそう。そもそもsna版のFireFoxでpdf資料が読めなかったという問題に立ち返って調べ直したところ、$home/以外に収納された資料が読めないというだけであることも判明したので、同梱資料の収納場所を$home/以下に変更(プラスアルファ有り)して作り直したのが、改良版のisoイメージであった。しかしながら、このisoイメージであっても、KernelPanicの問題は解決されなかったのは、冒頭に記した通りである

それで、この作り直し版isoイメージをどうするかである。次期バージョン(DEXCS2025)では当然こちらの方式で作成することになるが、DEXCS2024も10月に公開して以来、Kernel問題以外の不具合事項もいくつかあったし、FreeCADもとうとうバージョンが1.0となっている。近日中に、これら更新を施したisoイメージをリリースする予定である。

 

参考資料

Share

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

上部へスクロール