为什么当我的 VirtualBox 机器使用了我分配给它的一小部分磁盘空间时,它就没有磁盘空间了?

为什么当我的 VirtualBox 机器使用了我分配给它的一小部分磁盘空间时,它就没有磁盘空间了?

总结:运行 Ubuntu 的 VirtualBox VM 似乎无法识别虚拟硬盘大小。如何修复?FWIW,我曾经在 VirtualBox 5.2 上运行过同样的设置,Ubuntu 16.04 和 MySQL 5.6,绝不有此类问题。


我刚刚买了一个新硬盘,里面安装了全新的 Windows 10,并安装了我经常使用的开发程序,包括 VirtualBox。我创建了一个运行 Ubuntu 18.04 Server 的虚拟机来托管我的开发环境的 LAMP 堆栈。

在尝试运行导入实时数据库的数据库备份的创建脚本(MySQL)时,遇到磁盘空间问题并报告两个错误:

ERROR 1114 (HY000): The table 'trial' is full

和:

ERROR 3 (HY000): Error writing file './dbname/#sql-52b_13.frm' (Errcode: 28 - No space left on device)

遇到这两个错误后,我甚至无法启动 MySQL。我以为是配置问题,但当我去编辑配置文件时,我甚至无法使用 tab 键自动完成文件的名称,因为这显然也需要磁盘空间(谁知道呢?)。

关键在于:当我创建虚拟机时,我为其创建了一个 30GB 的静态虚拟硬盘(VirtualBox 磁盘映像的 .vdi)——远远超过了我这个项目所需的大小。当我查看硬盘上的已用空间时,它并没有显示太多已用空间。就好像操作系统无法识别其硬盘的大小一样。它显示的最大文件系统只有 3.9GB

df -h输出:

Filesystem                         Size  Used Avail Use% Mounted on
udev                               967M     0  967M   0% /dev
tmpfs                              200M  988K  199M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  3.9G  3.7G     0 100% /
tmpfs                              997M     0  997M   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              997M     0  997M   0% /sys/fs/cgroup
/dev/loop0                          87M   87M     0 100% /snap/core/4917
/dev/loop1                          90M   90M     0 100% /snap/core/6818
/dev/sda2                          976M  143M  767M  16% /boot
tmpfs                              200M     0  200M   0% /run/user/1000

以下是我的设置详细信息:

  • 主持人:Windows 10 家庭版(版本 10.0.17763)
  • 主机硬盘:1TB
  • .vdi文件大小(如主机文件资源管理器中所示):30.0 GB(31,459,328 KB)
  • 虚拟盒:版本 6.0.6(最新版本)
  • 虚拟机操作系统:Ubuntu 18.04(仿生海狸)
  • 虚拟机硬盘:30 GB .vdi(静止的
  • 虚拟机内存:已分配 2GB
  • MySQL:版本 5.7
  • 数据库转储.sql文件大小:~75 MB(未压缩的纯文本)

编辑

托马斯·沃德 (Thomas Ward) 的以下评论是正确的。与其与 LVM 斗争并尝试使其工作,我决定放弃该 VM 并在不使用 Ubuntu 18.04 的 LVM 的情况下进行全新安装。

答案1

我最近遇到了类似的问题,而且由于您似乎已经解决了您的问题,所以我想添加一些可能对其他人有帮助并且应该对您有帮助的内容。

输出df -h表明,据我所知,您的某些分区已满。要调整它们的大小,我主要遵循教程(至少在 GParted 完整设置之前)。一旦您增加了虚拟硬盘的大小(如果它已经足够大,但可用空间尚未分配,则无需这样做),您可以使用 GParted 将驱动器上未分配的空间分配给某些分区/增加您选择的分区的大小。

执行此操作时需记住以下几点:

  1. 永远不要改变启动分区的位置。
  2. 您只能将未分配的空间分配给紧接其后的分区。
  3. 要增加被其他分区包裹的分区的大小,您必须将未分配空间的任意块“移动”到分区中,方法是将未分配空间相邻分区的“前部可用空间”的大小更改为“后部可用空间”的大小,并将“后部可用空间”的大小更改为零。如果您这样做,直到未分配空间位于要增加其大小的分区之后,您只需将该分区的大小增加未分配空间的大小即可。

相关内容