xvda1 已满 100%,这是什么问题?如何修复?

xvda1 已满 100%,这是什么问题?如何修复?

我在 EC2 上运行 Linux 实例(我安装了 MongoDB 和 node.js)并且出现此错误:

Cannot write: No space left on device

我想我已经找到这个文件了,这里是 df 输出

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvda1             1032088   1032088         0 100% /

问题是,我不知道这个文件是什么,甚至不知道这个文件是否有问题。

所以我的问题是:如何修复“设备上没有剩余空间”错误?

答案1

该文件/是您的根目录。如果它是您在 中看到的唯一文件系统df,那么它就是一切。您有一个 1GB 的文件系统,并且它已 100% 满了。您可以开始弄清楚它是如何使用的,如下所示:

sudo du -x / | sort -n | tail -40

然后,您可以/用占用空间最多的路径进行替换。(由于 ,它们将位于末尾sort。该命令可能需要一段时间。)

答案2

我知道我在这个帖子里回复了将近 5 年,但它可能会对某些人有所帮助,我遇到了同样的问题,我有一个 m4.xlarge 实例 df -h 被告知 /dev/xvda1 已满,- 100%

Filesystem      Size  Used Avail Use% Mounted on
udev            7.9G     0  7.9G   0% /dev
tmpfs           1.6G  177M  1.4G  12% /run
/dev/xvda1      7.7G  7.7G     0 100% /
tmpfs           7.9G     0  7.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           7.9G     0  7.9G   0% /sys/fs/cgroup
tmpfs           1.6G     0  1.6G   0% /run/user/1000

我尝试解决它,步骤如下

sudo find / -type f -printf '%12s %p\n' 2>/dev/null|awk '{if($1>999999999)print $0;}'

帮助我知道是 docker 容器占用了我所有的空间,所以我将所有容器推送到我的 docker 注册表,然后执行 sudo rm -rf /var/lib/docker/ 它清理了我的空间:) 希望它能对某人有所帮助:)

答案3

如果您正在运行 EBS 启动实例(推荐),那么您可以使用我在本文中描述的过程增加根(/)卷的大小:

调整正在运行的 EBS Boot EC2 实例上的根磁盘大小
http://alestic.com/2010/02/ec2-resize-running-ebs-root

如果您正在运行实例存储实例(不推荐),则无法更改根磁盘的大小。您必须删除文件或将文件移动到临时存储(例如 /mnt)或附加 EBS 卷并将文件移动到那里。

这是我写的一篇文章,介绍了如何将 MySQL 数据库从根磁盘移动到 EBS 卷:

使用 EBS 在 Amazon EC2 上运行 MySQL
http://aws.amazon.com/articles/1663

...并考虑迁移到 EBS 启动实例。有许多原因让您日后会感谢自己。

答案4

保罗对我来说是正确的,但当我试图跑的时候

sudo apt autoremove

它回应说:

Reading package lists... Error!
E: Write error - write (28: No space left on device)
E: IO Error saving source cache
E: The package lists or status file could not be parsed or opened.

首先,我必须跑

sudo apt-get clean

这样就清理出了足够的空间让我可以运行“sudo apt autoremove”,并且使 /dev/xvda1 上的空间从 100% 降至 28%。

相关内容