いつも使用しているVirtualboxでErrorを吐かれた
メインマシンはUbuntu24.04LTS。
Windowsは仮想マシンにしか入っていない。たまに使用するだけ…。
で、たまに起動したら
VirtualBox can't enable the AMD-V extension.
Please disable the KVM kernel extension,
recompile your kernel and reboot (VERR_SVM_IN_USE).
上記のエラーを吐いて、仮想マシンが起動できない。
このケースは初めて…。
ぐぐってみると、
https://qiita.com/fujisystem/items/2d849b761b8f33f7b3b1
がヒット。
CentOSということだけれども、まぁ同じ状態だし…
改善せず
URLの内容で、すぐに改善するんじゃ?と思って試す。
$ sudo modprobe -r kvm_amd kvm
modprobe: FATAL: Module kvm_amd is in use.
動作中のプロセスが、握っているっぽい。
次の情報をたよりに、探っていく
https://remoteroom.jp/diary/2024-03-14/
$ lsmod | grep kvm
kvm_amd 208896 2
kvm 1409024 1 kvm_amd
irqbypass 12288 1 kvm
ccp 135168 1 kvm_amd
これと、同様な結果が出力された。
やはりモジュールが読み込まれて、実行中のプロセスが握っている。
ただ、このところ新しいソフトをインストールした記憶がない。
深堀り
他の情報では、
$ sudo systemctl stop libvirtd
とあるが、libvirtdを使用するものは、使っていないし、そもそもサービスすら上がっていない。
次はプロセスを探す
$ sudo lsof /dev/kvm
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
qemu-syst 3406 root 11u CHR 10,232 0t0 604 /dev/kvm
qemu-systが原因っぽい。
はて? qemu-systを使うものは?
別の仮想マシン…。
そうmultipassを使用している。
解決
まずは状況を確認
$ multipass list
Name State IPv4 Image
u2204 Stopped -- Ubuntu 22.04 LTS
u2404 Running 10.217.0.183 Ubuntu 24.04 LTS
いままで、問題なかったんだが…。(記憶違いかも)
そこで、一旦multipassを止める。
$ multipass stop u2404
その後、kvm関連を落としてみる。
$ sudo modprobe -r kvm_amd kvm
今度は、何も文句を言わずに終了。
ここで、本来の目的のVirtualboxを起動し、仮想マシンを立ち上げてみる。
問題なく動作した!
ほっ!
追記
multipassとvirtualboxを同時に使用していたと思っていたが、それはMacOSでmultipassとUTMを同時に使っていたことを取り違えていたっぽい。
- MacOS → multipassでUbuntu(ARM版), UTMでWindows11pro(ARM版), vmaware → Win10pro
- Ubuntu → multipassでUbuntu , VirtualboxでWindows11pro/10pro
どうも、似たような構成なため、勘違いというか記憶違いだった模様。
MultipassとVirtualboxは同時に動かさないようにしないと…