【vagrant】硬盤擴容

如題,筆者以前一直在使用vagrant做爲虛擬機使用。linux

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

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

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

因而這就很尷尬了,用了大半年就發現空間不夠了,甚至pip3 install都沒法使用。.net

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

準備工做

環境變量

在此次操做中,咱們須要用到virtualbox提供的vboxmanage命令。因此咱們首先須要將此命令添加到環境變量中。設計

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

記錄原始硬盤信息

輸入以下命令code

vboxmanage showhdinfo "box-disk1.vmdk"

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

製做擴容版硬盤

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

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磁盤大小

相關文章
相關標籤/搜索