无法释放磁盘空间

无法释放磁盘空间

我使用 Kazam 录制了一段 12 分钟的屏幕录像,不知怎么的,它竟然创建了一个 40 GB 的文件。这导致我的电脑(实际上是 Husky 机器人上的电脑)内存不足。我试图删除这些文件,但没有足够的内存来执行此操作。

我阅读了一些教程和 askubuntu 帖子,看到建议使用 Live USB 启动并以此方式删除文件。

我能够做到这一点,并且它sudo nautilus能够让我删除大型视频文件。

但是,计算机仍然没有足够的内存来运行机器人的启动脚本。我能够通过 SSH 进入并运行sudo tune2fs -m 0 /dev/sda6(如另一篇文章所建议的那样),并且我能够腾出足够的内存来完全启动计算机。然后我继续确保每个用户的所有垃圾文件夹都已完全清空,并手动执行了此操作rm -rf ~/.local/share/Trash/*

现在,df仍然/dev/sda6几乎已满:

eric@cpr-mic09:~$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
udev             4014820         0   4014820   0% /dev
tmpfs             807508      2892    804616   1% /run
/dev/sda6      114756748 109069280   5671084  96% /

我尝试du查看是否有任何明显较大的文件,但看起来没有什么异常。我还尝试lsof查找已删除的文件sudo lsof | grep deleted来源)。我甚至直接杀死了 lsof 返回的所有内容(来源):

$ kill -9 $(lsof -ti | awk "{print $2}")

到目前为止,我所做的一切都无法释放磁盘空间。我重启了好几次,但都无济于事。以下是一些相关的屏幕截图。我非常感谢任何建议。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

编辑:

使用率inode看起来还行。我检查了一下df -i/dev/sda6只使用了 16%。

我使用的其他来源:

答案1

我花了很多很多时间才解决这个问题。这是由很多问题造成的。

问题 1:使用 Live USB 删除文件

我曾使用 Live USB 启动并尝试删除文件。事后看来,最好直接通过 SSH 登录并手动删除rm -rf文件。

因为我使用 Live USB 启动来删除文件,所以文件没有被完全删除。相反,它们被移动到了一个文件/.Trash-0。这是因为:

每当您安装外部磁盘时,“根”目录中都会创建一个 trash-* 目录,如果从 GUI 中删除文件,文件将被移动到该目录,就像桌面上的垃圾箱一样。

这是为了提高外部驱动器的文件恢复能力。(例如 USB 驱动器或 HDD)

来源

总而言之,当使用 Live USB 删除文件时,文件实际上会被移入/.Trash-0而不是真正被删除。

问题 #2:trash-cli

实验室里的某个人添加了别名:

alias rm = 'trash-put`

trash-put是一款通过命令行将文件移至废纸篓文件夹的工具。与rm立即永久删除文件的 不同,trash-put它允许您从废纸篓文件夹恢复文件。

当该工具首次发布时,建议进行此更改。但是,作者现在强烈建议不要将此别名设为来源

rm如果有人已设置别名,则您可以通过执行\rm而不是 来避免使用别名rm

我是如何想到这个的

我试图用它lsof来查找某个进程保持打开状态且不允许删除的文件。但是,这并没有帮助我,因为该文件并没有保持打开状态。它只是放在另一个垃圾文件夹中。

我终于可以通过以下方式找到它的位置:

# Switch to the admin account
$ sudo su administrator

# Move into the root directory
$ cd /

# List the top ten largest files
$ sudo du . | sort -nr | head -n10

我这样做了,最大的文件./Trash-0后面跟着./.Trash-0/files

我可以通过执行以下操作来删除文件sudo \rm -rf ./.Trash-0(对于没有别名的人rm,您只需执行sudo rm -rf ./.Trash-0)。

总结

我从这次经历中得到了一些教训:

  • 进行备份
  • 不要使用 Kazam 进行屏幕录制
  • 经过 8 小时的努力解决问题后,你应该重新开始
  • 使用 Live USB 删除文件并不是最好的选择
  • 不要建造一个只有 128 GB 内存、价值 30 万美元的研究机器人
  • 为了给您提供足够的内存来执行基本功能,您可以使用保留的内存来执行基本功能。完成后,sudo tune2fs -m 0 /dev/sda6请确保恢复此内存。sudo tune2fs -m 5 /dev/sda6

相关内容