手動清理故意刪除的 Virtualbox 驅動器

手動清理故意刪除的 Virtualbox 驅動器

我以錯誤的方式從 VirtualBox VM 中刪除了兩個虛擬磁碟。我從來賓配置中刪除了它們,但忘記從媒體列表中刪除它們,並從檔案系統中刪除了檔案和目錄,因此我看到磁碟在媒體列表中出現錯誤。它們具有關聯的快照,因此我收到有關它們正在使用的錯誤。如果我嘗試透過 GUI 刪除關聯的快照,或vboxmanage收到以下錯誤訊息:

VBoxManage.exe: error: VD: error VERR_PATH_NOT_FOUND opening image file [location]

當然,快照也消失了(這些是我安裝的舊vmdk文件,因此快照可能不是真實的)。如何從 VirtualBox 配置中手動刪除這些幽靈條目?我懷疑有一個配置文件或註冊表項,但我不確定在哪裡查找。

答案1

希望這對某人有幫助。

cat ~/.config/VirtualBox/VirtualBox.xml | grep your_roguedisk.vdi

取得 UUID 的輸出。

$ vboxmanage closemedium disk "{d89ef84a-d754-4da2-b2a1-cc37063d0c6d}" --delete

答案2

錯誤類似下面的截圖:

VirtualBox_File_Not_Found_Error

VERR_PATH_NOT_FOUND表示提供的檔案路徑無效。使用 VBoxManage 進行任何操作後,VirtualBox 會將檔案路徑保存在全域設定檔中。該檔案是XML格式的檔案。 VirtualBox 在以下目錄中維護全域設定資料:

  • Linux 和 Oracle Solaris:$HOME/.config/VirtualBox/VirtualBox.xml
  • Windows:%UserProfile%\.VirtualBox\VirtualBox.xmlC:\Users\UserName\.VirtualBox\VirtualBox.xml
  • Mac OS X:$HOME/Library/VirtualBox/VirtualBox.xml

該檔案包含每個虛擬機器的配置。所以把它備份編輯之前。VirtualBox.xml在任何文字編輯器中開啟該文件。找到您要刪除的檔案路徑。通常路徑駐留在<HardDisk/>標記中。例如,格式如下:

<HardDisks>
    <HardDisk uuid="{3761d018-e224-45d4-aa61-764d2c408712}" location="F:/test.VHD" format="VHD" type="Normal"/>
    <HardDisk uuid="{9f4f1f1c-f4c9-4773-a0b3-f0c52f699142}" location="F:/test.VMDK" format="vmdk" type="Normal"/>
</HardDisks>

刪除完整的標記行,否則 VBox 將顯示錯誤。這就是為什麼在進行任何更改之前備份該檔案。有關更多詳細信息,請參閱VirtualBox 文件:10.1.3。全域配置數據

答案3

受到第一個響應的啟發,該響應不起作用,我找到了解決方案。解決方案是停止 VirtualBox,然後進入引用相關磁碟映像的(或每個)單獨 VM 的目錄,編輯 VM 的 .vbox 文件,刪除硬碟條目(包括快照),然後啟動又是虛擬盒子。媒體管理器將不會顯示這些磁碟的任何條目。

相關內容