0xzhang的博客

VirtualBox虚拟机CentOS7磁盘扩容

· 0xzhang

虚拟系统磁盘文件扩充§

命令操作

命令行运行VBoxManagemodifyhd扩容需要文件格式为.vdi,如为.vmdk,需要使用clonehd指定格式进行格式转换,详细可参考【1】。

VBoxManage modifyhd "centos-01.vdi" --resize 20480

GUI操作

关闭操作的虚拟机,在Oracle VM VirtualBox管理器主界面,管理->虚拟介质管理->属性->大小->应用

修改分区§

$ sudo fdisk /dev/sda     
p       #查看已分区数量
n       #新增加一个分区
p       #分区类型选择为主分区 
回车       #选择分区号,使用默认,即为新增分区
回车      #默认(起始扇区) 
回车      #默认(结束扇区) 
t       #修改分区类型 
回车       #选分区3 
8e       #修改为LVM(8e就是LVM)
w        #写分区表并退出 

重启:

$ sudo reboot                #重启

格式化分区(非必要,可用于转换文件系统类型):

这里名称“/dev/sda3”与新增分区一致。

# 查看
$ sudo fdisk -l 
# 格式化,还有各种 mkfs.ext4,mkfs.xfs..,与需要扩容的文件系统应该一致
$ sudo mkfs.ext3 /dev/sda3

LVM更新§

这里名称“/dev/sda3”与新增分区一致。

此虚拟机环境中需要扩容的文件系统为/dev/mapper/centos-root

$ lvm                          #进入lvm管理
$ lvm>pvcreate /dev/sda3             #这是初始化刚才的分区3
$ lvm>vgdisplay						  #查看卷组(VG Name)
$ lvm>vgextend centos /dev/sda3       #将初始化过的分区加入到虚拟卷组centos
$ lvm>lvdisplay 					  #查看逻辑分区,发现/dev/centos/root是根分区
$ lvm>lvextend /dev/mapper/centos-root /dev/sda3   #此处将整个分区扩展到根分区上
$ lvm>pvdisplay 						#查看卷容量,这时你会看到一个很大的卷了
$ lvm>quit  							#退出

这一过程中因不合适操作初始化了一个[unknown]物理卷,导致无法继续正确拓展逻辑分区,参考【3】使用以下命令后恢复,注意不应该使用vgremove(其功能为删除卷组)。

vgreduce --removemissing # 删除卷组中丢失的物理卷,使卷组恢复正常状态。

扩容文件系统§

可以通过df -T查看文件系统类型,之前已格式化为ext3,执行以下命令完成扩容。

$ sudo resize2fs /dev/mapper/centos-root 		#扩容文件系统,对应自己的根分区
# 如果报错或许因为扩容的是xfs文件系统,执行以下命令扩容文件系统
# $ sudo xfs_growfs /dev/centos/root 
$ sudo df -h 		#查看根分区容量已经更改
$ sudo reboot		#重启完成最后的操作

参考资料§

  1. virtualbox-centos扩容 - john_yang
  2. VirtualBox–Centos7磁盘扩容 - jiemin
  3. vgreduce命令 - LNMP