この記事は公開から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
にアップグレードされたことで発生している模様。
対応
応急処置としてsystemd
、systemd-libs
、systemd-sysvcompat
を、アップデート前のバージョンにダウングレードする。
パッケージキャッシュからのダウングレード手順
-
rootでシェルにログインし、pacmanのパッケージキャッシュディレクトリへ移動する。
(権限が必要なところでsu
を利用してもOK)cd /var/cache/pacman/pkg
-
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
-
末尾側に表示されたパッケージの一つ前のパッケージにダウングレードする。
(本例の場合は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
-
Linuxを再起動する。
上記で解消できなかった場合は、同様の方法で最後にアップデートされた別のパッケージもロールバックして確認してみてください(kernelが原因で起動しないことも頻繁に発生しています)。
※pacmanのインストールログは/var/log/pacman.log
に記録されています。
ちなみに、今後は次のバージョンのsystemd
が出るまでsystemd
をアップデートしてしまわないように注意してください。
2021.4.6追記: 248-3`もNGでした。
以上です。