VirtualBox虛擬機增加CentOS根目錄容量 LVM擴容


對於目前的網絡開發者來說,比較好的搭檔就是Win7+VirtualBox+CentOS的組合,既可以發揮Linux強大的網絡服務功能,也可以有效的隔離各項服務拖慢系統,影響系統的運行,對於新手來說可以減少配置錯誤帶來的損失,最主要的是方便移植,不同每次重裝系統,都要痛苦的安裝配置一大堆東西。

但如果當我們在虛擬機中安裝和使用的時候,發現系統存儲不夠用,怎么辦,使用VirtualBox 4 版本以上的可以方便、快速的擴容。

VirtualBox 中虛擬硬盤有幾種形式,VMDK、VDI、VHD、HDD等。

  • VMDK:是VMware開發並使用的,同時也被SUN的xVM、QEMU、SUSE Studio、.NET DiscUtils支持,所以兼容性會好些。
  • VDI:是Virtual Box 自己的處理格式,而且Virtual Box支持Windows和Linux,所以對於使用VirtualBox的用戶比較好。
  • VHD:是Windows專有的處理格式,HDD是Apple專有的處理格式,所以不會支持跨平台,一般不會考慮。

我們這里以如何給VMDK和VDI擴容為例,至於其它格式自己百度谷歌轉換吧。

這里我們用到兩個東西:(1)VBoxManage工具命令——在Vitualbox安裝目錄下,可以指定完整路徑;(2)centos.vdi或cenos.vmdk——你系統的磁盤文件文件,一般位於用戶的VirtualBox VMs文件夾下。

1 擴容磁盤文件

1.1 VDI

VDI擴容最簡單,一條命令:

VBoxManage modifyhd centos.vdi --resize 16000

1.2 VMDK

如果是VMDK就要先轉換成VDI,然后再擴容:

VBoxManage clonehd "centos.vmdk" "centos.vdi" --format vdi // vmdk是轉換前的文件,vdi是轉換之后的文件 VBoxManage modifyhd "centos.vdi" --resize 16000   // 這里的單位是M

一陣0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%過后,通過VBoxManage list hdds就可以看到我們克隆的文件了。

如果想再轉回為VMDK,用這個命令就可以了:

VBoxManage clonehd "centos.vdi" "resized.vmdk" --format vmdk

不過,直接使用vdi格式的也可以了。

2 指定新磁盤文件

接下來,打開虛擬機,選擇系統 > 右擊 > 設置 > 存儲 > 控制器SATA > 右邊的添加虛擬硬盤 > 選擇轉換后的文件 就行了。

vm-centos

在虛擬機打開系統,通過df -h查看發現,根目錄還是原樣,下面我們通過LVM來擴展分區。

3 LVM擴展

LVM(Logic Volume Manager)邏輯卷管理,像RedHat系的默認分區管理方式,是建立在硬盤分區之上,文件系統之下的邏輯層,用來解決在最初分區時未正確的評估和和分配分區容量,而造成系統分區不夠用。接下來擴展分區就是幾行代碼的事了。

sudo fdisk -l

查看當前系統分區情況。可以看到我們已經創建的分區,sda1、sda2的什么,也可以ls /dev/來查看。

如果有第二塊硬盤會看到sdb,我這里是只有一塊,且已經分了sda1和sda2。

下面創建將擴展的空間,創建新分區。

extend-disk1

sudo mkfs.ext4 /dev/sda4  // 將分區格式化為ext4格式

下面開始LVM操作,查看卷組名,我這里是VolGroup,記着下面要用

sudo vgdisplay

extend-disk2

sudo pvcreate /dev/sda4                // 創建新物理卷
sudo vgextend VolGroup /dev/sda4  // 擴展到卷組

extend-disk3

extend-disk4

查看根分區:

extend-disk5

其中,/dev/VolGroup/lv_root就是根分區,也是我們要擴展的分區。

擴展到容量邏輯分區,命令:

sudo lvextend /dev/VolGroup/lv_root /dev/sda4

如果出現如下錯誤:

extend-disk6

sudo vgreduce --removemissing VolGroup   // 即可解決

最后

sudo resize2fs /dev/VolGroup/lv_root     // 刷新邏輯分區容量
sudo df -h                               // 會發現根分區,現在容量翻倍了。。。 sudo reboot // 重啟系統,一切OK,我的虛擬機又復活了。。。

補充:LVM的基本知識

LVM中有PV、VG、LV分別表示物理卷、卷組、邏輯卷。

操作流程就是,先是通過pvcreate將整個分區和硬盤創建為物理卷,對家vgcreate創建卷組volgroup,並把pvcreate的物理卷加入。然后通過lvcreate在卷組volgroup中創建我們需要的比如20G大小的邏輯卷。然后利用mkfs格式化為相應該的格式,比如ext4。最后通過mount掛載,形成我們可以訪問的文件系統。

如果要擴容,通過這種方式來增加容量。

lvextend -L +xxG /dev/VolGroup/zzz

如果要壓縮,則卸載掉邏輯卷,在e2fsck檢測剩余的容量,然后,

resizef2fs /dev/VolGroup/zzz xxM        // 減少xxM
lvreduce -L xxM                         // 將邏輯卷減少xxM

如果要刪除,則用命令

lvremove vgremove pvremove

也是要先umount ,同時要修改/etc/fstab中的掛載信息,否則啟動不起來。

 

參考資料:

  1. virtualBox虛擬機linux(CentOS)擴容(增加原先設置的大小 擴容至根目錄)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM