GX博客

分享个人 Full-Stack JavaScript 项目开发经验

解决Virtualbox中no space left on device问题

Virtualbox 虚拟机是学习运维工作重要的工具,例如它可以同时开启多台虚拟机来模拟集群系统。不过,随着软件工具和数据的增加,尤其像 Gitlab 这种消耗大量硬盘的应用,硬盘最终会被消耗尽,并返回系统错误信息:no space left on device

本文将简单介绍一些关于存储的基本概念和 Linux 系统下的一些常用硬盘命令,以及扩展 Virtualbox 硬盘的步骤。文中例子基于CentOS7系统,Virtualbox 版本为v6.1.6


基本概念

  • 逻辑卷管理(Logical Volume Manager,LVM)

    LVM 是 Linux 环境下对硬盘分区进行管理的一种机制,它是建立在硬盘或分区之上的逻辑层。

  • 物理卷(Physical Volume,PV)

    PV 处于 LVM 系统的最底层,是 LVM 的基本储存逻辑块。

  • 卷组(Volume Group,VG)

    VG 由一个或者多个 PV 组成。一个 LVM 系统中可以有一个或者多个 VG。

  • 逻辑卷(Logical Volume,LV)

    逻辑卷即从卷组中"切出"的一块空间,并且可以伸缩。文件系统建立在逻辑卷之上。


Linux 常用硬盘命令

查看文件系统可用空间情况:

df -h

查看硬盘、分区和逻辑卷等情况:

lsblk

查看硬盘分区信息:

fdisk -l

查看物理卷信息:

pvdisplay

查看卷组信息:

vgdisplay

查看逻辑卷信息:

lvdisplay

扩展逻辑卷至最大可用空间,并在扩展后调用 fsadm 扩展文件系统的尺寸:

lvextend -l+100%FREE <lv-name> -r

扩展 Virtualbox 硬盘

系统提示 no space left on device 的原因是所在逻辑卷空间将近耗尽:

disk-info-1

下面开始扩展虚拟机的硬盘。

1、硬盘扩展有风险,请先备份重要数据,或导出整个虚拟机。

2、在关闭虚拟机情况下,从 Virtualbox 用户界面的管理 -> 虚拟介质管理中,调整对应虚拟机的虚拟硬盘大文件大小:

virtualbox-ui-1

3、重新开启虚拟机,我们将会看到硬盘大小已经变化,但是分区大小仍然未扩展:

disk-info-2

4、再次关闭虚拟机,下载分区工具GParted镜像(gparted-live-1.1.0-1-amd64.iso),添加 iso 镜像到虚拟机光驱动中,并确保光驱先于硬盘启动:

virtualbox-ui-2

virtualbox-ui-3

5、重新启动虚拟机,确认所有默认选项,直到进入 GParted 应用程序界面。然后先停用要扩展的逻辑卷,再扩展它。最后保存,并重启虚拟机:

GParted-ui-1

GParted-ui-2

6、进入系统后,查看分区情况,可见分区已被扩展:

disk-info-3

但是逻辑卷大小还未更改,这时候需要使用 LVM 命令扩展逻辑卷至最大可用空间,并在扩展后调用 fsadm 扩展文件系统的尺寸:

lvextend -l+100%FREE /dev/centos/root -r

最后检验结果:

disk-info-4

版权声明:

本文为博主原创文章,若需转载,须注明出处,添加原文链接。

https://leeguangxing.cn/blog_post_82.html