首页 web服务器 正文
52

VirtualBox虚拟机扩容磁盘

VirtualBox虚拟机出现磁盘空间不足时可以通过本方法进行热扩容。
1、通过VirtualBox的“管理->虚拟介质管理”将对应的虚拟硬盘进行容量扩展(操作之前需要关闭虚拟机)。这里仅是硬盘增加了容量,但是虚拟机里面的操作系统还不能用上。
2、开启虚拟机,进入系统,按以下步骤完成硬盘/分区扩展
>lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0 103.5G  0 disk
├─sda1            8:1    0     1G  0 part /boot
└─sda2            8:2    0    19G  0 part
  ├─centos-root 253:0    0    17G  0 lvm  /
  └─centos-swap 253:1    0     2G  0 lvm  [SWAP]
sr0              11:0    1  58.4M  0 rom

>yum install cloud-utils-growpart

# 只能扩展最后一个分区,即sda2。注意growpart的参数是:[设备] [分区号]
# 如果磁盘没有分区,而是整个磁盘格式化为ext4,那么无法使用growpart指令,此时可以考虑直接使用指令resize2fs
>growpart /dev/sda 2

> lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0 103.5G  0 disk
├─sda1            8:1    0     1G  0 part /boot
└─sda2            8:2    0 102.5G  0 part
  ├─centos-root 253:0    0    17G  0 lvm  /
  └─centos-swap 253:1    0     2G  0 lvm  [SWAP]
sr0              11:0    1  58.4M  0 rom

# growpart 只是增加了物理容量,分区和文件系统还不能使用增加的空间,这时需要进行以下步骤
# Resize the physical volume to match the partition size
> pvresize /dev/sda2

# 在Linux系统上采用LVM(逻辑卷管理器)时,也可以使用growpart扩展LVM。
# 以上为例,可以看到sda2分区下面有两个LVM文件系统(centos-root和centos-swap),
# 我们要扩展的是centos-root,先使用df -h查看它的文件系统名
> df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  485M     0  485M   0% /dev
tmpfs                   tmpfs     496M     0  496M   0% /dev/shm
tmpfs                   tmpfs     496M   14M  483M   3% /run
tmpfs                   tmpfs     496M     0  496M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G   16G  1.3G  93% /
/dev/sda1               xfs      1014M  219M  796M  22% /boot

# /dev/mapper/centos-root就是我们需要扩展的对象。
# 下面的命令展示了如何使用growpart扩展LVM逻辑卷
>lvextend -l +100%FREE /dev/mapper/centos-root

# Use resize2fs/xfs_growfs to resize the filesystem to match the size of the logical volume

# 如果是xfs文件系统类型,则使用xfs_growfs命令
>xfs_growfs /dev/mapper/centos-root

# 如果是extX文件系统,X代表数字2,3,4,使用resize2fs命令
>resize2fs /dev/mapper/centos-root

# 文件系统类型使用df -T在结果的Type列查看。

# 最后验证一下扩容结果,达到预期
>lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0 103.5G  0 disk
├─sda1            8:1    0     1G  0 part /boot
└─sda2            8:2    0 102.5G  0 part
  ├─centos-root 253:0    0 100.5G  0 lvm  /
  └─centos-swap 253:1    0     2G  0 lvm  [SWAP]
sr0              11:0    1  58.4M  0 rom

写在后面: 除了使用growpart命令进行硬盘扩展之外,还可以使用gparted进行磁盘的分区管理(创建分区,删除分区,对现有分区进行Resize等), gparted是一个类似于PE的系统,下载好ISO文件之后,挂载到虚拟机的光驱启动,进入gparted进行图形化操作更加便捷高效。

正在加载评论...