目标:把原盘hadoop-course2.vdi上从6G扩容到20G
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专有的处理格式,所以不会支持跨平台,一般不会考虑。
扩容磁盘文件
D:\ProgramFiles\Oracle\VirtualBox 是 VirtualBox 的安装路径 ,VBoxManage 是我们要使用到的工具 , 单位是 M,1024M 就表示1G,40960 表示分配40G的空间给这个盘
1.1 VDI
在执行命令前先关机,把“设置”-“存储”-“控制器SATA”下的hadoop-course2.vdi从页面删掉
在WINDOWS 的 CMD 上执行命令
VBoxManage modifyhd "C:\Users\changlina3\VirtualBox VMs\hadoop-course2\hadoop-course2.vdi" --resize 20480
1.2 VMDK(选做)
如果是VMDK就要先转换成VDI,然后再扩容:
// vmdk是转换前的文件,vdi是转换之后的文件 VBoxManage clonehd "hadoop-course2.vmdk" "hadoop-course2.vdi" --format vdi 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'vdi'. UUID: ce35ce1e-438c-433c-9c65-0c84d4747369 // 设备要扩容的容量 VBoxManage modifyhd "hadoop-course2.vdi" --resize 40960 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
如果想再转回为VMDK,用这个命令就可以了,Virtual Box 建议用 vdi 格式
D:\VirtualBox\VBoxManage clonehd "centos7.vdi" "centos7-2.vmdk" --format vmdk
指定新磁盘文件
接下来,打开虚拟机,选择系统 > 右击 > 设置 > 存储 > 控制器SATA > 右边的添加虚拟硬盘 > 选择转换后的文件 “C:\Users\changlina3\VirtualBox VMs\hadoop-course2\hadoop-course2.vdi”。
通过LVM来扩展分区。
通过 df -h 命令,可以看到我们现在的磁盘空间占用,已经是100%了
执行 fdisk /dev/sda
这时候我们通过 fdisk -l 查看,就可以看到多了个 /dev/sda3
我们的新建分区/dev/sda3,却不是LVM的。所以,接下来使用fdisk将其改成LVM的
修改后我们可以看到后面已经带了LVM了
重新启动系统
//格式化 mkfs.ext4 /dev/sda3
执行 vgdisplay
创新建的物理卷 pvcreate /dev/sda3
执行扩展到卷组 vgextend rhel /dev/sda3
因为我的盘已经满了没有空间,所以会报下面的错误,删掉一点没用的文件腾出空间就可以
Couldn't create temporary archive name. Volume group "centos" metadata archive failed.
再次执行 vgdisplay 查看一下
执行 lvdisplay 可以查看根分区路径
扩展到容量逻辑分区 lvextend /dev/rhel/root /dev/sda3
如果出现 UUID 的错误,可以执行
vgreduce --removemissing rhel
如下出现下面的错误,xfs用以下命令来扩磁盘空间
执行 cat /etc/fstab | grep centos-home 看是不是 xfs
执行 xfs_growfs /dev/mapper/rhel-root
最后 df -h 查看一下,我们的虚拟机又复活了!!