Linuxのアップデート後にKVMが起動しなくなったときの対応

この記事は公開から3年以上経過しています。

ホストOSのarch linuxを最新にアップデートした直後から、KVMの仮想マシンが起動できなくなってしまったときの解決メモ。
当該現象ではない場合でも、pacmanパッケージをダウングレードしたいときの手順の参考になれば幸いです。

root権限で作業を行います。問題が発生しても回復ができるようにバックアップを取るなど、充分注意して作業してください。

問題

arch linuxをpacmanでアップデートした後、virshやVirtual Machime Managerから仮想マシンを起動するとinternal error: failed to get cgroup backend for 'pathOfController'とエラーが表示されて仮想マシンが起動できない。

原因

根本的な原因は未調査のため不明だが、このケースではsystemdのバージョンが247.4-2から248-1にアップグレードされたことで発生している模様。

対応

応急処置としてsystemdsystemd-libssystemd-sysvcompatを、アップデート前のバージョンにダウングレードする。

パッケージキャッシュからのダウングレード手順

  1. rootでシェルにログインし、pacmanのパッケージキャッシュディレクトリへ移動する。
    (権限が必要なところでsuを利用してもOK)

    cd /var/cache/pacman/pkg
  2. systemdのキャッシュを日付昇順で表示する(結果は一部のみ抜粋)。

     ls -ltr | grep systemd
    
    -rw-r--r-- 1 root root     512551 Feb  6 21:58 systemd-libs-247.3-1-x86_64.pkg.tar.zst
    -rw-r--r-- 1 root root    6373075 Feb  6 21:58 systemd-247.3-1-x86_64.pkg.tar.zst
    -rw-r--r-- 1 root root       5814 Feb  6 22:08 systemd-sysvcompat-247.3-1-x86_64.pkg.tar.zst
    -rw-r--r-- 1 root root     512682 Mar 16 07:17 systemd-libs-247.4-2-x86_64.pkg.tar.zst
    -rw-r--r-- 1 root root    6372471 Mar 16 07:19 systemd-247.4-2-x86_64.pkg.tar.zst
    -rw-r--r-- 1 root root       5819 Mar 16 19:17 systemd-sysvcompat-247.4-2-x86_64.pkg.tar.zst
    -rw-r--r-- 1 root root     569811 Apr  2 19:38 systemd-libs-248-1-x86_64.pkg.tar.zst
    -rw-r--r-- 1 root root    6590853 Apr  2 19:39 systemd-248-1-x86_64.pkg.tar.zst
    -rw-r--r-- 1 root root       5832 Apr  2 19:44 systemd-sysvcompat-248-1-x86_64.pkg.tar.zst
  3. 末尾側に表示されたパッケージの一つ前のパッケージにダウングレードする。
    (本例の場合はMar 16にインストールされたバージョン247.4-2)

    pacman -U systemd-libs-247.4-2-x86_64.pkg.tar.zst systemd-247.4-2-x86_64.pkg.tar.zst systemd-sysvcompat-247.4-2-x86_64.pkg.tar.zst
  4. Linuxを再起動する。

上記で解消できなかった場合は、同様の方法で最後にアップデートされた別のパッケージもロールバックして確認してみてください(kernelが原因で起動しないことも頻繁に発生しています)。
※pacmanのインストールログは/var/log/pacman.logに記録されています。

ちなみに、今後は次のバージョンのsystemdが出るまでsystemdをアップデートしてしまわないように注意してください。

2021.4.6追記: 248-3`もNGでした。

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする