【问题标题】:vagrant no space left on device on mac's debian VMvagrant 在 mac 的 debian VM 上的设备上没有剩余空间
【发布时间】:2016-11-05 10:14:11
【问题描述】:

当我尝试在我的虚拟机中安装 java 时收到此错误 - “vagrant no space left on device”。我的虚拟机是debian,电脑是mac。

root@web1:~# df -h 
Filesystem             Size  Used Avail Use% Mounted on
/dev/sda1              9.2G  9.2G     0 100% /
udev                    10M     0   10M   0% /dev
tmpfs                  403M  5.4M  397M   2% /run
tmpfs                 1006M   12K 1006M   1% /dev/shm
tmpfs                  5.0M     0  5.0M   0% /run/lock
tmpfs                 1006M     0 1006M   0% /sys/fs/cgroup
home_vagrant_builtinx  465G  175G  290G  38% /home/vagrant/builtinx

所以我找到了我的 vm 实例 debian-jessie-disk1.vmdk,并尝试使用命令调整它的大小:

sudo VBoxManage modifyhd --resize 40000 'debian-jessie-disk1.vmdk'

它说不支持这种格式。我按照vagrant no space left on device的步骤,将磁盘克隆到debian-jessie-disk1.vdi,并成功调整了克隆磁盘的大小。

我遵循所有步骤,直到步骤:“创建一个新分区(再次以超级用户 su - 身份登录)”

我的命令行显示 pvs, pvcreate are not found 命令,我在 Google 上搜索了一些关于这些命令的信息,但没有找到有关如何安装这些软件包的有用信息。

然后我打开“VM VirtualBox Manager”UI工具,将新磁盘debian-jessie-disk1.vdi分配给虚拟机的存储控制器,删除旧磁盘,保存。

现在存储磁盘信息屏幕显示

Type(Format): Normal(VDI)
Virtual Size: 39.06 GB
Actual Size: 9.75 GB
Details: Dynamically allocated storage

但是,我去虚拟机,然后做

root@web1:~# df -h 

返回相同的结果。我认为空间没有被释放。我在这里想念什么吗?谢谢你的帮助:)

【问题讨论】:

    标签: linux macos vagrant


    【解决方案1】:

    pvcreate 是 lvm2(逻辑卷管理)的一部分,您应该尝试安装它,它带来了一些实用程序来处理分区。 更多信息在这里https://wiki.debian.org/LVM

    【讨论】:

    • 谢谢维克多!我正在使用我的 VPN 连接搜索和查看此页面,并收到此页面的 403 Forbidden 错误。由于您再次引用它,所以我禁用了我的 VPN 连接,并找到我需要的信息。再次感谢。
    【解决方案2】:

    您更改了磁盘驱动器的大小,但没有调整分区大小,也没有调整其上的文件系统。当您在磁盘驱动器上的 VM 中运行 fdisk 时,您会在最后一个使用的分区之后找到可用空间。

    您现在在运行的来宾系统中有两个选择:

    1. 创建附加分区
    2. 调整最后一个现有分区的大小

    1。创建一个额外的分区

    1. 使用 fdisk 创建一个附加分区
    2. 使用 newfs 或 mkfs* 在该分区上创建您选择的新文件系统
    3. 为新文件系统创建挂载点
    4. 挂载新文件系统
    5. 将数据从过度填充的 / 移动到新的文件系统。确保不要移动任何东西,这是系统启动所必需的
    6. 将新分区添加到 /etc/fstab
    7. 可以选择放置符号链接,移动数据的原始位置。

    您在链接文章中写到了pvs 命令。该系统使用逻辑卷管理,新分区被简单地添加到可用卷中。但是,要在 LVM 中使用它,您必须创建一个带有新文件系统的新逻辑卷,或者调整现有逻辑卷和其上的文件系统的大小。

    2。调整最后一个现有分区的大小

    1. 使用磁盘,更改最后一个分区。保持第一个扇区不变,增加最后一个扇区以填满整个磁盘
    2. 重新调整分区上文件系统的大小。可能不适用于所有可能的文件系统,并且每个电影系统都需要自己的工具。对于 XFS,例如,您可以使用 xfs_growfs。

    可能的替代方案

    • 使用分区魔术之类的程序并希望它可以处理您的 linux 文件系统
    • 将根分区的全部内容复制到新分区,然后更改根。确保不要逐字节复制所有内容,而是使用诸如转储/恢复之类的东西,它可以处理特殊文件并在文件系统边界处停止。

    最重要的:在使用文件系统之前,请务必进行有效备份。备份主机系统上的虚拟硬盘应该没问题。

    【讨论】:

    • 谢谢马里奥。我选择了您的第二个“调整最后一个现有分区的大小”。步骤可能略有不同,但总体思路是相似的。感谢您的帮助:)
    【解决方案3】:

    所以最后我采取的步骤(在其他 cmets 和朋友的帮助下)是:

    1)。使用以下命令检查当前磁盘,发现有三个可用分区:/dev/sda1 /dev/sda3 /dev/sda5。我想我在遵循其他指南时添加了额外的 3/5 分区。

    sudo fdisk -l
    

    2)。使用以下命令删除交换空间。我发现只有 sda5 在 /etc/fstab 中创建了交换,所以我用第一个命令注释掉该行。

    sudo nano /etc/fstab
    sudo swapoff /dev/sda5
    

    3)。删除所有旧分区(这个操作是粗体的,我的同事告诉我这对Linux系统来说是可以的)并创建一个新分区。

    vagrant@web1:~$ sudo fdisk /dev/sda
    Welcome to fdisk (util-linux 2.25.2).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    
    Command (m for help): d
    ... // delete all existing partitions.
    Command (m for help): n
    Command (m for help): w
    

    4)。找到我创建的新分区并调整新分区的大小以使用磁盘驱动器中的全部空间。

    df -h  || This command finds my new partition is /dev/sda1
    sudo resize2fs /dev/sda1
    

    5)。检查分区是否已满。

    df -h
    

    我可能忘记了这里的重启步骤,因为我在这个过程中一直保持 vagrant halt 和 vagrant up 来重启虚拟机。如果您没有正确显示,请尝试重新启动机器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 2012-01-14
      • 2012-05-15
      • 2018-11-22
      • 2015-07-21
      • 2020-12-16
      • 2014-11-20
      相关资源
      最近更新 更多