virtualBox虚拟机linux(CentOS)硬盘扩容

时间:2021-10-18 23:41:10

对于Win7+VirtualBox+CentOS的组合,系统存储不够用,使用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扩容最简单,一条命令:

"C:\Program Files\Oracle\VirtualBox\VBoxManage" modifyhd  xxxx.vdi  --resize 16000   //xxxx.vdi一般会于VirtualBox VMs里

VMDK

如果是VMDK就要先转换成VDI,然后再扩容

[plain]  view plain copy virtualBox虚拟机linux(CentOS)硬盘扩容 virtualBox虚拟机linux(CentOS)硬盘扩容
  1. VBoxManage clonehd "xxxx.vmdk" "cloned.vdi" --format vdi  
  2. VBoxManage modifyhd "cloned.vdi" --resize 16000  //这里的单位是M  
如果想再转回为VMDK,直接使用vdi格式的也可以

[plain]  view plain copy virtualBox虚拟机linux(CentOS)硬盘扩容 virtualBox虚拟机linux(CentOS)硬盘扩容
  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.

下面创建将扩展的空间,创建新分区

virtualBox虚拟机linux(CentOS)硬盘扩容

[php]  view plain copy virtualBox虚拟机linux(CentOS)硬盘扩容 virtualBox虚拟机linux(CentOS)硬盘扩容
  1. sudo mkfs.ext4 /dev/sda4  //将分区格式化为ext4格式  
下面开始LVM操作:

virtualBox虚拟机linux(CentOS)硬盘扩容

[plain]  view plain copy virtualBox虚拟机linux(CentOS)硬盘扩容 virtualBox虚拟机linux(CentOS)硬盘扩容
  1. sudo vgdisplay //主要是查看卷组名,我这里是VolGroup,记着下面要用  

virtualBox虚拟机linux(CentOS)硬盘扩容

virtualBox虚拟机linux(CentOS)硬盘扩容

[plain]  view plain copy virtualBox虚拟机linux(CentOS)硬盘扩容 virtualBox虚拟机linux(CentOS)硬盘扩容
  1. sudo pvcreate /dev/sda4 //创建新物理卷  
  2. sudo vgextend VolGroup /dev/sda4 //扩展到卷 组  

virtualBox虚拟机linux(CentOS)硬盘扩容

 /dev/VolGroup/lv_root 就是根分区,也是我们要扩展的分区

[plain]  view plain copy virtualBox虚拟机linux(CentOS)硬盘扩容 virtualBox虚拟机linux(CentOS)硬盘扩容
  1. sudo lvextend -L +6.96 /dev/VolGroup/lv_root  
  2. sudo lvextend /dev/VolGroup/lv_root /dev/sda4  
  3. //两个命令都可以,不过下面好些,不用计算,命令意思是扩展到逻辑分区  

如果出现如下错误:

virtualBox虚拟机linux(CentOS)硬盘扩容

[plain]  view plain copy virtualBox虚拟机linux(CentOS)硬盘扩容 virtualBox虚拟机linux(CentOS)硬盘扩容
  1. sudo vgreduce --removemissing VolGroup 即可解决  

最后

[plain]  view plain copy virtualBox虚拟机linux(CentOS)硬盘扩容 virtualBox虚拟机linux(CentOS)硬盘扩容
  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中的挂载信息,否则启动不起来


===

Vboxmanage修改uuid报错的解决办法

解决办法:

将vboxmanage修改为以兼容模式运行这个程序即可,如下图:

virtualBox虚拟机linux(CentOS)硬盘扩容