VirtualBox 讓您在虛擬機器中運行 Linux,您經常會發現虛擬磁碟的大小不斷增長,即使您已經清除了其中的檔案。我將向您展示如何將這些磁碟區縮小到原來的大小、壓縮它們並節省磁碟空間。
如果您將VirtualBox 與Windows 用戶端一起使用(在虛擬機器術語中,「客戶機」是在虛擬機器中執行的作業系統) ,您可能已經習慣了VirtualBox 磁碟區在刪除檔案時會縮小,這樣它們只會佔用實體磁碟上包含檔案所需的空間。
這是 VirtualBox 動態分配功能的預期目的,但它不適用於 Linux 來賓。當使用 Linux 來賓時,許多用戶發現磁碟成長到其完整大小,然後隨著檔案從中刪除而永遠不會縮小。
這是由於 Linux 管理其檔案系統以及與 VirtualBox 主機互動的方式所造成的。當出於效能原因刪除文件時,Linux 不會「清除零」(用空資料覆蓋)文件,因此 VirtualBox 無法判斷虛擬磁碟上的哪些資料是活動資料以及哪些資料被刪除。
您可以透過自行將資料歸零並告訴 VirtualBox 壓縮卷,使其恢復到實際大小來解決此問題。這是如何完成的。
要從 Linux 來賓虛擬磁碟回收磁碟空間,您需要做的第一件事是確保啟用動態分配。如果不是,您需要將磁碟轉換為動態指派的磁碟。
接下來,備份您的虛擬磁碟。如果出現問題(例如輸入錯誤的命令,或過程中途斷電),您將面臨丟失 Linux 用戶端中所有資料的風險。
接下來,在Linux 用戶端上的終端機中執行以下指令:
sudo dd if=/dev/zero of=/var/deleteme
此指令會將清除(空白)資料寫入檔案/var /deleteme 直到磁碟完全滿。這將覆蓋您之前刪除的所有文件,解決 Linux 不會自動覆蓋已刪除資料的問題。
請小心使用 dd 指令,因為它會在沒有警告的情況下覆蓋資料!運行命令和路徑之前請仔細檢查它們。
此過程可能需要一些時間,具體取決於卷的大小,因此請耐心等待,不要中斷它。一旦完成,該程序將退出(可能會出現空間不足的錯誤)。一旦發生這種情況,您可以刪除清零檔案並關閉Linux 虛擬機器:
sudo rm -rf /var/deleteme <p> sudo shutdown now -h</p>
現在,虛擬磁碟上未使用的空間已清除,VirtualBox 將被清零。能夠透過縮小主機上的空間來回收它。最後一步是使用 vboxmanage 指令壓縮虛擬磁碟映像。透過執行以下命令來執行此操作:
<code class="hljs ">vboxmanage modifymedium disk /path/to/image.vdi -compact</code>
您必須將 /path/to/image.vdi 變更為要壓縮的虛擬磁碟的路徑。如果您使用的是Windows,則需要像這樣使用VBoxManage.exe:
VBoxManage.exe modifymedium disk /path/to/image.vdi -compact
如果VBoxManage.exe 在Windows 系統上的命令列中不可用,請繼續閱讀有關如何啟用它的說明。
這種壓縮 VirtualBox Linux guest 虛擬機器的方法利用 dd 指令將空檔案寫入磁碟,以便 VirtualBox 可以辨識空空間。
dd(資料複製器)指令可以轉換和複製文件,也可以用來寫入資料。傳遞給它的“if”選項提供輸入檔(在本例中/dev/zero 提供零值資料或空資料的恆定流)。 “of”選項指定輸出文件,並將此零資料流寫入其中。這將持續到磁碟已滿,因為 /dev/zero 永遠不會停止提供空資料。
預設情況下,VBoxManage.exe 在 Windows 命令列上不可用。您可以透過更新Windows 系統路徑以包含VirtualBox 安裝目錄來新增它,或在使用它時呼叫可執行檔的完整路徑:
& "C:/Path/To/VBoxManage.exe" modifymedium disk /path/to/image.vdi -compact
“&”符號,稱為呼叫操作符,執行引用的命令。這允許您在可執行檔的路徑中使用空格。
隨著來賓的成長,您可以增加或減少其虛擬磁碟的大小。快照可讓您取得虛擬機器在某個時間點的狀態並儲存;如果您稍後想要回到當時的情況(例如在測試配置變更後),您可以簡單地回滾,一切都會保持原樣。
VirtualBox 是一款功能強大的虛擬化工具,開發人員可以專業使用它來建立和測試軟體,家庭用戶也可以使用它在現代電腦上運行舊軟體和遊戲,或運行其他作業系統,而無需購買第二台機器。您可以在 MacOS、Windows 和 Linux 主機上執行 Windows、Linux、ChromeOS、Android 和其他作業系統。
您的變更已儲存
電子郵件已傳送
電子郵件已傳送
請驗證您的電子郵件地址。
發送確認電子郵件您已達到帳戶中關注主題的上限。
以上是磁碟空間不足?從您的 Linux VirtualBox 虛擬機器回收它的詳細內容。更多資訊請關注PHP中文網其他相關文章!