VirtualBox虛擬機Ubuntu擴容記
在VirtualBox中使用ubuntu系統,一開始分配的硬盤空間太小,使用一段時間后發現空間不夠用了怎么辦?
本篇記錄自己在使用VirtualBox中的ubuntu系統時,對ubuntu系統的進行磁盤擴容的實際操作記錄。
0 起因
之前在VirtualBox中安裝了ubuntu虛擬機,分配了29G的磁盤容量,最近發現不夠用了,就想著如何給它擴充容量。
VirtualBox中,ubuntu虛擬機系統是保存在一個vdi文件中,而我之前又是單獨給這個vdi文件在Windows系統中分配了一個30G的磁盤,所以,以我目前的情況,想要為ubuntu擴容,就先要為Window系統中的這個I盤擴容。
1 為Windows系統的磁盤擴容(失敗)
Window中為磁盤擴容,可以使用Window系統自帶的磁盤管理器,從相鄰的磁盤中借一些空間。
比如從我目前H盤中借來40G,先將H盤壓縮出來40G:
然后就出現了40G的未分配空間:
接著再將這40G空間嘗試擴展到ubuntu所在的I盤:
最后一步出現警告提示:你選定的操作會將選定的基本磁盤轉換成動態磁盤,如果將磁盤轉換成動態,你將無法從這些盤上的任何卷(除了當前啟動卷)啟動已安裝的操作系統,你確定要繼續嗎?
沒太看懂是什么意思,但貌似確定后,可能會造成系統無法啟動。
保險起見,點擊否,換另一種方式繼續擴容。
2 vdi文件復制轉移測試
由于ubuntu虛擬機系統只是一個vdi文件,所以理論上該文件支持復制與轉移吧,比如將該文件復制到其它地方后,VirtualBox可以再次設置這個ubuntu的vdi文件位置吧。
那就來試一下,將該文件從I盤復制到我的移動硬盤中:
然后在VirtualBox中打開對應的ubuntu虛擬機設置,先點擊刪除目前的vdi文件:
然后點擊注冊,選擇移動硬盤中的vdi文件:
確定之后,出現錯誤提示,兩個vdi文件的uuid一樣,不能使用。這是因為每個vdi文件都有一個唯一的uuid,而VirtualBox不允許注冊重復的uuid。
這時我們可以使用VirtualBox自帶的命令行工具,對vdi文件進行clone,這樣的復制方式,uuid就不一樣了。
注意,復制的時候,要從已能使用(已注冊)的vdi文件作為復制源,并且新的vdi要取一個新的名字,且源文件和目標文件不能在一個目錄中,否則會提示vdi already exists.。
比如我使用移動硬盤中還未使用過的vdi文件進行clone操作,就會報錯:
換用從之前ubuntu系統所在的I盤復制,就能正常復制:
VBoxManage.exe clonehd “I:\ubuntuTest.vdi” “J:\xxx\ubuntuTest0104.vdi
復制時會用進度提示,復制完會產生一個新的UUID:
然后我們再來將這個clone的vid文件注冊到VirtualBox的ubuntu虛擬機中,看看能不能用:
這次沒有報錯,已經注冊成功了:
啟動ubuntu,也一切正常,所以,根據實際測試,vdi文件可以使用clone的方式復制,復制后的vdi可以正常使用。
3 再次為Windows系統的磁盤擴容(成功)
上面已經測試了vdi文件支持復制,所以,將vdi復制出一份后,就可以對Window磁盤大膽的改造了。
直接對ubuntu所在的I盤清空和刪除,然后從相鄰的H盤借出40G,最初70G的未分配空間:
然后將這70G空間,再重新分配為I盤,作為ubuntu的使用空間:
接著,就可以將移動硬盤的vdi文件再復制回I盤了,注意,這兩個vdi文件,理論上都可以使用,為了和之前一樣,還將原始的vdi文件復制回來。從另一方面看,剛才的clone操作其實是多余的,只要先將原來的vdi文件復制出去,等Window的磁盤擴大之后,再將原來的vdi文件復制回來就能繼續使用。
然后重新將VitrualBox中ubuntu的磁盤設置為I盤中的vdi文件,加載成功:
查看Windows中I盤的容量,已經擴展為70G,還有很多可用空間夠ubuntu使用:
4 為vdi文件擴容(假擴容)
上面只是先把ubuntu的vdi所在的Windows系統的I盤進行了擴容,下面要繼續把vdi文件進行擴容,我們先來看一下I盤的使用情況,假設要將vdi擴展到69G,現在計算器中計算一下大小:
注意,我這里一開始計算錯了,多了一個0,696320是680G。
然后使用VirtualBox自帶的命令行工具(resize指令)對vdi文件進行擴容:
擴容之后來VirtualBox是設置界面看一下,已經變了680G:
實際我是想改到68G的,再使用命令行來改下大小。
但是命令行中提示不能由大往小的改。
好吧,那就把這個vdi刪掉,把剛才移動硬盤備份的vdi文件復制過來,再操作一遍吧。
VBoxManage modifyhd "I:\ubuntuTest.vdi" --resize 69632
重新操作一遍后,VirtualBox是設置界面里,已經顯示ubuntu的空間為68G了。
不過,這個時候的vdi文件的大小,其實是沒有變大,因為vdi文件是動態分配的大小的,當實際的使用空間變大上,vdi文件自動變大。
5 為/dev/sda1擴容(真擴容)
當我后續又繼續使用ubuntu一段時間后,vdi文件確實變大了。
但使用時,ubuntu系統仍會彈窗提示空間不足,什么情況?不是已經給vdi文件擴容了嗎?
實際情況是,雖然給vdi文件擴容了,但擴充的容量,ubuntu系統還不能直接使用!!!就像是window電腦多加了一個硬盤,但還沒進行格式化,還不能直接使用。
使用df -H指令看一下就明白了。可以看到/dev/sda1仍然是29G的總大小,目前使用率已經是100%了。
使用fdisk指令查看/dev/sda的大小,可用看到有68G,但真正能用的sda1是29G。
先嘗試了網上了一些方法,如下圖,沒有成功:
也沒看太懂具體的執行原理:
還是先使用ubuntu自帶的disk軟件,通過圖形化的方式查看一下磁盤的使用情況:
可用看到剩余的42G是屬于/dev/sda2,且是Unknow狀態。
ubuntu自帶的disk軟件其實也不太好用,網上有搜索了一番,發現另一個更好用的GParted軟件,先使用命令安裝:
sudo apt-get install gparted
然后打開該軟件,它是使用方法和Window的磁盤管理器比較像,將未分配的空間先格式化為unallocated狀態:
然后在/dev/sda1上進行擴容即可。
通過拉動箭頭的方式,我直接將剩余的空間都分配給sda1:
分配后的效果如下,da1顯示為68G了:
最后一步,要點擊對號按鈕進行確認,剛才的磁盤分配操作才會生效:
確認之后,會提示磁盤分配操作成功:
最后再來使用df -H指令來查看,可用大小/dev/sda1已經是68G了,使用率是42%,至此,VirtualBox中的ubuntu磁盤擴容才算真正完成。
6 總結
本篇介紹了自己在使用VirtualBox中的ubuntu系統時,對ubuntu系統的進行磁盤擴容的實際操作記錄,其中的一些過程走了彎路,總結下來,擴容的步驟分3部:
對ubuntu的vdi文件所在的window磁盤進行擴容(如果磁盤容量夠用則該步可跳過)
對ubuntu的vdi文件進行擴容,方法是使用VirtualBox自帶的命令行工具,進行resize
對ubuntu的/dev/sda1文件進行擴容,方式是使用GParted工具軟件
Ubuntu 虛擬化
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。