(注:このブログはもう更新していません)この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

[クラウド帳票エンジンDocurain]

dracutが古いカーネルのinitramfsを勝手に作る

いつからかそうなったのかは覚えていないのですが…

新しいバージョンのカーネルをインストールすると、なぜか古いカーネルバージョン(しかもアンインストール済み)のinitramfsも作ろうとするようになっていました。

で、そのうち/bootに壊れたinitramfsファイルを大量に書き込み過ぎて容量を使い果たし、dracutが強制停止します。


それはまだいいとしても、今まさにインストールしたバージョンのinitramfsを作る前に止まってしまうので、OSがブートできなくなるという大問題が起こるわけです。

回避法→古いカーネルモジュールを手動で削除

dracutがターゲットにするカーネルのバージョンをどこで判定しているのか調べてみたのですが、 設定ファイル等ではないようです。

  • /etc/dracut
  • /usr/lib/dracut
  • /usr/system/dracut

この辺をgrepしてみたのですが何も出てこず。 もしやと思い、/lib/modulesを見てみるとそこには古いカーネルモジュール(のディレクトリ)が大量に残っている。

こいつか犯人は。


というわけで、手動で古いモジュールを消すと、勝手にinitramfsを作る問題は解消されました。