(以下操作僅在VirtualBox虛擬機(jī)Ubuntu系統(tǒng)下的LVM文件系統(tǒng)中測試且有效爽茴,其他系統(tǒng)可以借鑒此方法進(jìn)行磁盤擴(kuò)容)
VirtualBox中默認(rèn)創(chuàng)建的磁盤容量為8GB,當(dāng)我們裝完系統(tǒng)后很可能會發(fā)現(xiàn)剩余空間不足爽撒,此時不需要重新創(chuàng)建虛擬機(jī)再裝一遍系統(tǒng)运沦,我們可以調(diào)整該磁盤文件的最大容量。
磁盤文件格式轉(zhuǎn)換
以下命令在命令提示符下輸入
首先如果你的磁盤格式是vmdk的,那么應(yīng)該首先轉(zhuǎn)換成VDI格式三娩。
轉(zhuǎn)換命令:
VBoxManage clonehd? "vmdk文件路徑" "vdi轉(zhuǎn)換后的VDI文件保存路徑和文件名" --format VDI
(如果文件路徑中有空格則需要加上雙引號,否則可以不加)
(一般會提示沒有該命令請到VirtualBox安裝目錄下執(zhí)行妹懒,或者將VirtualBox目錄添加到系統(tǒng)path環(huán)境變量中去)
示例:
VBoxManage clonehd? "D:\VirtualBox VMs\Ubuntu\Ubuntu-disk1.vmdk" "D:\VirtualBox VMs\Ubuntu\Ubuntu.vdi" --format VDI
調(diào)整磁盤文件容量
轉(zhuǎn)換完成后我們開始調(diào)整VDI磁盤文件的容量雀监。
通過下面的命令查看所有被虛擬機(jī)管理的虛擬磁盤,找到我們要轉(zhuǎn)換的磁盤文件的UUID
VBoxManage list hdds
然后調(diào)整磁盤的中的虛擬磁盤文件的動態(tài)大小上限:
VBoxManage modifyhd 目標(biāo)磁盤的UUID --resize 調(diào)整后文件的大姓;!(MB)
示例:
VBoxManage.exe modifyhd 734f523d-d7e1-4a3c-82ee-6f802b248c41 --resize 15360
設(shè)置虛擬機(jī)系統(tǒng)磁盤文件系統(tǒng)
? ? ? ?調(diào)整磁盤容量上限后在虛擬機(jī)中系統(tǒng)的磁盤實(shí)際容量就會大于當(dāng)前文件系統(tǒng)中記錄的容量会前,我們需要修復(fù)這種錯誤,同時將擴(kuò)大的磁盤容量合并到已有的磁盤系統(tǒng)中去匾竿。下面介紹了圖形工具和終端命令兩種方式進(jìn)行錯誤修復(fù)和分區(qū)合并瓦宜。
圖形工具方式
完成后進(jìn)入虛擬機(jī),安裝gparted工具岭妖。
sudo apt-get install gparted
打開后提示修復(fù)一個磁盤錯誤临庇。
以root分區(qū)為例反璃,調(diào)整root分區(qū)大小,將root分區(qū)擴(kuò)容后執(zhí)行并保存假夺。
終端命令方式
如果你的Linux沒有圖形界面淮蜈,那么也可以在終端下通過parted命令對磁盤的錯誤進(jìn)行修復(fù)
通過下面的命令查看所有識別的分區(qū)信息:
sudo parted -l
此時提示進(jìn)行修復(fù),輸入fix執(zhí)行修復(fù)
通過parted的resizepart命令合并空閑空間到磁盤中(parted從3.0后resize命令已經(jīng)被移除已卷,這里我們通過resizepart去執(zhí)行操作)
首先鍵入:sudo parted
然后在parted命令提示符下輸入:print梧田,列出所有分區(qū)設(shè)備。
接著輸入:resizepart侧蘸,選擇對應(yīng)的分區(qū)編號柿扣,輸入100%回車即可
然后Ctrl+C退出parted命令。
執(zhí)行l(wèi)vm命令闺魏,通過pvresize命令將文件系統(tǒng)擴(kuò)大到整個磁盤分區(qū)
注意這里的Physical volume是物理卷的意思未状,不是lvm中的邏輯卷,由于該示例的lvm邏輯卷是建立在sda3物理卷上的析桥,因此這里填寫sda3
然后Ctrl+C退出lvm命令
設(shè)置LVM文件系統(tǒng)的物理邊界
對于不知道lvm文件系統(tǒng)路徑的司草,可以通過 sudo fdisk -l 命令查看
對于LVM分區(qū)的系統(tǒng)來說還要執(zhí)行l(wèi)vextend命令去擴(kuò)展邏輯卷(LVM)的物理邊界,下面的命令意味將所有剩余的自由空間全部分配給lvm文件系統(tǒng)泡仗。
sudo lvextend -l +100%FREE lv文件系統(tǒng)路徑
示例:
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-root
設(shè)置LVM文件系統(tǒng)的邏輯邊界
執(zhí)行了lvextend命令擴(kuò)展邏輯卷(LVM)的物理邊界后通過df -k命令看到的磁盤大小還是之前的大小埋虹,此時還需要用resize2fs命令擴(kuò)展邏輯卷的邏輯邊界(-p表示將邏輯邊界設(shè)置的和物理邊界一樣大)
resize2fs -p lv文件系統(tǒng)路徑
示例:
sudo resize2fs -p /dev/mapper/ubuntu--vg-root
至此再查看root磁盤容量已經(jīng)擴(kuò)大了。