在mac的debian VM上设备上没有剩余空间

时间:2016-11-03 13:13:16

标签: linux macos vagrant

当我尝试在我的虚拟机中安装java时出现此错误 - “设备上没有剩余空间”。我的虚拟机是debian,计算机是mac。

public class TestModuleImp implements TestModuleI {

  @EJB
  SampleSession sessionBean;

  @Override
  public void process() {
      sessionBean.foo();
  }
}

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

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

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

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

我的命令行说pvs,pvcreate找不到命令,我搜索了一些关于这些命令的信息,并没有找到关于如何安装这些软件包的有用信息。

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

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

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

但是,我转到VM,然后执行

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

返回相同的结果。我认为这个空间不会被释放。我在这里想念一下吗?谢谢你的帮助:)

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

  1. 创建其他分区
  2. 调整最后一个现有分区的大小
  3. 1。创建一个额外的分区

    1. 使用fdisk
    2. 创建其他分区
    3. 使用newfs或mkfs *
    4. 在该分区上创建您选择的新文件系统
    5. 为新文件系统创建挂载点
    6. 挂载新文件系统
    7. 将数据从人口过剩/移动到新文件系统。请确保不要移动系统启动所需的任何内容
    8. 将新分区添加到/ etc / fstab
    9. 可选择放置符号链接,其中最初移动的数据位于此处。
    10. 您在链接文章中写过pvs命令。该系统使用逻辑卷管理,新分区只是添加到可用卷中。但是,要将其与LVM一起使用,您必须创建一个包含新文件系统的新逻辑卷,或者调整现有逻辑卷及其上的文件系统。

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

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

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

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

答案 2 :(得分:0)

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

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

我可能已经忘记了重启步骤,因为在此过程中我一直停止流浪汉和流浪,以重新启动虚拟机。如果事情没有正确显示,请尝试重启机器。