2013-03-14 4 views
53

.vagrant 파일이 들어있는 디렉토리를 삭제했습니다. 새로운 VM을 사용할 때 사용중인 포트에 대해 불평하고 있습니다. 그렇다면 VM을 제거하지 않고 VM을 파괴하는 방법은 무엇입니까?.vagrant 파일을 삭제할 때 VM을 어떻게 파괴합니까?

+0

공유되는 문제가 절반으로 줄어든 문제입니다. 똑같은 바보 같은 문제가 있었기 때문에 즉시 다시 해결되었습니다. –

답변

86

다음 VirtualBox 명령이 도움이 될 수 있습니다. 전원 끄기가 작동하지 않으면 unregistervm을 시도하십시오.

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

출처 : 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-

쉘 스크립트가 중지 실행중인 모든 VM을 :

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

이 명령은 VM을 확실히 파괴합니다. 그러나 그들은 여전히 ​​기계에 대한 항목을 "외설적 글로벌 상태"로 남깁니다. –

+35

@ValkoSipuli 'vagrant global-status --prune'을 시도하십시오. http://stackoverflow.com/a/24446866/300836 –

+1

필자의 경우 약간의 변형을 사용했다 :'VBoxManage list vms; VBoxManage discardstate ; VBoxManage unregistervm ' – N13

29

가장 쉬운 단지 버추얼의 GUI 클라이언트를 실행하고 가능성이 종료 한 후 (제거한다 할 것) 가상 머신. 가상 컴퓨터를 마우스 오른쪽 단추로 클릭하고 이러한 작업을 수행 할 수 있습니다. 당신이 VM이 GUI를 사용하여 오류가 계속 받고있어 제거한 경우

enter image description here

+4

dev 상자에 ssh'd하거나 명령 줄에서만 작동하면 안됩니다. 또한'alias killvms = "VBoxManage list runningvms | awk '{print \ $ 2;}'| xargs -I vmid VBoxManage controlvm vmid poweroff"'GUI를 시작하고 대기하는 대신 killvms 만 입력하면됩니다. – Pickels

+0

일반적으로 개발자는 로컬 컴퓨터에서 Vagrant와 작업을하고 여전히 백그라운드에서 GUI를 실행한다고 가정합니다. – Gerry

+2

가정이 잘못되었습니다! 그러나 당신이 나에게 아주 가까이서 살고 있기 때문에 나는 이것을 미끄러지게 할 것입니다. Hihi, 그냥 농담하는 것만으로도 현지에서 방랑자를 운영하는 사람들에게 여전히 좋은 답변입니다. – Pickels

0

, 당신은 "% USERPROFILE % \ 버추얼 VM을"로 명명 된 VM을 삭제하려고 할 수 있습니다.

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 
} 

~/.bash_aliases에 추가하고 killvms를 통해 쉘에서 호출이 현재 사용자에 대한 모든 VM에 관련된 모든 파일 전원을 차단할 파괴 것이다 나

1

다음 bash는 기능을 위해 일했다.

+1

내 하루 저장해 줘서 고마워. – Kingalione

관련 문제