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擴容最簡單,一條命令:

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. <span style="font-size:14px;"><strong>VBoxManage    modifyhd  xxxx.vdi  --resize 16000   //xxxx.vdi一般會於VirtualBox VMs裏</strong></span>  

VMDK

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

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. VBoxManage clonehd "xxxx.vmdk" "cloned.vdi" --format vdi  
  2. VBoxManage modifyhd "cloned.vdi" --resize 16000  //這裏的單位是M  
如果想再轉回爲VMDK,直接使用vdi格式的也可以

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  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操作:


[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo vgdisplay //主要是查看卷組名,我這裏是VolGroup,記着下面要用  



[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo pvcreate /dev/sda4 //創建新物理卷  
  2. sudo vgextend VolGroup /dev/sda4 //擴展到卷 組  


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

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo lvextend -L +6.96 /dev/VolGroup/lv_root  
  2. sudo lvextend /dev/VolGroup/lv_root /dev/sda4  
  3. //兩個命令都可以,不過下面好些,不用計算,命令意思是擴展到邏輯分區  

如果出現如下錯誤:


[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. sudo vgreduce --removemissing VolGroup 即可解決  

最後

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章