【vagrant】硬盤擴容

如題,筆者之前一直在使用vagrant作爲虛擬機使用。

vagrant的好處自然不必說,只是有一天遇到了一個麻煩事——虛擬硬盤空間不!夠!了!

筆者使用了df -h命令一看,結果發現,主硬盤(/dev/sda1)總空間居然只有10G,然而一般的系統鏡像初始大小就超過9G。

在網上一查,發現vagrant其實最初設計定位是快速還原運行環境,於是vagrant一般情況下在虛擬機初始化階段不會留出很足的主硬盤空間。

於是這就很尷尬了,用了大半年就發現空間不夠了,甚至pip3 install都無法使用。

後來再一查,找到了一個親測可行的解決方案——既然vagrant自身設定尷尬,那就直接通過vbox操作使之不尷尬!

準備工作

環境變量

在這次操作中,我們需要用到virtualbox提供的vboxmanage命令。所以我們首先需要將此命令添加到環境變量中。

在windows下的操作,就是將virtualbox的安裝路徑添加至path項。unix系統中應該類似。

記錄原始硬盤信息

輸入如下命令

vboxmanage showhdinfo "box-disk1.vmdk" 

記錄下原硬盤的uuid,之後會有用。

製作擴容版硬盤

首先是將原硬盤進行克隆操作

vboxmanage clonehd "box-disk1.vmdk" "new-virtualdisk.vdi" --format vdi

將硬盤克隆成了vdi格式後,就可以開始下一步的擴容操作了:

vboxmanage modifyhd "new-virtualdisk.vdi" --resize 30720

其中·30720單位爲MB,即表示30G空間。

接下來將硬盤文件轉回原來的格式(其實直接使用vdi格式也可以),以及,建議不要直接覆蓋原來的 vmdk硬盤文件,以作備份。

VBoxManage clonehd "new-virtualdisk.vdi" "resized.vmdk" --format vmdk

記錄一下新vmdk文件的uuid信息。到這一步,帶有原數據和新尺寸的硬盤就製作完畢了。

將新硬盤載入使用

替換原硬盤文件

雖然說是替換,不過還是建議將原來的vmdk文件進行一個備份。

字面意思,替換原文件

windows:

ren box-disk1.vmdk box-disk1-backup.vmdk
ren resized.vmdk box-disk1.vmdk

linux:

mv box-disk1.vmdk box-disk1-backup.vmdk
mv resized.vmdk box-disk1.vmdk

修改.box配置文件

其實替換完機子之後,還差最後一步。

打開原來的vmdk對應的box文件,將原來的vmdk的uuid信息全部替換爲新vmdk文件的uuid

要注意,可能有不止一處,一定要好好查找一下,保證替換完全。

大功告成

截圖紀念:

可以看到,主硬盤現在已經擴大到了30G,再也不用擔心空間不夠用啦。

方法來源:修改Vagrant box磁盤大小

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章