天天看點

VirtualBox虛拟機Ubuntu擴容記

在VirtualBox中使用ubuntu系統,一開始配置設定的硬碟空間太小,使用一段時間後發現空間不夠用了怎麼辦?

本篇記錄自己在使用VirtualBox中的ubuntu系統時,對ubuntu系統的進行磁盤擴容的實際操作記錄。

0 起因

之前在VirtualBox中安裝了ubuntu虛拟機,配置設定了29G的磁盤容量,最近發現不夠用了,就想着如何給它擴充容量。

VirtualBox虛拟機Ubuntu擴容記

VirtualBox中,ubuntu虛拟機系統是儲存在一個vdi檔案中,而我之前又是單獨給這個vdi檔案在Windows系統中配置設定了一個30G的磁盤,是以,以我目前的情況,想要為ubuntu擴容,就先要為Window系統中的這個I盤擴容。

VirtualBox虛拟機Ubuntu擴容記
VirtualBox虛拟機Ubuntu擴容記

1 為Windows系統的磁盤擴容(失敗)

Window中為磁盤擴容,可以使用Window系統自帶的磁盤管理器,從相鄰的磁盤中借一些空間。

VirtualBox虛拟機Ubuntu擴容記

比如從我目前H盤中借來40G,先将H盤壓縮出來40G:

VirtualBox虛拟機Ubuntu擴容記

然後就出現了40G的未配置設定空間:

VirtualBox虛拟機Ubuntu擴容記

接着再将這40G空間嘗試擴充到ubuntu所在的I盤:

VirtualBox虛拟機Ubuntu擴容記

最後一步出現警告提示:你標明的操作會将標明的基本磁盤轉換成動态磁盤,如果将磁盤轉換成動态,你将無法從這些盤上的任何卷(除了目前啟動卷)啟動已安裝的作業系統,你确定要繼續嗎?

VirtualBox虛拟機Ubuntu擴容記

沒太看懂是什麼意思,但貌似确定後,可能會造成系統無法啟動。

保險起見,點選否,換另一種方式繼續擴容。

2 vdi檔案複制轉移測試

由于ubuntu虛拟機系統隻是一個vdi檔案,是以理論上該檔案支援複制與轉移吧,比如将該檔案複制到其它地方後,VirtualBox可以再次設定這個ubuntu的vdi檔案位置吧。

那就來試一下,将該檔案從I盤複制到我的移動硬碟中:

VirtualBox虛拟機Ubuntu擴容記

然後在VirtualBox中打開對應的ubuntu虛拟機設定,先點選删除目前的vdi檔案:

VirtualBox虛拟機Ubuntu擴容記

然後點選注冊,選擇移動硬碟中的vdi檔案:

VirtualBox虛拟機Ubuntu擴容記

确定之後,出現錯誤提示,兩個vdi檔案的uuid一樣,不能使用。這是因為每個vdi檔案都有一個唯一的uuid,而VirtualBox不允許注冊重複的uuid。

VirtualBox虛拟機Ubuntu擴容記

這時我們可以使用VirtualBox自帶的指令行工具,對vdi檔案進行clone,這樣的複制方式,uuid就不一樣了。

注意,複制的時候,要從已能使用(已注冊)的vdi檔案作為複制源,并且新的vdi要取一個新的名字,且源檔案和目标檔案不能在一個目錄中,否則會提示vdi already exists.。

比如我使用移動硬碟中還未使用過的vdi檔案進行clone操作,就會報錯:

VirtualBox虛拟機Ubuntu擴容記

換用從之前ubuntu系統所在的I盤複制,就能正常複制:

VBoxManage.exe clonehd “I:\ubuntuTest.vdi” “J:\xxx\ubuntuTest0104.vdi      
VirtualBox虛拟機Ubuntu擴容記

複制時會用進度提示,複制完會産生一個新的UUID:

VirtualBox虛拟機Ubuntu擴容記

然後我們再來将這個clone的vid檔案注冊到VirtualBox的ubuntu虛拟機中,看看能不能用:

VirtualBox虛拟機Ubuntu擴容記

這次沒有報錯,已經注冊成功了:

VirtualBox虛拟機Ubuntu擴容記

啟動ubuntu,也一切正常,是以,根據實際測試,vdi檔案可以使用clone的方式複制,複制後的vdi可以正常使用。

VirtualBox虛拟機Ubuntu擴容記

3 再次為Windows系統的磁盤擴容(成功)

上面已經測試了vdi檔案支援複制,是以,将vdi複制出一份後,就可以對Window磁盤大膽的改造了。

直接對ubuntu所在的I盤清空和删除,然後從相鄰的H盤借出40G,最初70G的未配置設定空間:

VirtualBox虛拟機Ubuntu擴容記

然後将這70G空間,再重新配置設定為I盤,作為ubuntu的使用空間:

VirtualBox虛拟機Ubuntu擴容記

接着,就可以将移動硬碟的vdi檔案再複制回I盤了,注意,這兩個vdi檔案,理論上都可以使用,為了和之前一樣,還将原始的vdi檔案複制回來。從另一方面看,剛才的clone操作其實是多餘的,隻要先将原來的vdi檔案複制出去,等Window的磁盤擴大之後,再将原來的vdi檔案複制回來就能繼續使用。

