现在,我安装的 Ubuntu 占用了超过 100 GB 的硬盘空间。每当我尝试时fslint
,fdupes
他们都会让Permission denied
我删除重复项。请大家帮帮我。
附加信息
输出df
:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 296G 191G 90G 68% /
udev 993M 4.0K 993M 1% /dev
tmpfs 401M 824K 401M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 1003M 552K 1002M 1% /run/shm
/home/zipro/.Private 296G 191G 90G 68% /home/zipro
有问题的文件大小为 174GB/var/log/uvcydnctrl-udev.log
答案1
第一步:找出你实际遇到的问题
当您的文件系统意外满时,有很多可能的原因。有关更多信息,请参阅 Eliah Kagan 的回答。在绝大多数情况下,应该很容易识别(并最终修复)真正的原因,因此无需重新格式化/重新安装。
因此,第一步是找出问题到底是什么,即缺失的空间去哪儿了。因此,首先执行
df -hl -x tmpfs -x devtmpfs
这将显示您机器中所有已使用磁盘分区的列表、它们的大小、它们的已满程度以及它们的挂载点。从此列表中,选择您认为已满的分区并记下其挂载点。在您的例子中,它是挂载在 的根文件系统/
。
现在我们分析一下这个文件系统中空间的使用情况。执行
sudo du -xhsc /* 2> /dev/null
(/
用上面标识的挂载点替换。)它需要 sudo,因为并非所有目录都可供您的用户读取。它可能需要一些时间(特别是在大型文件系统上),因为它需要访问其中的每个目录。
此命令的作用是显示给定目录内的每个文件和目录及其大小(包括子目录)。因此,从此列表中选择您认为大于其应有大小的文件和目录,然后在此目录上再次调用该命令。(即再次运行该命令,但使用先前列表中的大目录名称替换/
。)
例如,在你的情况下,很明显/var
是唯一的大目录,因此你需要执行
sudo du -xhsc /var/* 2> /dev/null
继续这些步骤,直到找到一个非常大的文件,或者找到一个包含大量文件并且它们加在一起占据了所有空间的目录。
对于你来说,下一步是执行
sudo du -xhsc /var/log/* 2> /dev/null
因为/var/log
太大了,而且它显示有一个名为uvcdynctrl-udev.log
174GB 的日志文件(这显然是不好的)。
第 2 步:确定文件存在的原因以及文件为何如此之大
现在我们需要弄清楚为什么这些被识别的物体会出现在那里,或者如果预计它们会出现在那里,为什么它们会这么大。
就你的情况而言,日志文件/var/log
没有什么可疑之处,但它的大小肯定是可疑的。幸运的是,在 Google 上搜索文件名时,第一个结果就是以下错误报告,这显然与我们遇到的问题相同: http://bugs.launchpad.net/ubuntu/+source/libwebcam/+bug/811604
第三步:解决问题
在这种情况下,一些与网络摄像头相关的日志文件似乎并不有趣,因此我们可以使用命令轻松地将其删除sudo rm /var/log/uvcdynctrl-udev.log
并释放所有空间。
不幸的是,错误报告仍处于打开状态,评论中没有解决方案或解决方法,因此您可能不得不暂时忍受此错误。您可以不时删除日志文件以释放一些空间。
答案2
问题就出在这个包上:uvcdynctrl-udev。
这是一个无用且有缺陷的程序。应将其从 debian 和 ubuntu 存储库中删除。不应安装它。此软件包不仅会创建巨大的日志文件,还会导致 Cheese 和其他网络摄像头应用程序崩溃或运行异常(无法使用 Cheese 或 Guvcview 以全分辨率捕获视频?删除此软件包,它就可以正常工作了!
这个错误已经存在好几年了,但 uvcdyn 的维护者...似乎并不关心它。
解决方案很简单:sudo apt-get remove uvcdynctrl-udev.
如果你想确保自己在做什么,请使用 Synaptic。搜索 buggie 包uvcdynctrl-udev和uvcdynctrl-udev-数据。标记它们以完全删除。您会注意到它不会影响其他程序,它们不是依赖项,因此您可以安全地将其删除。照做吧。
然后检查/var/log,搜索这个巨大的uvcdynctrl-udev.log以 root 身份删除它。(打开终端**
cd /var/log
sudo rm uvcdynctrl-udev.log
**)相信我,你不会错过这个包裹。
答案3
如果您复制并粘贴了系统文件,并手动复制它们,那么您应该提供更多信息,说明您复制和粘贴它们做了什么、在哪里粘贴了它们,以及任何您能记住的信息。即使对机器上的所有系统文件进行额外复制,也不太可能导致接近 100 GB 的磁盘使用量。Ubuntu 的安装需要的可用空间不到 5 GB,即使安装了许多软件包的 Ubuntu 系统也不太可能系统文件占用的空间比这个大小多几倍。你可能需要制作很多份副本才能占用这么多空间。或者你复制了文件除了系统文件之外?
如果你的 Ubuntu 系统已经自行扩展(从日志文件和更新‽)占用 100 GB 的空间(或 50 GB 的空间),那么系统文件(而不是您的文档、图片、视频、虚拟机等),一定出了问题。 最有可能的三个一般原因可能是:
- 这实际上并没有发生,你误解了系统提供的信息。(请注意我不是在告诉你你错了;如果你知道的话您怎么会有 100 GB 的系统文件,那么这个原因以及下面建议的另外两个原因都不正确。)
- 存在一个错误,它会影响您的系统,并导致已用空间和可用空间被错误报告。
- 有一个相当严重的错误,它会影响您的系统,并导致文件(可能是日志文件
/var/log
)以极高的速度无限制地增长。
作为谢尔盖有说,不加区别地删除所有具有相同内容的文件很可能会损坏您的系统。例如,有许多空白文件可能存在于您的系统中并用作锁或表示某种情况。您可能还拥有包含相同文件的单独副本的程序(当文件为两个程序提供相同的功能时,这些功能尚未被移至单独的库或包)。
您可以通过以下方式删除“重复”文件运行它root
。但你真的不应该这么做——它可能会严重损害你的 Ubuntu 系统。
您在评论中问道:
有没有办法命令 fdupes 删除所有重复项而无需询问或通知我?
fdupes -f
可能做你想做的事。参见手册fdupes
页。但你真的不应该这么做。
相反,你应该弄清楚到底发生了什么。如果你想让我们帮助你,我们一定会的。如果你扩展你的问题来解释你想要帮助找出占用空间的原因,那么你要么会得到提供该信息的答案,要么这个问题可能会被关闭,因为它是另一个提供有关如何找出答案的信息的问题的重复。(这两种情况都可能对你有利。)当然,这是假设你想让我们帮你找到你的系统占用这么多空间(或似乎占用这么多空间)的原因。
调查此问题的第一步是检查(并通过编辑您的问题发布)这些命令的输出,这些命令提供有关您拥有哪些磁盘以及磁盘上有多少可用空间的详细信息:
mount
df -h
sudo du -sh /*
您可以在终端窗口 (++) 中运行这些命令。Ctrl最后一个命令需要一段时间。您还可能会收到一些错误(即使您以 root 身份运行它),主要与用户主目录中的文件夹有关。这没什么可担心的。AltTPermission denied
.gvfs
答案4
进入Terminal
(快捷方式是Ctrl++ Alt)t并输入:
gksudo nautilus
这将以 root 权限打开 Nautilus。现在删除您的文件。
希望这对你有帮助!