DEXCS2024カーネルアップデート不具合暫定対応版 #2

先の記事でDEXCS2024でのカーネルアップデート不具合対策の暫定版について記したが、それを使って原因調査するうちに、もう少し原因の絞り込みができて、より簡単で実用的な対応策が見つかった。⇒すでにDEXCS2024を利用されている人は、この対策を実施すれば良い。

一方、これから新たに始める人向けには、改めてisoイメージを作り直して公開した(ダウンロードはこちら)。ここではその推奨インストール方法を説明する。この方法でインストールすれば、これまでのカーネルアップデート不具合は生じない。また万一、推奨方式を間違えてKernelPanicに陥った際の対応策についても記しておく。

Table of Contents

一般的なインストール方法と手順のおさらい

ダウンロードしたisoイメージを使ってインストールするには、実計算機にそのままインストールする場合もあれば、VirtualBoxやVMplayerなどの仮想計算機にインストールする場合もある。どれを選択するかによって、isoイメージから起動させるまでの手順や方法は異なるが、isoイメージから起動できれば以下の画面

 

となり、後は同じで、大きく分けて以下の手順である。

念の為、「How to install DEXCS2024 for OpenFOAM on VirtualBox」のスライドで公開している各ステップにおける操作イメージ図と、DEXCS2024に同梱の「その他諸々」資料の一部も貼付しておいた。

1. ubuntu セットアップ

なお、1.で「ライブモード」の設定も可能であるが、本記事では「インストールモード」での説明とさせていただく。

暫定対応版の推奨インストール手順

推奨というのは、上記のインストールに当たってインターネットに接続しないで作業を実施せよ、というだけである。セットアップが終了したらネットワークに接続するようにすれば、カーネルアップデートの不具合は生じない。

1. ネットワーク接続の切断

実計算機にせよ仮想環境にせよ、計算機本体のネットワーク接続をオフ(有線LANケーブルを抜く、WIFIオフ)にしておくのが一番確実。

実計算の場合はそれで良いとして、仮想環境の場合はインストール中に他の作業もできる(したいこともある)ので、そうできない場合もある。そこでubuntuインストール中に、インターネット接続方法を選択するメニュー(下図)が現れるが、

ここで、「今はインターネットに接続しない」を選択したからといって過信できない。

仮想マシンをセットアップする段階で、

VirtualBoxの場合

仮想マシンを選択して「設定」メニューから、

「ネットワーク」のタグ画面で、「ネットワークアダプターを有効化」のチェックを蓮しておく(デフォルトはチェックされている)。

仮想マシンを選択して、「仮想マシン設定の編集」から

「ハードウェア」の「ネットワーク」を選択して。「ホストオンリー」を選択(デフォルトは「NAT」)

マシンの電源をオフにしたら、1.のネットワーク切断での処置を元に戻してから、マシンの電源をオンにする。

上記手順でインストール出来ていれば、以降のソフトウェア更新は、デフォルトの自動更新のまま、更新を促すメッセージが出た場合に適宜対応すれば良く、取り立てて意識しないで使用することができる。

なお、5.の仮想環境用セットアップは、ネットワーク接続後に実施しても良い。

KernelPanicの状態になったら

今回リリースのカーネルバージョンは、6.8.0-57 であるので、製作時点(2025/4/4)から間もない日時であればネットワークーク接続した状態でもカーネルアップデートは行われないはずであるが、ある程度日時が経過してしまう(確認され次第、本記事に日にちを明記する予定)とubuntuインストールを実行して再起動の後、ほぼ確実にKernelPanicの状態になる。その場合の対処法を以下記しておく。

実計算機では、画面が真っ黒で何も表示されない場合もある。

 

一旦、電源オフ

実計算機の場合は、計算機本体の電源をオフにするだけであるが、仮想計算機の場合は作法がある。

VirtualBox

電源を入れ直すと、以下のGRUB画面が現れるはずである。

