use*_*055 13 filesystem duplicate-files maintenance log
现在我安装 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
Run Code Online (Sandbox Code Playgroud)
错误的文件是 174GB /var/log/uvcydnctrl-udev.log
Phi*_*ler 13
当您的文件系统意外满时,有很多可能的原因。有关更多信息,请参阅 Eliah Kagan 的回答。在绝大多数情况下,应该很容易确定(并最终修复)真正的原因,因此不需要重新格式化/重新安装。
所以第一步是找出问题到底是什么,即丢失的空间到哪里去了。所以首先执行
df -hl -x tmpfs -x devtmpfs
Run Code Online (Sandbox Code Playgroud)
这会显示您机器中所有已使用磁盘分区的列表、它们的大小、它们的容量以及它们的挂载点。从这个列表中,选择你认为太满的那个并记下它的挂载点。在您的情况下,它是安装在/.
现在我们分析这个文件系统中空间的使用位置。执行
sudo du -xhsc /* 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
(替换/为上面标识的挂载点。)它需要 sudo,因为并非所有目录对您的用户都是可读的。这可能需要一些时间(尤其是在大型文件系统上),因为它需要访问它们上的每个目录。
此命令的作用是向您显示给定目录中的每个文件和目录及其大小(包括子目录)。所以从这个列表中取出你认为比它应该大的那些,然后在这个目录上再次调用命令。(也就是说,再次运行该命令,但使用先前列表中的大目录名称替换/。)
例如,在您的情况下,很明显/var是唯一的大目录,因此您需要执行
sudo du -xhsc /var/* 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
继续执行这些步骤,直到您找到一个如此大的单个文件,或者您找到一个包含大量文件的目录,这些文件一起占用了所有空间。
在您的情况下,下一步是执行
sudo du -xhsc /var/log/* 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
因为/var/log太大了,这表明有一个名为uvcdynctrl-udev.log174GB 的日志文件(这显然很糟糕)。
现在我们需要找出被识别的人为什么在那里,或者他们为什么这么大,如果他们应该在那里的话。
在你的情况下,一个日志文件/var/log没有什么可疑的,但它的大小肯定是。幸运的是,仅使用文件名进行 Google 搜索,首先会显示以下错误报告,这显然与我们遇到的问题相同:http : //bugs.launchpad.net/ubuntu/+source/libwebcam/+bug /811604
在这种情况下,一些与网络摄像头相关的日志文件似乎并不有趣,因此我们可以使用命令轻松删除它sudo rm /var/log/uvcdynctrl-udev.log并释放所有空间。
不幸的是,错误报告仍然开放,评论中没有解决方案或变通方法,所以你现在可能不得不忍受这个错误。您可以不时删除日志文件以释放一些空间。
小智 10
问题是这个包:uvcdynctrl-udev。
这是一个无用且有缺陷的程序。它应该简单地从 debian 和 ubuntu 存储库中删除。不应该安装它。该软件包不仅会创建如此巨大的日志文件,还会导致 Cheese 和其他网络摄像头应用程序崩溃或工作非常糟糕(无法使用 Cheese 或 Guvcview 以全分辨率捕获视频?删除此软件包,它就会正常工作!
这个 bug 已经存在很多年了,uvcdyn 的 manteiner.... 似乎并不关心它。
解决方案很简单:sudo apt-get remove uvcdynctrl-udev.
如果您想确定自己在做什么,请使用 Synaptic。搜索 buggie 包uvcdynctrl-udev和uvcdynctrl-udev-data。标记为完全删除。您会注意到它不会影响其他程序,它们不是依赖项,因此您可以安全地删除它。做吧。
然后检查 /var/log ,搜索这个巨大的uvcdynctrl-udev.log,以 root 身份删除它。(打开终端**
cd /var/log
sudo rm uvcdynctrl-udev.log
Run Code Online (Sandbox Code Playgroud)
** ) 相信我,您不会错过这个包裹。
如果您复制和粘贴系统文件,手动复制它们,那么您应该提供有关复制和粘贴它们的操作、粘贴它们的位置以及您能记住的任何信息的更多信息。即使对机器上的所有系统文件进行额外的复制,也不太可能导致接近 100 GB 的磁盘使用量。Ubuntu 需要少于 5 GB 的可用空间才能安装,即使是安装了许多软件包的 Ubuntu 系统,其系统文件占用的空间也不可能超过该大小的数倍。您可能需要制作许多副本才能占用那么多空间。或者您可能复制了系统文件以外的文件?
如果您的 Ubuntu 系统自行扩展(从日志文件和更新?)到占用 100 GB 空间(或 50 GB 空间),仅在系统文件中(而不是您的文档、图片、视频、虚拟机和等等),有些事情很不对劲。造成这种情况的三个最可能的一般原因可能是:
/var/log)以极高的速度无限制地增长。正如谢尔盖已经表示,不加选择地删除那些具有系统相同的内容很有可能造成损害的所有文件。例如,您的系统中可能存在许多空白文件,它们被用作锁或表示某些条件。您可能还有包含相同文件的单独副本的程序(当文件为两个程序提供相同的功能时,尚未将其删除到单独的库或包中)。
您可以通过将其作为root. 但是你真的不应该这样做——它可能会对你的 Ubuntu 系统造成严重伤害。
你在评论中问:
反正有没有命令 fdupes 在不询问或通知我的情况下删除所有重复项?
fdupes -f 可能会做你想做的。请参阅该fdupes手册页。但你真的不应该这样做。
相反,你应该弄清楚发生了什么。如果您希望我们帮助您,我们当然会。如果您扩展您的问题以解释您需要帮助弄清楚什么占用了空间,那么您将获得提供该信息的答案,或者这可能会作为另一个问题的副本而关闭,该问题提供了有关如何找到该信息的信息。(任何一种情况都可能对您有利。)当然,这是假设您希望我们帮助您找到系统占用如此多空间(或看起来如此)的原因。
调查此问题的第一步是检查(并通过编辑您的问题发布)这些命令的输出,这些命令提供有关您拥有哪些磁盘以及它们上有多少可用空间的详细信息:
mount
df -h
sudo du -sh /*
Run Code Online (Sandbox Code Playgroud)
您可以运行在终端窗口(这些命令Ctrl+ Alt+ T)。最后一个命令需要一段时间。您也可能会遇到一些Permission denied错误(即使您以 root 身份运行它),主要与.gvfs用户主目录中的文件夹有关。这没什么好担心的。
小智 5
我有一个快速而肮脏的解决方案(肯定会阻止日志文件写入,但不能解决根本问题):
该日志文件由/lib/udev/uvcdynctrl写入
sudo cp /lib/udev/uvcdynctrl /lib/udev/uvcdynctrl_backupgksu gedit /lib/udev/uvcdynctrlsudo rm /var/log/uvcdynctrl-udev.log