VirtualBoxで、VBOX_E_OBJECT_NOT_FOUND & inaccessibleで仮想マシンを認識できなくなった場合の対処


環境

$ VBoxManage -v
6.0.16r135674

仮想マシンを起動しようとして、こんなエラーになってとても困ったという話。

$ VBoxManage startvm "仮想マシン名" --type headless
VBoxManage: error: Could not find a registered machine named '仮想マシン名'
VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "FindMachine(Bstr(pszVM).raw(), machine.asOutParam())" at line 721 of file VBoxManageMisc.cpp

仮想マシンの一覧を見るとinaccessibleになっているし、GUIで見ても仮想マシンにアクセスできなくなってたりします。

$ VBoxManage list vms

...

"<inaccessible>" [仮想マシンのUUID]

どうやら、仮想マシンの電源を入れたままホスト側をシャットダウンすると、こういう状態になることがあるようで…。

GUIで見ると、ISOファイルにアクセスできないとか出てたので

仮想マシンが置いてあるディレクトリにある[仮想マシン名].vbox[仮想マシン名].vbox-prevという2つのファイルを開き、以下の記述を探して

      <DVDImages>
        <Image uuid="[UUID]" location="/path/to/VBoxGuestAdditions.iso"/>
      </DVDImages>

次にアタッチされている場所を探します。で、いくつか書かれているのですが、port="1"となっている部分を削除。

       <AttachedDevice passthrough="false" type="DVD" hotpluggable="false" port="1" device="0">
          <Image uuid="[UUID]"/>
        </AttachedDevice>

これで、仮想マシンを認識できるようになります。

1度仮想マシンの一覧から削除して、.vboxファイルを選んで仮想マシンを開き直してください。

参考) VirtualBox VM Inaccessible