设备上没有剩余空间

设备上没有剩余空间

我有一个虚拟服务器,但我无法上传/复制文件。

它显示“设备上没有剩余空间”,但我的硬盘上有 130 GB 的空间。

显示的内容如下:df -h /

df -h /
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/volume-root
                       39G   37G     0 100% /

显示的内容如下:df -i

df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/mapper/volume-root
                     2575440  293897 2281543   12% /
tmpfs                1024770       5 1024765    1% /lib/init/rw
udev                 1023447     517 1022930    1% /dev
tmpfs                1024770       1 1024769    1% /dev/shm
/dev/vda1              65536     222   65314    1% /boot
overflow             1024770       2 1024768    1% /tmp

看起来分区已经快满了(39GB 中占了 37GB),但我有 130GB 的硬盘,我该如何解决这个问题?

Disk /dev/vda: 167.5 GB, 167503724544 bytes
16 heads, 63 sectors/track, 324559 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e7311

Device Boot Start End Blocks Id System
/dev/vda1 *    3    523    262144 83 Linux
    Partition 1 does not end on cylinder boundary.
/dev/vda2    523  83221  41679872 8e Linux LVM
    Partition 2 does not end on cylinder boundary.

答案1

您可能有一个大小约为 130 GiB 的 LVM 卷组 (VG)(其名称“volume”非常有创意),其中只创建了一个逻辑卷 (LV)。看一下:

vgdisplay -v

我认为不将所有容量都放在 /dev/root 中是个好主意。您可以扩展(lvresize, lvextend)现有 LV(然后是其中的文件系统)或创建新的 LV(最好)。lvcreate为此使用或(最好)使用发行版的工具。然后查看您的磁盘分区:

fdisk -l /dev/vda

答案2

df -i 无法证明任何东西,1GB 文件的一个 inode 将使 df -i 的百分比少得多。您需要查看 VG(卷组)中是否有可用区。您需要扩大 LV(逻辑卷),然后调整实际 fs 的大小

答案3

这里和其他地方的所有解决方案对我都不起作用。我的服务器虚拟机由于错误计算了所需空间而 100% 已满,并且脚本没有检查可用空间。

问题是大多数解决方案都隐式或显式地需要驱动器上的一些可用空间,用于锁定文件或 apt-get 之类的操作。

扩展虚拟机后,我终于在虚拟机上成功启动了 SystemRescueCD。看来,将操作系统放在 RAM 中为我修复系统提供了所需的回旋余地。我大致遵循了这些指示(大约萎缩LVM 卷组)。

su - root

vgchange -a y

e2fsck -fy /dev/vg/root

resize2fs

resize2fs /dev/vg/root

相关内容