VisualBox虛擬機擴容硬盤及分區(qū)空間

在VisualBox管理器中可查看虛擬機的存儲空間及格式,也可在終端進入VisualBox安裝目錄使用VBoxManager.exe工具來查看:

$ cd C:\安裝目錄\VirtualBox\
$ VBoxManage.exe list hdds
UUID:           3174cfbd-2da3-4ae7-b16b-f417e6f651b6
Parent UUID:    base
State:          locked write
Type:           normal (base)
Location:       C:\用戶目錄\.docker\machine\machines\default\disk.vmdk
Storage format: VMDK
Capacity:       20000 MBytes
Encryption:     disabled

開始擴容,注意要先關閉虛擬機。

對于vdi格式的存儲,可以直接擴容(參考下方直接使用modifyhd命令),對于vmdk格式的存儲,需要先復制轉換為vdi格式,擴容后可以直接使用vdi格式的硬盤,便于以后擴容:

# 使用clonehd命令復制轉換格式
$ VBoxManage.exe clonehd "C:\用戶目錄\.docker\machine\machines\default\disk.vmdk" "C:\用戶目錄\.docker\machine\machines\default\docker.vdi" --format vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'vdi'. UUID: 7ea0cb49-98b3-45c7-ba05-599fdac9f947

# 對vdi格式進行擴容,單位為M,這里我擴容到35G(注意,這種方法不能用來縮容)。
$ VBoxManage.exe modifyhd "C:\用戶目錄\.docker\machine\machines\default\docker.vdi" --resize 35840
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

此時直接去管理器掛載新硬盤會提示UUID重復,需要重置一下UUID:

# 其實不帶.exe后綴也能使用VBoxManage
$ VBoxManage internalcommands sethduuid "C:\用戶目錄\.docker\machine\machines\default\docker.vdi"
UUID changed to: b3202d65-0097-4e93-833c-4e2b463dcf89

此時去管理器的虛擬機設置界面,找到存儲,刪除之前的vmdk盤片(不會真的刪除,文件夾中還存在),添加盤片——添加已有磁盤,然后在目錄中找到剛擴容的vdi格式磁盤添加即可。

PS:如果之前有做過快照的(在磁盤文件所在目錄下或其default子目錄中會有一個Snapshots文件夾,看里面有沒有快照文件),還需要對快照做處理,因為本文操作不涉及,需要的可以自行搜索。

現(xiàn)在在虛擬機的設置界面查看存儲可以發(fā)現(xiàn)磁盤的虛擬空間已經(jīng)到了35G。重新啟動虛擬機試試。

我們輸入fdisk -l命令查看磁盤空間:

$ fdisk -l
Disk /dev/sda: 35 GB, 37580963840 bytes, 73400320 sectors
4568 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 16065 * 512 = 8225280 bytes

Device  Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/sda1    123,0,1     1023,254,63    1975995   40949684   38973690 18.5G 83 Linux
/dev/sda2    0,1,1       122,254,63          63    1975994    1975932  964M 82 Linux swap

Partition table entries are not in disk order

從結果的第一行我們可以看到/dev/sda: 35 GB,磁盤總空間確實在35G,但再看下面/dev/sda1,依然還是18.5G,沒有擴容,怎么回事?

其實這是因為新增的磁盤空間并沒有被掛載上去,這類似于我們給電腦加了個新存儲條,但沒分區(qū)是一回事。

此時我們可以選擇將新增的空間添加到新分區(qū),也可以選擇增加到老分區(qū)去擴充其空間。在此我的需求是新增老分區(qū)/dev/sda1的空間,但其實都可以通過下面的方法做到。

現(xiàn)在我們需要用到Gparted這個工具。

先去其官網(wǎng)下載其iso文件:http://gparted.sourceforge.net/download.php,我下載的版本是gparted-live-1.0.0-3-i686.iso。

現(xiàn)在再次關閉虛擬機,我們要做的是用這個iso文件來啟動虛擬機,并分配新的空間。

使用虛擬機管理器,進入設置的“存儲”標簽,添加一個IDE控制器,然后在IDE控制器下選擇添加光驅(qū),從已有磁盤中選擇我們剛才下載的gparted-live-1.0.0-3-i686.iso。

然后去“系統(tǒng)”標簽下,將光驅(qū)的啟動順序拉到最前面。重新啟動虛擬機(帶界面)?,F(xiàn)在能看到,虛擬機通過Gparted啟動了。

一路回車,全用默認推薦設置,打開Gparted,我們可以看到我們目前已有的分區(qū)和未被分區(qū)的空間。這里我們可以右鍵選擇修改一個已有分區(qū)的大?。梢岳〉阶畲?,將空閑空間全部使用),也可以將空閑空間放入一個新分區(qū)。
操作界面參考這兩篇博客:
https://www.cnblogs.com/zhcncn/articles/2948508.html
https://www.cnblogs.com/xueweihan/p/5923937.html

操作完后提交,然后關閉虛擬機,去掉存儲中的IDE控制器,再重新打開就會以之前的系統(tǒng)和磁盤來啟動了?,F(xiàn)在再來檢查一下空間:

$ fdisk -l
Disk /dev/sda: 35 GB, 37580963840 bytes, 73400320 sectors
4568 cylinders, 255 heads, 63 sectors/track
Units: cylinders of 16065 * 512 = 8225280 bytes

Device  Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/sda1    123,0,1     1023,254,63    1975995   73400319   71424325 34.0G 83 Linux
/dev/sda2    0,1,1       122,254,63          63    1975994    1975932  964M 82 Linux swap

Partition table entries are not in disk order

可以看到/dev/sda1分區(qū)已經(jīng)擴大到34G了,全部利用了我添加的空間,原本分區(qū)中的內(nèi)容也還存在著。


查看作者首頁

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容