目次: 自宅サーバー
Linux Kernelのlongtermバージョンが代替わりしてからしばらく経ちますが、更新をサボりにサボっていました。重い腰を上げて自宅サーバーのLinux 6.1をLinux 6.6に更新したところ、起動しなくなりました。悲しい。
Linux 6.1に戻せば起動しますからHWの故障などではないです。Kernelコンフィグが悪さをしていそうで、ドライバの有無を色々疑ったんですが、結果的にはCONFIG_UNIXがtristate(設定値にy/n/mを取れる)からbool(設定値にy/nを取れる)が原因でした。こんな経緯で起動しなくなったと思われます。
CONFIG_UNIX=mにできなくなったことなんて知りませんでした。気づけたのはmake oldconfigのおかげです。
# make oldconfig .config:917:warning: symbol value 'm' invalid for UNIX ★★エラーが出ている★★ * * Restart config... * * * Configure standard kernel features (expert users) * Configure standard kernel features (expert users) (EXPERT) [N/y/?] n Load all symbols for debugging/ksymoops (KALLSYMS) [Y/?] y Test the basic functions and performance of kallsyms (KALLSYMS_SELFTEST) [N/y/?] (NEW)
私がいつもやっている手順ですと
こんな感じなので、最初はCONFIG_UNIX=mに対するエラーに全く気づいていませんでした。もしmake oldconfigが存在しなかったら迷宮入りしていたと思います。
せっかくなので仕様が変更されたポイントを調べます。git annotateでnet/unix/Kconfigを見て、変更のもとになったコミットを調べます。コミットログは下記です。
commit 97154bcf4d1b7cabefec8a72cff5fbb91d5afb7b Author: Alexander Mikhalitsyn <alexander@mihalicyn.com> Date: Thu Jun 8 22:26:28 2023 +0200 af_unix: Kconfig: make CONFIG_UNIX bool Let's make CONFIG_UNIX a bool instead of a tristate. We've decided to do that during discussion about SCM_PIDFD patchset [1]. [1] https://lore.kernel.org/lkml/20230524081933.44dc8bea@kernel.org/ ...以下略...
このコミットが本線に取り込まれたのはLinux 6.5みたいです。
$ cd linux $ git log v6.4...v6.5 | grep 97154bcf4d1b7 commit 97154bcf4d1b7cabefec8a72cff5fbb91d5afb7b
ちなみにLinux 6.1の次のLongterm kernelはLinux 6.6ですから、今日でなくてもいつか私はこの問題にハマる運命だったと言えましょう……。
< | 2024 | > | ||||
<< | < | 05 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 | - |
合計:
本日: