Sanal kutudaki sanal makine bir oturum için zaten kilitlenmiş (veya kilidi açılmış)


85

Sanal kutudaki sanal makinem bu hata nedeniyle başlatılamıyor, yine de kurtarmak için onu yok edip yeniden yüklemek istemiyorum?

VBoxManageVirtualBox'ı kontrol etmek için Vagrant tarafından kullanılan bir CLI yürütülürken bir hata oluştu . Komut ve stderr aşağıda gösterilmiştir.

Command: ["modifyvm", "319fcce3-e8ff-4b6f-a641-3aee1df6543f", "--natpf1", "delete", "ssh"]

Stderr: VBoxManage: error: The machine 'centos64_c6402_1454036461345_59755' is already locked for a session (or being unlocked)
VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component MachineWrap, interface IMachine, callee nsISupports
VBoxManage: error: Context: "LockMachine(a->session, LockType_Write)" at line 493 of file VBoxManageModifyVM.cpp

Yanıtlar:


138

Bunu komut satırında çalıştırmak sanal makinenin kilidini açtı:

vboxmanage startvm <vm-uuid> --type emergencystop

Nerede <vm-uuid>hata mesajında sayıdır: Command: ["modifyvm", "<vm-uuid>" [...]. Bundan sonra VM'yi kontrol edebildim (başlatma, durdurma vb.). Ubuntu'da Virtualbox 4.1'i kullanma.


1
thanx adamım, bu gerçekten bana yardımcı oldu, docker'da paylaşılan bir klasörle ilgili bazı sorunlar yaşadım. Paylaşılan klasörü silemedim (hata: 'bizim harcamalarımız' adlı bir paylaşılan klasör bulunamadı) ve ayrıca oluştururken zaten var olduğunu söylüyordu ('bizim harcamalarımız' ile eşlenmiş '/ paylaşımlı bir klasör oluşturulamadı home / relu / projects / ourspends '(VERR_ALREADY_EXISTS))
Relu Mesaros

Bunu tam olarak nerede çalıştırıyorum? Açıkçası, "vboxmanage" komutu barındırma makinesindeki VBox yazılımı ile ilgili olduğundan ve VM'nin kendisi bunu tanımadığından bu, VM'nin kendi içinden değildir. Öte yandan, bu komut da barındırma makinem için bilinmiyor (benim durumumda, Windows 10). Öyleyse ... bu komutu çalıştırmak için neye ihtiyacım var?
TheCuBeMan

Linux kullanan bir terminalde çalıştırdım. Windows'ta bir Komut İstemi'nde (cmd) çalıştırılabileceğini tahmin ediyorum. VirtualBox 4.1 ile test edildi
Gonzalo Matheu

4
Kullanım VBoxManage -nologo liste VMS sizin vm-uuid öğrenmek için
Jakob

3
Windows için tam yola ihtiyacınız var, öyleyse koşun"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" <vm-uuid> --type emergencystop
Felix Eve

35

Aynı sorunu yaşarken, aslında vm'yi kilitleyen bir işlem olduğunu buldum:

501 79419 79323   0  2:18PM ??         0:39.75 /Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless --comment default --startvm 1d438a2e-68d7-4ba2-bef9-4ea162913c1b --vrde config

Vm'yi başlatmaya çalışırken sıkışmış bir işlem olmadığından emin olun:

ps -ef | grep -i "vbox"

Bu benim için çalıştı. Ps -ef ifadesinden dönen tüm süreçleri öldürdüm ve ardından "serseri yok et" tekrar çalıştı.
thebiggestlebowski

13

Benim için görev yöneticisindeki VboxHeadless.exe işlemini öldürmek zorunda kaldım. Ayrıca CMD isteminin Yönetim modunda açıldığından emin olmam gerekiyordu.


Linux kullanarak benim için de çalıştı. Çalışan diğer tüm VM'leri de zarif bir şekilde kapatmanızı tavsiye edin ( ps aux | grep boxterminalde ise kullanılabilir).
Dan

11

Bu cevabı @ Gonzalez'den çok ilginç buldum.

vboxmanage startvm <vm-uuid> --type emergencystop

O kullanmanın bunun yerine, benim VM geçerli örneğini kapatmaya olduğu tek sorun modifyvmkullanabileceğiniz controlvmgeçerli vm çalışıyorsa.

Örneğin:

 VBoxManage modifyvm <vm_name> --natpf1 "guestssh,tcp,,22,,2222"
 VBoxManage modifyvm <vm_name> --natpf1 delete "guestssh"

Olmak:

VBoxManage controlvm <vm_name> natpf1 "guestssh,tcp,,22,,2222"
VBoxManage controlvm <vm_name> natpf1 delete "guestssh"

Tam dokümantasyon Burada https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm


10

sudo pkill -9 VBox vbox ile ilgili çalışan her şeyi öldürür


7

Windows Görev Yöneticisi'nde, Sanal Kutu ile ilgili tüm görevleri sonlandırdım (Görev Yöneticisinde Vbox Headless.exe gibi bir V ile başladığını görebilirsiniz). Bunu yaptıktan sonra, bu hatayı ortadan kaldırmayı başardım (yukarıdaki 'vboxmanage startvm ... vb ...' çözümleri benim için işe yaramadı).


4

VirtualBox GUI'de bu kutu için açık bir ayarlar pencereniz varsa, bu hatayla karşılaşabilirsiniz. Ayarlar penceresini kapatın ve tekrar deneyin.


1

Bugün aynı hata mesajıyla karşılaşıyorum:

>me@myhost:~$ ps -ef | grep -i "vbox"

me  3064     1  0 08:51 ?        00:00:00 /usr/lib/virtualbox/VBoxXPCOMIPCD

me  3089     1  0 08:51 ?        00:00:00 /usr/lib/virtualbox/VBoxSVC --auto-shutdown

me  3126  3089 27 08:51 ?        00:00:39 /usr/lib/virtualbox/VBoxHeadless --comment RHEL5 64-bit desktop --startvm e5c598d8-1234-4003-a7c1-b9d8af15dfe7 --vrde config

me  3861  3415  0 08:53 pts/1    00:00:00 grep --color=auto -i vbox*

Gergely'nin cevabı bunu mükemmel bir şekilde çözüyor. Yukarıda gösterilen üç VBox işlemini başlatan sanal makineyi başlatmak için yeniden başlatma sırasında bir crontab ayarladığım ortaya çıktı.

me@myhost:~$ crontab -l

@reboot me /usr/bin/vboxmanage startvm "RHEL5 64-bit desktop" --type headless

0

Benim için çalışan tek seçenek ps axl | grep -i vbox ile eşleşen tüm süreçleri öldürmekti.


0

Benim durumumda, görünen neden, makineyi askıya aldıktan sonra çıkarılan bir USB ethernet adaptörüydü. Benim durumumda,

vboxmanage startvm <vm-uuid> --type emergencystop

Yardım etmedi. Bunun yerine, kafa karıştırıcı bir mesaj aldım.

VBoxManage: error: The machine 'xyzzy' is not locked by a session

Gerçek hata çalıştırılarak ortaya çıktı

vboxmanage startvm <vm-uuid> --type gui

hangi döndü

VBoxManage: error: Nonexistent host networking interface, name 'en9: USBPlug' (VERR_INTERNAL_ERROR)

Ağ yapılandırmasını farklı bir ağ adaptörüyle değiştirmek sorunu çözdü.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.