我有一个虚拟服务器,但我无法上传/复制文件。
它显示“设备上没有剩余空间”,但我的硬盘上有 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