【2038年問題】Debian Sidのアップデートに注意【64ビットタイム】
要約
Debian Sidを使っている人は、今(2024年3月)、不用意にアップデートするとシステムが起動しなくなります。
ネタ振り
2038年問題という問題があります。
UNIXや派生のOSでは、時間をUNIX時間という1970年1月1日を起点としたtime_t
という型の符号付き32ビット整数を使って管理しています。
これが2038年になると型の桁溢れが起こって1970年に時間が巻き戻ってしまいます。そうなると想定外のことが起こり、最悪、システムが使えなくなるという問題です。
今、2024年で2038年は14年後です。
10年なんてアッという間で今のうちに対処しておかないとダメだよねということで、Debianの次のリリースTrixieでも2038年対応がリリースゴールに挙げられています。
Phoronixでもニュースになっていたり、おそらくTrixieがリリースされるときの目玉の一つになると思うぐらいの大きな変化です。
- Debian 64-bit time_t Transition Underway For Addressing Y2038 Problem On 32-bit Systems - Phoronix: https://www.phoronix.com/news/Debian-Experimental-64bit-Time
その対応がDebian experimental(実験的なパッケージのリポジトリ)で進められていましたが、今、その対応したパッケージが、sidに降りてきています。
本題
こういう動きがあったのですが、まったくチェックしていませんでした。
日曜日、「CDプレイヤーがないからMP3にリッピングして」と頼まれたのでリッピングしようとしたら、いつも使っているabcdeが入っていません。
入っていないならaptでインストールすればいいやとapt install abcde
でインストールすると、いくつかパッケージが入りません。
aptitude
を使って手動で入らないパッケージをインストールすると今まで入らなかったパッケージもインストールされましたが、なにか変です。そして、インストールされたライブラリ名の末尾にはt64
と書いてあるものが多いのも気になります。
とりあえず入ったからいいやと思ったらaptitude
の画面表示が崩れ始めます。驚いてPCを再起動すると…。
起動しない!!!! 起動してもinitramfsで落ちる。
何が起こったのかわからないので、ひとまず覚えていたt64
とdebianをキーワードに検索すると、2038年問題に対応するための作業が進行中であることを知ったのでした。
それからどうした
これ、デスクトップのメインマシンだけじゃなくノートPCも同時にアップデートしていたので両方起動しなくなりました。
ライブシステムからchroot
を使ってシステムの修復も一瞬考えましたが、ここ10年以上やってなかったヤラカシで、しかも2台もシステムをぶっ壊すという事を起こしてしまったので復旧時間を考えて素直にバックアップを取って再インストールしました。
リリースゴールの文書を読むとlibc5からlibc6への移行ぐらいの大きな事なんですよね。 適当に手を出すと痛い目を見ても仕方ないことがよくわかりました。
みなさまもお気をつけください。Debian Sidを使っている人は、そんなにいないけど