2013-03-14 37 views
53

我刪除了包含.vagrant文​​件的目錄。當我啓動一臺新VM時,它抱怨端口正在使用中。那麼如何銷燬虛擬機而不需要.vagrant文​​件呢?當我刪除.vagrant文​​件時,如何銷燬虛擬機?

+0

共享問題是一個問題的一半:完全相同的愚蠢問題,立即解決了感謝SO再次...... – 2017-05-01 21:37:30

回答

86

以下VirtualBox命令可能會有所幫助。如果poweroff不起作用,請嘗試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-

shell腳本停止所有正在運行的虛擬機:

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

這些命令肯定會破壞虛擬機。但是他們仍然爲機器留下了「流浪的全球地位」的條目。 – 2014-11-03 14:51:01

+35

@ValkoSipuli嘗試'vagrant global-status --prune'。參見http://stackoverflow.com/a/24446866/300836 – 2014-12-28 10:54:26

+1

就我而言,我使用了一個小小的變化:'VBoxManage list vms; VBoxManage discardstate ; VBoxManage unregistervm ' – N13 2015-01-18 14:56:13

29

最容易做的是剛剛推出的VirtualBox的GUI客戶端和刪除(可能關停後的事)虛擬機。您可以右鍵單擊虛擬機並執行這些操作。

enter image description here

+4

如果你已經ssh進入你的開發盒或者只能從命令行工作,那麼不行。此外,如果你'別名killvms =「VBoxManage列表runningVms | awk'{print \ $ 2;}'| xargs -I vmid VBoxManage controlvm vmid poweroff」'你只需要鍵入killvms而不是啓動並等待GUI。 – Pickels 2013-04-01 17:03:25

+0

我通常假設開發人員在本地機器上使用Vagrant,並且仍然在後臺運行GUI :) – Gerry 2013-04-01 17:40:56

+2

您的假設是錯誤的!但是,既然你住得如此接近我,我會讓這一張幻燈片。 Hihi,只是在開玩笑,對於那些在當地流浪的人來說,這仍然是一個很好的答案。 – Pickels 2013-04-01 18:30:17

0

如果您刪除使用VM的GUI和你仍然得到錯誤,可以嘗試從「%USERPROFILE%\ VirtualBox的虛擬機」刪除指定的虛擬機。這爲我工作

1

以下bash函數將poweroff和銷燬相關的所有虛擬機的當前用戶的所有文件:

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調用它在你的shell。

+1

救了我一天的感謝 – Kingalione 2018-01-22 09:17:28

相關問題