VirtualBox odmawia uruchomienia VM: `Wersja struktury pomocnika urządzenia uległa zmianie`

17

VirtualBox nagle zaczął odmawiać uruchamiania istniejących maszyn wirtualnych, co pojawiło się w dzienniku:

00:00:03.946244 HDA: Reset
00:00:03.946359 AssertLogRel /mnt/tinderbox/extpacks-5.0/src/VBox/Devices/USB/DevEHCI.cpp(4955) int ehciR3Construct(PDMDEVINS*, int, CFGMNODE*): PDM_VERSION_ARE_COMPATIBLE((pDevIns)->pHlpR3->u32Version, PDM_DEVHLPR3_VERSION)
00:00:03.946378 DevHlp=0xffe700f1  mine=0xffe700e1
00:00:03.946407 PDM: Failed to construct 'usb-ehci'/0! VERR_PDM_DEVHLPR3_VERSION_MISMATCH (-2871) - The device helper structure version has changed.
00:00:03.946421 If you have upgraded VirtualBox recently, please make sure you have terminated all VMs and upgraded any extension packs. If this error persists, try re-installing VirtualBox.
00:00:04.037170 NAT: zone(nm:mbuf_cluster, used:0)
00:00:04.037303 NAT: zone(nm:mbuf_packet, used:0)
00:00:04.037317 NAT: zone(nm:mbuf, used:0)
00:00:04.037328 NAT: zone(nm:mbuf_jumbo_pagesize, used:0)
00:00:04.037422 NAT: zone(nm:mbuf_jumbo_9k, used:0)
00:00:04.037488 NAT: zone(nm:mbuf_jumbo_16k, used:0)
00:00:04.037530 NAT: zone(nm:mbuf_ext_refcnt, used:0)
00:00:04.039388 VMSetError: /build/virtualbox-JETMa8/virtualbox-5.0.14-dfsg/src/VBox/VMM/VMMR3/VM.cpp(365) int VMR3Create(uint32_t, PCVMM2USERMETHODS, PFNVMATERROR, void*, PFNCFGMCONSTRUCTOR, void*, VM**, UVM**); rc=VERR_PDM_DEVHLPR3_VERSION_MISMATCH
00:00:04.039394 VMSetError: The device helper structure version has changed.
00:00:04.039394 If you have upgraded VirtualBox recently, please make sure you have terminated all VMs and upgraded any extension packs. If this error persists, try re-installing VirtualBox.
00:00:04.039582 ERROR [COM]: aRC=NS_ERROR_FAILURE (0x80004005) aIID={872da645-4a9b-1727-bee2-5585105b9eed} aComponent={ConsoleWrap} aText={The device helper structure version has changed.
00:00:04.039587 If you have upgraded VirtualBox recently, please make sure you have terminated all VMs and upgraded any extension packs. If this error persists, try re-installing VirtualBox. (VERR_PDM_DEVHLPR3_VERSION_MISMATCH)}, preserve=false aResultDetail=0
00:00:04.116659 Console: Machine state changed to 'PoweredOff'
00:00:04.338867 Power up failed (vrc=VERR_PDM_DEVHLPR3_VERSION_MISMATCH, rc=NS_ERROR_FAILURE (0X80004005))
00:00:04.349471 GUI: UIMachineViewNormal::resendSizeHint: Restoring guest size-hint for screen 0 to 2789x1563
00:00:04.349542 ERROR [COM]: aRC=E_ACCESSDENIED (0x80070005) aIID={7303a66d-433b-25a4-f9a8-fcadf87e0c2a} aComponent={DisplayWrap} aText={The console is not powered up}, preserve=false aResultDetail=0

Jak rozwiązać problem?

Nicolas Raoul
źródło
O dziwo, mam ten problem podczas uruchamiania jednej maszyny, ale nie drugiej. Aktualizacja pakietu rozszerzeń nadal działała, ale zapomniałem sprawdzić starą wersję. Może Windows 10 opiera się na niektórych funkcjach nowszego pakietu rozszerzeń, ale Linux nie?
trysis

Odpowiedzi:

19

Jest to typowe zachowanie VirtualBox po aktualizacji przez Ubuntu podczas jego działania.

Rozwiązanie:

Powinien teraz działać z dowolną maszyną wirtualną, która działała wcześniej.

Faktycznie, dziennik zawiera tę samą końcówkę: If you have upgraded VirtualBox recently, please make sure you have terminated all VMs and upgraded any extension packs.

Nicolas Raoul
źródło
2
Ponowne uruchomienie Ubuntu może nie być konieczne. Po zainstalowaniu rozszerzenia uruchom vm i idź.
KhoPhi
3
Jeśli potrzebujesz tego uruchomić i nie masz internetu, możesz usunąć pakiet rozszerzeń FIle->Preferences->Extensionsi ustawić kontroler USB na 1.0, co powinno pozwolić na uruchomienie (bez rozszerzeń).
rrosa
@rrosa: Ciekawe! Czy możesz to opublikować jako nową odpowiedź? Dzięki!
Nicolas Raoul,
11

Jeśli potrzebujesz tego uruchomić i nie masz internetu, możesz usunąć pakiet rozszerzeń:

FIle->Preferences->Extensions

I ustaw kontroler USB na 1.1 w maszynie, którą chcesz uruchomić. Wybierz, a następnie:

Machine->Settings->USB->Set it to 1.1 (or disable it)

To powinno pozwolić na uruchomienie. Nie będziesz mieć dostępnych rozszerzeń, ale możesz przejść przez nie, dopóki nie uzyskasz dostępu do Internetu. Po nawiązaniu połączenia internetowego postępuj zgodnie z odpowiedzią Nicolasa Raoula

Rrosa
źródło
Pozwoliłem mi uruchomić się po skopiowaniu maszyny wirtualnej z Ubuntu na hosta Windows. Na obu hostach zainstalowano najnowszy pakiet rozszerzeń.
user18099
0

Tak to działało dla mnie po aktualizacji z Ubuntu 15.10 do Ubuntu 16.04:

  • Odinstaluj VirtualBox sudo apt-get remove virtualbox
  • Odinstaluj VirtualBox DKMS sudo apt-get remove virtualbox-dkms
  • Pobierz najnowszą wersję Virtualbox na https://www.virtualbox.org/wiki/Linux_Downloads
    (AMD64 dla Ubuntu 16.04, jeśli masz 64-bit. W przeciwnym razie wybierz i386)
  • Zainstaluj pobrany pakiet sudo dpkg -i virtualbox-5.0_...

Możesz teraz uruchomić VirtualBox (znaleźć w programie uruchamiającym lub uruchomić virtualbox), a wszystkie maszyny wirtualne będą znów działać!

Fin
źródło