1. 程式人生 > >virtualBox虛擬機器linux(CentOS)擴容(增加原先設定的大小 擴容至根目錄)

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

對於目前的網路開發者來說,比較好的搭檔就是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擴容為例,至於其它格式自己百度谷歌轉換吧

VDI

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

  1. <span style="font-size:14px;"><strong>VBoxManage    modifyhd  xxxx.vdi  --resize 16000   //xxxx.vdi一般會於VirtualBox VMs裡</strong></span>  

VMDK

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

  1. VBoxManage clonehd "xxxx.vmdk" "cloned.vdi" --format vdi  
  2. VBoxManage modifyhd "cloned.vdi" --resize 16000  //這裡的單位是M  
如果想再轉回為VMDK,直接使用vdi格式的也可以
  1. VBoxManage clonehd "cloned.vdi" "resized.vmdk" --format vmdk  
一陣0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%過後

能過

VBoxManage list hdds就可以看到我們克隆的檔案了。

下面就是在開啟虛擬機器--選個系統--右擊--設定--儲存--控制器SATA--右邊的新增虛擬硬碟--選擇克隆的檔案就行了。

在虛擬機器開啟系統,通過df -h檢視發現,根目錄還是原樣,下面我們通過lVM來擴充套件分割槽。

LVM(Logic Volume Manager)邏輯卷管理,像RedHat系的預設分割槽管理方式,是建立在硬碟分割槽之上,檔案系統之下的邏輯層,用來解決在最初分割槽時未正確的評估和和分配分割槽容量,而造成系統分割槽不夠用。

想起某大神的一句話,計算機裡的任何問題,都可以通過加一層中間層來解決。

所以擴充套件分割槽就是幾行程式碼的事了.

sudo fdisk -l 檢視當前系統分割槽情況。可以看到我們已經建立的分割槽,sda1 sda2的什麼,也可以ls /dev/來檢視。如果有第二塊硬碟會看到sdb,

我這裡是只有一塊,且已經分了sda1和sda2.

下面建立將擴充套件的空間,建立新分割槽


  1. sudo mkfs.ext4 /dev/sda4  //將分割槽格式化為ext4格式
下面開始LVM操作:


  1. sudo vgdisplay //主要是檢視卷組名,我這裡是VolGroup,記著下面要用  



  1. sudo pvcreate /dev/sda4 //建立新物理卷  
  2. sudo vgextend VolGroup /dev/sda4 //擴充套件到卷 組  


 /dev/VolGroup/lv_root 就是根分割槽,也是我們要擴充套件的分割槽
  1. sudo lvextend -L +6.96 /dev/VolGroup/lv_root  
  2. sudo lvextend /dev/VolGroup/lv_root /dev/sda4  
  3. //兩個命令都可以,不過下面好些,不用計算,命令意思是擴充套件到邏輯分割槽  

如果出現如下錯誤:


  1. sudo vgreduce --removemissing VolGroup 即可解決  

最後

  1. sudo resize2fs /dev/VolGroup/lv_root //重新整理邏輯分割槽容量  
  2. sudo df -h //會發現根分割槽,現在容量翻倍了。。。  

sudo reboot //重啟系統,一切OK,我的虛擬機器又復活了。。。

PS:補充一些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中的掛載資訊,否則啟動不起來

原文出處:http://blog.csdn.net/king_of_fighter/article/details/17768201