ここで何もしないでいると、KernelPanicの状態になってしまうが、

2番目の「Advanced options for Ubuntu」を選択すると、以下のサブ画面となる。

ここで、上の2つが最新カーネルで、3番目を選択すれば一つ前のカーネルで起動でき、カーネルアップデート前の状態に戻すことができる。

因みに、isoイメージを作成した時点におけるカーネルは 6.8.0-55 であったが、本記事を作成する段階では 6.8.0-56 となっていたので、上記の画面イメージとなった。しかし本記事を公開する時点(2025/4/2)では、6.8.0-57 になっているので、上記画面イメージは再現されない点、お断りしておく。 

デスクトップ上のDEXCSフォルダ中に、dexcsKernelUpdate.sh というスクリプトが収納されている(下図)。

これを❷右クリックメニューから❸「プログラムとして実行」を選択すると、端末画面が現れ、パスワードの入力を促される。

パスワードが正しく入力されると、カーネルアップデートの補完作業が実行される。最終的に、/boot/ フォルダ中のファイル一覧リストが表示され、❸「y」を入力すれば再起動される。「y」を入力せずとも、そのまま再起動させても良かったが、このスクリプトはまだ十分に検証できていない。❷の部分で、initrd.img というファイルが最新Kernelのシンボリックリンクになっていることを確認したかった。これが出来ていれば問題無いはずだが、うまく出来ない場合があるかもしれない点と、出来ていてなおかつ不具合が生じる場合もあるかもしれない。かような事態が生じた場合にはレポートをお願いする。

カーネルアップデート不具合の原因

本記事の冒頭に記した原因調査では、ubuntuの標準アップグレードを実施する中で、update-initramfs というコマンドが実行されていないことがわかった。このコマンドそのものは、/usr/sbin に収納されていたが、その内容まで調べると、

				
					$ cat /usr/sbin/update-initramfs
#!/bin/true
# diverted by curtin
				
			

となって、全く実体の無いものであった。、また以下調べたところ、

				
					$ ls /usr/sbin/update-ini* -l
-rwxr-xr-x 1 root root   32  2月 19 18:58 /usr/sbin/update-initramfs
-rwxr-xr-x 1 root root 6908  2月  7 18:55 /usr/sbin/update-initramfs.curtin-disabled
				
			

となって、どうやら本来のupdate-initramfs というファイルが、update-initramfs.curtin-disabled というファイルに(curtin)が変更したものと読み取れた。そこで、これをもとに戻す、つまり

				
					$ sudo rm -rf /usr/sbin/update-initramfs 
$ sudo mv /usr/sbin/update-initramfs.curtin-disabled /usr/sbin/update-initramfs

				
			

としてやれば、以降カーネルアップデートが正常に実施されることが確認できた。今回のリリースは、DEXCSセットアップ(opt/DEXCS/setupDEXCS.sh)の中で、この変更を実施しているが、既にDEXCS2024を使っている場合には、そのマシンで実行すれば良い。

つまり、これまでカーネルアップデートの都度、手動でアップデートの補完作業を実施していたバージョンのDEXCS2024であっても、上記変更する(update-initramfs を本来の内容に戻す)だけで、以降、カーネルアップデートの煩わしさからは解消されることになる。

但し、これが根本的な対策かというと、そうではない。Cubic上で仮想マシンを作成している段階で上記変更はされておらず、Cubicが作成したsquasfs(圧縮ファイルシステム) においても変更されていなかった。多分、ubuntuのインストール段階で curtin が変更したんだろうとしか思えないが、curtin って何?ubuntuのインストーラーの仕組みが従来と大きく変わっているという情報もあり、その内容も理解できていない。あくまで対症療法でしかないので、依然「暫定対応版」であることには変わりはない。

暫定対応版の改定内容

