总结:运行 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 将驱动器上未分配的空间分配给某些分区/增加您选择的分区的大小。
执行此操作时需记住以下几点:
- 永远不要改变启动分区的位置。
- 您只能将未分配的空间分配给紧接其后的分区。
- 要增加被其他分区包裹的分区的大小,您必须将未分配空间的任意块“移动”到分区中,方法是将未分配空间相邻分区的“前部可用空间”的大小更改为“后部可用空间”的大小,并将“后部可用空间”的大小更改为零。如果您这样做,直到未分配空间位于要增加其大小的分区之后,您只需将该分区的大小增加未分配空间的大小即可。