起因
此前用VBox,初始時動態或固定分配的磁盤容量用完了就再重新建一個磁盤,但是有個虛擬機的系統分區容量不夠了,把整個磁盤都分成系統盤仍然不夠,於是研究了下磁盤容量調整問題。
更新
新版的VirtualBox已經支持GUI調整磁盤容量,"管理--虛擬介質管理器--虛擬磁盤" 下面有一個進度條,可以方便的修改。不用再用命令行了~
正文
1,從當前虛擬機中卸載該磁盤:
點擊 設置--存儲--選中磁盤--右鍵,刪除盤片(注:這里只是卸載,不要去物理刪除);
2,關閉Oracle VM VirtualBox管理器,重新以管理員身份啟動;
3,以管理身份運行命令行,轉到VirtualBox安裝目錄。默認路徑為C:\Program Files\Oracle\VirtualBox
cd C:\Program Files\Oracle\VirtualBox
4,調整磁盤容量。
以虛擬機路徑:C:\Users\XXX\VirtualBox VMs\Win_XP.vdi ,調整容量為30G為例。
VBoxManage modifyhd "C:\Users\XXX\VirtualBox VMs\Win_XP.vdi" --resize 30720
注:--resize 調整的單位為MB,若需以字節為單位請用 --resizebyte
命令執行成功的標志:
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
5,現在重新從 “設置--存儲--添加虛擬硬盤--選擇現有虛擬盤” 中選擇磁盤即可看到容量已經擴展。
注:現在啟動系統仍然看不到容量變大。這是因為容量調整,只是調整的虛擬機的“物理磁盤容量”,這時仍需要手動擴展分區,才可以使用。
關於如何手動擴展分區 請搜索 DISKGENIUS 此處不再贅述。
6,因為快照的影響,在調整主磁盤分區后,快照中無法看到容量更改,此時需要手動調整所有快照的磁盤容量,參考命令為
for %x in (Snapshots\*.vdi) do VBoxManage modifyhd --resize 100000 "%x"
7,linux中調整分區后(swap一般在末尾,刪除,擴展,重建swap后),需要重新設置swap
# 查看swap分區UUID gparted # 修改自動掛載swap分區,將其中swap分區UUID更新 gedit /etc/fstab # swap分區UUID更新 gedit /etc/initramfs-tools/conf.d/resume update-initramfs -u
可能遇到的問題
VBoxManage.exe: error: Failed to create the VirtualBox object! VBoxManage.exe: error: Code CO_E_SERVER_EXEC_FAILURE (0x80080005) - Server execution failed (extended info not available) VBoxManage.exe: error: Most likely, the VirtualBox COM server is not running or failed to start.
解決:
1)在進程管理器中,點擊 顯示所用用戶進程--結束掉 VBoxSVC.exe 和所有 virtualbox.exe
2)保證VirtualBox管理器和命令行以管理員身份運行
3)重新按正文操作即可
參考
http://www.cnblogs.com/zhcncn/articles/2948508.html
https://www.virtualbox.org/ticket/11307