前項で記したように、カーネルアップデート不具合の対策としては、/usr/sbin/update-initramfs を本来の形に戻してやれば済む。既にDEXCS2024をお使いの人で、この作業ができる人にはその方法を推奨する。

本リリースは、あくまでこれから始める人、もしくはLinuxの超初心者で、この変更作業に不安のある方が対象である。また、公開当初のリリース版と比べて、以下の改定も実施しているので、これらの改定が必要な人には、これを契機に更新するのも良いかと。

但し、同梱ドキュメントについて、これらの改定に対応していない点はお断りしておく。

Share

「DEXCS2024カーネルアップデート不具合暫定対応版 #2」への4件のフィードバック

  1. カーネル周りを自動コンパイルするdkmsパッケージがインストールされていないことが原因だと思います。
    私のVirtualBoxのUbuntuでは、同様の現象になっていません。
    VirtualBox Debian Wiki : Installing the Guest Additions on a Debian VMに記述があります(ゲストツールは、CDメディアのものを使用しますが、カーネル周りのコンパイルのは同じ条件です)。
    https://wiki.debian.org/VirtualBox#Installing_the_Guest_Additions_on_a_Debian_VM

    また、ゲストOSのLinuxカーネルをメジャーアップデートする必要性は低いので、HWEカーネルを削除し、genericカーネルでの運用とすれば、本問題のリスクが下がります。

    Grub2のメニューは常時表示させる方が安心できると思います。manjaro linuxでの設定ですが、Ubuntuでも同じだったと思います。
    https://zenn.dev/calloc134/articles/d01e77e370ee5d

  2. 情報、ありがとうございます。
    しかしdkmsパッケージを入れてみましたが、症状(ubuntuインストーラーが勝手にupdate-initramfs を書き換える)は変わりませんでした。
    またCubic上でubuntuを更新しただけで、ほとんどカスタマイズしていない状態で作成したisoイメージでは問題が生じていないことは、こちらでも確認できております。

  3. カーネルのメージャーアップデートを行うUbuntuから、枯れたLinux Kernelでバージョン固定されている別のディストリビューションに乗り換えるのも、対策の一つだと思います。
    Debian 12 (デスクトップ環境付のライブメディアもあります)が Linux Kernel 6.1、Debian 12ベースのLinux Mint 6も6.1、Red Hat Enterprise Linux 9互換のAlmaLinux 9やRocky Linux 9は 5.14です。
    Debianの場合、新しいカーネル(今は6.12)がbackportsにあります。
    DebianのカスタムISOを作る方法、ライブISO(作成時のlogファイルもあります)は、以下URLなどで公開されています。
    https://tech.quickguard.jp/posts/debian-live-cd/
    http://ftp.jaist.ac.jp/pub/Linux/debian-cd/12.10.0-live/amd64/iso-hybrid/

    最近のWindowsからのLinuxの利用は、WSL2に移行している人が多いです。起動時間や演算速度がVirtualBOXより優れています。
    https://qiita.com/HD_mount_Music/items/1c9da89b22c0351b4a8b
    Salome-meca(WSL2)は、ベータ版(EDF R&D / ERMESの名前入り)として、フォーラムの管理者が公開しています。
    Ready to use(すぐに使える)と面では最も優れています。
    https://forum.code-aster.org/public/d/28014-salome-meca-20241-on-wsl2-ready-to-use-distribution

    Nix(環境構築のスクリプトを書けることを知った程度です)を用いて、WSL2のベース状態から使用できる状態にビルドするのをElmerのgitで公開されています。
    https://github.com/ElmerCSC/elmer-wsl

  4. 色々ご提案いただきましたが、DEXCS-OFにはOpenFOAM以外に様々なGUIアプリケーションがインストールされており、そういったものをちゃんと動かせるかどうか?が先決問題です。
    特にTreeFoamあたり、困難が多いと予想しており、これらの目処が出た時点でご提案を検討したいと思います。

コメントする

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

上部へスクロール