花了一整個晚上的血淚談。
注意事項
- 目前 (4.x) 只支援在沒有 snapshots 的情況下改變 vdi 大小
- 若目前有用 snapshot, VBoxManage 也不會阻止你改變大小, 只是改完就沒救了, 會無法刪掉最早的 snapshot, 推測是因為硬碟上的 vdi 檔案資訊和 snapshot 內的 vdi 不合。可以刪除中間的 snapshot, 因為那沒有涉及硬碟上的 vdi 檔
擴大 vdi
- 關掉 guest OS
- 砍掉所有 snapshot, 只剩 current state: 在命令列下使用 VBoxManage modifyhd --resize NUM_MB /path/to/vdi
- 用 Ubuntu CD 開機 (現在已沒有 "live CD" 的名稱了, Ubuntu 安裝光碟本身就可當 "live CD"), 使用 gparted 調整硬碟大小
- 重開 guest OS, 可用 df -h 確認實際大小確實有改變 (或用 sudo fdisk -l /dev/sda 看 partition 資訊)。
若不幸在砍 snapshot 前先用 VBoxManage 改了大小, 就無解了。目前只有看到一位仁兄用 Mac 的 Time Machine 還原到他做蠢事前的狀態, 解決這個砍不掉的問題 ... 。
我用另一台電腦的 VirtualBox 實驗以上步驟沒有問題, 確認問題出在我先改了 vdi 大小。
縮小 vdi
我沒試過這個, 順便筆記一下
- VBoxManage --resize 只支援擴大, 要縮小的話要換指令
- 先在 guest OS 針對要縮小的 partitoin, 用對應的工具重整 partition (zerofree on Linux)
- 使用指令 VboxManage modifyhd --compact /path/to/vdi
參考資料
下次用這類 VM 的指令, 一定要熟讀手冊再下手啊 ...
首先感謝您的分享!
回覆刪除我也是沒砍snapshot玩掛了設定…後來亂try試出了可work的方法:
1.先備份(檔案/匯出應用裝置)
2.砍掉整組設定,但不刪檔
3.手動砍掉snapshot及log
4.新增一組設定,加入*.vdi,以fdisk -l確認size已擴大
5.重啟以gparted確認看得到可使用的未配置空間
接下來就可以用gparted調整磁碟空間配置了
真正血與淚 我也是經了一天一夜了啊 還沒搞定呢 為了瘦身 vdi 留下同情的足跡 南無阿彌陀佛
回覆刪除