2013-03-14 34 views
53

Usunąłem katalog zawierający plik .vagrant. Kiedy buduję nową maszynę wirtualną, narzeka ona na używanie portów. Więc jak mogę zniszczyć maszynę wirtualną bez jej pliku .vagrant?Jak mogę zniszczyć maszynę wirtualną po usunięciu pliku .vagrant?

+0

Problem wspólne jest to problem o połowę: Czy dokładnie taki sam problem głupi, natychmiast rozwiązany dzięki SO ponownie ... –

Odpowiedz

86

Poniższe komendy VirtualBox może pomóc. Jeśli poweroff nie działa, spróbuj wyrejestrować.

$ VBoxManage list runningvms 
$ VBoxManage controlvm <uuid> poweroff 
$ VBoxManage unregistervm <uuid> 

Źródło: https://support.cloud.engineyard.com/entries/21449637-I-deleted-Vagrantfile-vagrant-and-or-the-app-directory-before-halting-the-VM-Now-ey-local-up-errors-

Shell skrypt, aby zatrzymać wszystkie uruchomione VMS:

VBoxManage list runningvms | awk '{print $2;}' | xargs -I vmid VBoxManage controlvm vmid poweroff 
+4

Polecenia te z pewnością zniszczy VM. Ale nadal pozostawiają wpis dla maszyny w "vagrant global-status". –

+35

@ValkoSipuli Wypróbuj 'vagrant global-status --prune'. Zobacz http://stackoverflow.com/a/24446866/300836 –

+1

W moim przypadku użyłem niewielkiej odmiany: 'VBoxManage list vms; VBoxManage discardstate ; VBoxManage unregistervm ' – N13

29

Najłatwiej zrobić to uruchomić klienta GUI VirtualBox i usunąć (ewentualnie po wyłączeniu) maszyna wirtualna. Możesz po prostu kliknąć maszynę wirtualną i wykonać te czynności.

enter image description here

+4

Nie, jeśli jesteś ssh'd w swoim dev boxie lub działasz tylko z linii poleceń. Również jeśli "alias killvms =" VBoxManage list runvms | awk '{print \ $ 2;}' | xargs -I vmid VBoxManage controlvm vmid poweroff "' musisz tylko wpisać killvms zamiast uruchamiać i czekać na GUI. – Pickels

+0

Zakładam, że zazwyczaj programiści pracują z Vagrant na ich lokalnym komputerze i nadal uruchamiają GUI gdzieś w tle :) – Gerry

+2

Twoje założenie było błędne! Ale skoro żyjesz tak blisko mnie, pozwolę temu ślizgać się. Hihi, żartuję, że nadal jest dobrą odpowiedzią dla ludzi, którzy prowadzą lokalnie włóczęgę. – Pickels

0

Jeśli usunięto VM za pomocą interfejsu GUI, a ty wciąż się błąd, można spróbować usunąć nazwie VM z „% USERPROFILE% \ VM VirtualBox”. Ten pracował dla mnie

1

następującą funkcję bash będzie poweroff i zniszczyć wszystkie pliki związane z wszystkimi maszynami wirtualnymi dla bieżącego użytkownika:

function killvms() { 
    VBoxManage list runningvms | awk '{print $2;}' | xargs -I vmid VBoxManage controlvm vmid poweroff 
    VBoxManage list vms | awk '{print $2;}' | xargs -I vmid VBoxManage unregistervm --delete vmid 
} 

go dodać do ~/.bash_aliases i nazywamy go w powłoce poprzez killvms.

+1

uratowałem mój dzień dzięki – Kingalione

Powiązane problemy