在VisualBox管理器中可查看虛擬機(jī)的存儲(chǔ)空間及格式稀拐,也可在終端進(jìn)入VisualBox安裝目錄使用VBoxManager.exe工具來(lái)查看:
$ 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
開(kāi)始擴(kuò)容,注意要先關(guān)閉虛擬機(jī)袖订。
對(duì)于vdi格式的存儲(chǔ),可以直接擴(kuò)容(參考下方直接使用modifyhd命令)嗅虏,對(duì)于vmdk格式的存儲(chǔ)洛姑,需要先復(fù)制轉(zhuǎn)換為vdi格式,擴(kuò)容后可以直接使用vdi格式的硬盤(pán)皮服,便于以后擴(kuò)容:
# 使用clonehd命令復(fù)制轉(zhuǎn)換格式
$ 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
# 對(duì)vdi格式進(jìn)行擴(kuò)容楞艾,單位為M,這里我擴(kuò)容到35G(注意龄广,這種方法不能用來(lái)縮容)硫眯。
$ VBoxManage.exe modifyhd "C:\用戶目錄\.docker\machine\machines\default\docker.vdi" --resize 35840
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
此時(shí)直接去管理器掛載新硬盤(pán)會(huì)提示UUID重復(fù),需要重置一下UUID:
# 其實(shí)不帶.exe后綴也能使用VBoxManage
$ VBoxManage internalcommands sethduuid "C:\用戶目錄\.docker\machine\machines\default\docker.vdi"
UUID changed to: b3202d65-0097-4e93-833c-4e2b463dcf89
此時(shí)去管理器的虛擬機(jī)設(shè)置界面蜀细,找到存儲(chǔ)舟铜,刪除之前的vmdk盤(pán)片(不會(huì)真的刪除,文件夾中還存在)奠衔,添加盤(pán)片——添加已有磁盤(pán)谆刨,然后在目錄中找到剛擴(kuò)容的vdi格式磁盤(pán)添加即可。
PS:如果之前有做過(guò)快照的(在磁盤(pán)文件所在目錄下或其default子目錄中會(huì)有一個(gè)Snapshots文件夾归斤,看里面有沒(méi)有快照文件)痊夭,還需要對(duì)快照做處理,因?yàn)楸疚牟僮鞑簧婕霸嗬铮枰目梢宰孕兴阉鳌?/p>
現(xiàn)在在虛擬機(jī)的設(shè)置界面查看存儲(chǔ)可以發(fā)現(xiàn)磁盤(pán)的虛擬空間已經(jīng)到了35G她我。重新啟動(dòng)虛擬機(jī)試試。
我們輸入fdisk -l命令查看磁盤(pá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 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
從結(jié)果的第一行我們可以看到/dev/sda: 35 GB,磁盤(pán)總空間確實(shí)在35G番舆,但再看下面/dev/sda1酝碳,依然還是18.5G,沒(méi)有擴(kuò)容恨狈,怎么回事疏哗?
其實(shí)這是因?yàn)樾略龅拇疟P(pán)空間并沒(méi)有被掛載上去,這類似于我們給電腦加了個(gè)新存儲(chǔ)條禾怠,但沒(méi)分區(qū)是一回事返奉。
此時(shí)我們可以選擇將新增的空間添加到新分區(qū),也可以選擇增加到老分區(qū)去擴(kuò)充其空間吗氏。在此我的需求是新增老分區(qū)/dev/sda1的空間芽偏,但其實(shí)都可以通過(guò)下面的方法做到。
現(xiàn)在我們需要用到Gparted這個(gè)工具弦讽。
先去其官網(wǎng)下載其iso文件:http://gparted.sourceforge.net/download.php污尉,我下載的版本是gparted-live-1.0.0-3-i686.iso。
現(xiàn)在再次關(guān)閉虛擬機(jī)往产,我們要做的是用這個(gè)iso文件來(lái)啟動(dòng)虛擬機(jī)十厢,并分配新的空間。
使用虛擬機(jī)管理器捂齐,進(jìn)入設(shè)置的“存儲(chǔ)”標(biāo)簽,添加一個(gè)IDE控制器缩抡,然后在IDE控制器下選擇添加光驅(qū)奠宜,從已有磁盤(pán)中選擇我們剛才下載的gparted-live-1.0.0-3-i686.iso。
然后去“系統(tǒng)”標(biāo)簽下瞻想,將光驅(qū)的啟動(dòng)順序拉到最前面压真。重新啟動(dòng)虛擬機(jī)(帶界面)。現(xiàn)在能看到蘑险,虛擬機(jī)通過(guò)Gparted啟動(dòng)了滴肿。
一路回車,全用默認(rèn)推薦設(shè)置佃迄,打開(kāi)Gparted泼差,我們可以看到我們目前已有的分區(qū)和未被分區(qū)的空間。這里我們可以右鍵選擇修改一個(gè)已有分區(qū)的大泻乔巍(可以拉取到最大堆缘,將空閑空間全部使用),也可以將空閑空間放入一個(gè)新分區(qū)普碎。
操作界面參考這兩篇博客:
https://www.cnblogs.com/zhcncn/articles/2948508.html
https://www.cnblogs.com/xueweihan/p/5923937.html
操作完后提交吼肥,然后關(guān)閉虛擬機(jī),去掉存儲(chǔ)中的IDE控制器,再重新打開(kāi)就會(huì)以之前的系統(tǒng)和磁盤(pán)來(lái)啟動(dòng)了∽褐澹現(xiàn)在再來(lái)檢查一下空間:
$ 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)擴(kuò)大到34G了斗这,全部利用了我添加的空間,原本分區(qū)中的內(nèi)容也還存在著啤斗。