VirtualBox虛拟機Ubuntu擴容記

然後重新将VitrualBox中ubuntu的磁盤設定為I盤中的vdi檔案,加載成功:

VirtualBox虛拟機Ubuntu擴容記

檢視Windows中I盤的容量,已經擴充為70G,還有很多可用空間夠ubuntu使用:

VirtualBox虛拟機Ubuntu擴容記

4 為vdi檔案擴容(假擴容)

上面隻是先把ubuntu的vdi所在的Windows系統的I盤進行了擴容,下面要繼續把vdi檔案進行擴容,我們先來看一下I盤的使用情況,假設要将vdi擴充到69G,現在電腦中計算一下大小:

VirtualBox虛拟機Ubuntu擴容記

注意,我這裡一開始計算錯了,多了一個0,696320是680G。

然後使用VirtualBox自帶的指令行工具(resize指令)對vdi檔案進行擴容:

VirtualBox虛拟機Ubuntu擴容記

擴容之後來VirtualBox是設定界面看一下,已經變了680G:

VirtualBox虛拟機Ubuntu擴容記

實際我是想改到68G的,再使用指令行來改下大小。

但是指令行中提示不能由大往小的改。

VirtualBox虛拟機Ubuntu擴容記

好吧,那就把這個vdi删掉,把剛才移動硬碟備份的vdi檔案複制過來,再操作一遍吧。

VBoxManage modifyhd "I:\ubuntuTest.vdi" --resize 69632      
VirtualBox虛拟機Ubuntu擴容記

重新操作一遍後,VirtualBox是設定界面裡,已經顯示ubuntu的空間為68G了。

VirtualBox虛拟機Ubuntu擴容記

不過,這個時候的vdi檔案的大小,其實是沒有變大,因為vdi檔案是動态配置設定的大小的,當實際的使用空間變大上,vdi檔案自動變大。

VirtualBox虛拟機Ubuntu擴容記

5 為/dev/sda1擴容(真擴容)

當我後續又繼續使用ubuntu一段時間後,vdi檔案确實變大了。

VirtualBox虛拟機Ubuntu擴容記

但使用時,ubuntu系統仍會彈窗提示空間不足,什麼情況?不是已經給vdi檔案擴容了嗎?

VirtualBox虛拟機Ubuntu擴容記

實際情況是,雖然給vdi檔案擴容了,但擴充的容量,ubuntu系統還不能直接使用!!!就像是window電腦多加了一個硬碟,但還沒進行格式化,還不能直接使用。

使用df -H指令看一下就明白了。可以看到/dev/sda1仍然是29G的總大小,目前使用率已經是100%了。

VirtualBox虛拟機Ubuntu擴容記

使用fdisk指令檢視/dev/sda的大小,可用看到有68G,但真正能用的sda1是29G。

VirtualBox虛拟機Ubuntu擴容記

先嘗試了網上了一些方法,如下圖,沒有成功:

VirtualBox虛拟機Ubuntu擴容記

也沒看太懂具體的執行原理:

VirtualBox虛拟機Ubuntu擴容記

還是先使用ubuntu自帶的disk軟體,通過圖形化的方式檢視一下磁盤的使用情況:

VirtualBox虛拟機Ubuntu擴容記

可用看到剩餘的42G是屬于/dev/sda2,且是Unknow狀态。

VirtualBox虛拟機Ubuntu擴容記

ubuntu自帶的disk軟體其實也不太好用,網上有搜尋了一番,發現另一個更好用的GParted軟體,先使用指令安裝:

sudo apt-get install gparted      

然後打開該軟體,它是使用方法和Window的磁盤管理器比較像,将未配置設定的空間先格式化為unallocated狀态:

VirtualBox虛拟機Ubuntu擴容記

然後在/dev/sda1上進行擴容即可。

VirtualBox虛拟機Ubuntu擴容記

通過拉動箭頭的方式,我直接将剩餘的空間都配置設定給sda1:

VirtualBox虛拟機Ubuntu擴容記

配置設定後的效果如下,da1顯示為68G了:

VirtualBox虛拟機Ubuntu擴容記

最後一步,要點選對号按鈕進行确認,剛才的磁盤配置設定操作才會生效:

VirtualBox虛拟機Ubuntu擴容記

确認之後,會提示磁盤配置設定操作成功:

VirtualBox虛拟機Ubuntu擴容記

最後再來使用df -H指令來檢視,可用大小/dev/sda1已經是68G了,使用率是42%,至此,VirtualBox中的ubuntu磁盤擴容才算真正完成。

VirtualBox虛拟機Ubuntu擴容記

6 總結

  • 對ubuntu的vdi檔案所在的window磁盤進行擴容(如果磁盤容量夠用則該步可跳過)
  • 對ubuntu的vdi檔案進行擴容,方法是使用VirtualBox自帶的指令行工具,進行resize
  • 對ubuntu的**/dev/sda1檔案進行擴容**,方式是使用GParted工具軟體
  • 對ubuntu的vdi檔案所在的window磁盤進行擴容(如果磁盤容量夠用則該步可跳過)
  • 對ubuntu的vdi檔案進行擴容,方法是使用VirtualBox自帶的指令行工具,進行resize
  • 對ubuntu的**/dev/sda1檔案進行擴容**,方式是使用GParted工具軟體

繼續閱讀