對於目前的網絡開發者來說,比較好的搭檔就是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擴容最簡單,一條命令:
VBoxManage modifyhd xxxx.vdi --resize 16000 //xxxx.vdi一般會於VirtualBox VMs裡
VMDK
如果是VMDK就要先轉換成VDI,然後再擴容
VBoxManage clonehd "xxxx.vmdk" "cloned.vdi" --format vdi VBoxManage modifyhd "cloned.vdi" --resize 16000 //這裡的單位是M如果想再轉回為VMDK,直接使用vdi格式的也可以
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.
下面創建將擴展的空間,創建新分區
sudo mkfs.ext4 /dev/sda4 //將分區格式化為ext4格式
下面開始LVM操作:
sudo vgdisplay //主要是查看卷組名,我這裡是VolGroup,記著下面要用
sudo pvcreate /dev/sda4 //創建新物理卷
sudo vgextend VolGroup /dev/sda4 //擴展到卷 組
/dev/VolGroup/lv_root 就是根分區,也是我們要擴展的分區
sudo lvextend -L +6.96 /dev/VolGroup/lv_root
sudo lvextend /dev/VolGroup/lv_root /dev/sda4
//兩個命令都可以,不過下面好些,不用計算,命令意思是擴展到邏輯分區
sudo resize2fs /dev/VolGroup/lv_root //刷新邏輯分區容量 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中的掛載信息,否則啟動不起來