设备上没有剩余空间

设备上没有剩余空间

当我尝试使用 yum 从系统中删除某些包时遇到了奇怪的错误:

sudo yum remove evaluation-1.2-0.1122.noarch.rpm 
Loaded plugins: fastestmirror
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in <module>
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 276, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 107, in main
    base.doLock()
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 1740, in doLock
    while not self._lock(lockfile, mypid, 0644):
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 1810, in _lock
    os.write(fd, contents)
OSError: [Errno 28] No space left on device

我运行“df -h”并得到了这个:

df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             7.9G  7.9G     0 100% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1              97M   37M   55M  41% /boot
/dev/sda5              83G  977M   78G   2% /workplace

在我看来仍有很多可用空间。

运行‘df -i’并得到:

 df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda3             524288   42146  482142    9% /
tmpfs                2041840       1 2041839    1% /dev/shm
/dev/sda1              25688      39   25649    1% /boot
/dev/sda5            5505024     229 5504795    1% /workplace

我不熟悉 Linux 系统,知道可能出现什么问题吗?谢谢

答案1

查看您的输出。它清楚地显示 SDA3 分区上有 0% 的可用空间,挂载为“/”。理论上,如果您创建一个占用所有空间的文件,它仍然不会使用文件系统的所有可用 inode。使用

du -sh /*

找出哪个目录使用了多少数据。您可以尝试使用 fsck 检查文件系统结构,具体取决于文件系统的类型(可能是 ext3 或 ext4)。有一次我遇到一种情况,当我尝试启动应用程序(特别是 apache webserver )时,它说“设备上没有剩余空间”,虽然空间充足,但结果却是打开信号量( ipcs / ipcrm )或每个进程允许打开的文件数限制导致了这种行为。

在现代系统中,尤其是桌面系统中,将“/”或“/boot”放在单独的分区上已不再有意义,而是使用 LVM 和类似工具将几个物理磁盘组合到一个分区中。“/”太小的常见问题是,当日志(通常是 /var/log 或 /var/adm/log )保存在“/”上时,会占用所有空间,然后您无论如何都需要将它们移动到“/work”或“/home”分区,而最终您还是会得到跨多个分区共享的根文件系统。

答案2

从 df-h 输出来看,您的 / 或根分区上没有剩余空间。

Filesystem Size Used Avail Use% Mounted on

dev/sda3 7.9G 7.9G 0 100% /

du -hs /运行类似或 的命令du -hs /*/*/*来查找包含大文件的目录,或运行类似 的命令find / -type f -size +500000k,将 500000k 替换为单个文件的文件大小阈值。

一旦您确定了文件系统上的大型目录或文件,请确定它们是什么、有多大、上次修改的时间以及是否可以压缩(使用targzip)或使用删除它们rm,以释放更多空间。

然后您应该能够运行 yum 命令来卸载软件包,而不会因为空间不足而无法写入磁盘。

答案3

这是你的问题:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             7.9G  7.9G     0 100% /

那里事实上分区 '/dev/sda3' 上没有剩余空间

如果其他分区恰好需要空间,那么即使其他分区有大量可用空间也无济于事。

相关内容