解决 Linux 上的“设备上没有剩余空间”错误
Linux 系统上的 No Space Left on Device
错误意味着您尝试写入数据或保存文件的分区缺少足够的空间来执行操作。用户可以采取多种措施来解决该错误,所有这些措施都涉及释放分区上的额外空间或扩展可用空间的总大小。在本教程中,我们将向您展示如何解决设备上没有空间
的问题,并介绍一些可以帮助我们识别问题的基本 Linux 命令。
在本教程中您将学习:
如何使用 df 命令查看哪个分区已满
如何使用 du 命令识别最大的目录
如何使用磁盘分析器 GUI 实用程序识别大目录
如何清除浏览器和用户缓存
如何缩小或扩展磁盘分区
解决 Linux 上的“设备上没有剩余空间”错误
有多种方法可以解决 Linux 上的设备上没有剩余空间
错误。最明显的是删除分区上的一些数据以释放空间。另一种选择是扩展文件系统以使分区更大。我们将按照以下步骤介绍如何执行此操作:
首先找出哪个分区已满。 df 命令可以帮助解决这个问题。我们建议使用
-h
选项将输出设置为人类可读的格式。$ df -h
除了 df 之外,您还可以使用其他命令。请查看我们关于如何在 Linux 上按文件夹检查磁盘使用情况的其他教程,以获取更多命令示例。
现在您已经知道哪个分区导致了问题,请尝试使用 du 命令确定哪些目录和文件占用的空间最多。使用
-h
选项将大小设置为人类可读的格式,并可以选择将输出通过管道传输到sort
命令,以将所有最大的目录放在列表的顶部。$ du -h | sort -h 415M ./Gentoo 671M ./Arch Linux 1.9G ./RHEL-based/Fedora 6.5G ./Debian-based/Kali Linux 9.4G ./Debian-based/Ubuntu 11G ./RHEL-based/AlmaLinux 14G ./RHEL-based/CentOS 17G ./Debian-based 27G ./RHEL-based 44G . OR: $ du -h --max-depth=1 | sort -h 415M ./Gentoo 671M ./Arch Linux 17G ./Debian-based 27G ./RHEL-based 44G .
请参阅我们的教程“如何在 Linux 上按文件夹检查磁盘使用情况”中的更多有用示例。
如果您更喜欢使用 GUI 方法来确定分区上占用最多空间的内容,则可以安装并使用磁盘使用情况分析器 GUI 实用程序。它可以通过系统的包管理器安装为
baobab
。释放额外空间的快速方法是清除浏览器缓存。这通常可以在很短的时间内增长到数千兆字节的大小。该过程会根据您的浏览器而有所不同,但很容易在浏览器的菜单中找到该选项。
您还可以使用以下 Linux 命令清除当前用户的常规缓存:
$ rm -rf ~/.cache/*
另一种选择是延长空间不足的隔断的长度。仅当磁盘上有未使用的存储空间或计划缩小另一个现有分区并将该空间重新用于空间不足的分区时,才能执行此操作。此过程涉及使用
parted
命令,超出了本教程的范围,因此请查看我们的其他指南《如何在 Linux 上对驱动器进行分区》,了解如何在 Linux 中缩小和扩展分区。还有另一个明显的选择是将数据简单地存储在不同的分区上。再次,您可以使用 df 命令来确定是否有任何可用分区上有可用空间。如果是这样,只需将数据保存到有空间的分区即可。
注意 – 没有选项?
如果您的系统上没有更多空间,并且已经删除了不需要的所有内容,那么只剩下一个解决方案:您需要升级通过安装更多硬盘或用更大的磁盘替换当前的驱动器来扩展您的存储。如果您有大量文件需要存储和备份,您还可以尝试将部分文件卸载到云服务或选择 NAS(网络附加存储)。
结束语
在本教程中,我们了解了如何解决 Linux 系统上的设备上没有剩余空间
问题。这涉及到识别哪个分区已满并给出错误,以及如何确定我们可以安全地删除哪些文件以释放一些急需的空间。我们还考虑了各种替代方案,例如使用不同的分区进行存储、扩展文件系统、选择 NAS、使用云存储,或者只是使用更大的磁盘驱动器升级当前的硬件。