写错误 - 写入(28:设备上没有剩余空间)

我已经检查了我的硬盘空间。
我在Linux方面非常新手,正在尝试在我的服务器上安装更新。
当我执行时
ubuntu@ip-xxxxxxxxxxxx:~$ sudo apt-get -f install

我立刻得到这个回应。
Reading package lists... Error!
E: Write error - write (28: No space left on device)

第二行重复大约60次。
当我运行sudo df - h时,我得到的结果是:
Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G  4.0K  2.0G   1% /dev
tmpfs           396M  348K  395M   1% /run
/dev/xvda1       24G   14G  9.0G  61% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user
overflow        1.0M  1.0M     0 100% /tmp

我的理解是,我的驱动器还剩下9.0G的空间,但我不知道其他驱动器或文件系统在做什么?
这是一个AWS Ubuntu实例,我最近刚扩大了它的大小,我有一种感觉我可能漏掉了一步来使用那9GB的空间?

1你的 /tmp 目录已满,所以你的系统无法创建临时文件。通常 /tmp 是挂载在根目录下的一个目录。不确定为什么 /tmp 被挂载为文件系统。 - user680858
嗯,我一开始没有设置这个服务器。我该怎么修复呢?我们是在谈论溢出问题还是 tmpfs 问题? - Gavin Mannion
1个回答

/tmp文件夹用于安装新软件包。您将其映射到另一个分区,该分区的大小仅为1M。它很快就会满,并引发错误。
我建议将/tmp文件夹保留在其默认分区中:与根分区相同(在您的情况下是/dev/xvda1)。
请查看文件/etc/fstab。首先进行备份复制:
sudo cp /etc/fstab /etc/fstab.bak
sudo nano /etc/fstab

可能有一行挂载了/tmp文件夹。在该行的开头添加一个#符号来注释掉它。按下Ctrl + x保存文件,然后重新启动。
编辑fstab是一项潜在危险的操作,请小心,如果不想使用恢复控制台的话。

这是文件中的全部内容 LABEL=cloudimg-rootfs / ext4 defaults,discard 0 0 - Gavin Mannion
2好的,找到了卸载它的方法:sudo umount -l /tmp。 - Gavin Mannion
当卸载时,/tmp文件夹将再次使用9GB的存储空间。如答案所示,您应该检查/etc/fstab并注释或删除挂载/tmp的行。如果没有这样的行,则需要找出负责挂载的进程或脚本。 - user680858