根驱动器磁盘空间不足。 我怎样才能腾出空间?

我正在使用Ubuntu 11.04,我想在我的根目录中释放一些空间,这个空间已经过载了。 我特别想要更改用于安装应用程序的路径(它们直接安装到根驱动器)。

另一个考虑因素是我正在研究MySQL数据库服务器。 服务器安装在根目录本身,所以我不想冒失去任何数据的风险。

请给我一些提示,以帮助解决这个问题。

最近我遇到了类似的情况。 安装了太多应用程序,并且他们开始使用我的根安装空间。 我列出了我遵循的几个步骤,希望你也可以使用相同的步骤。

  1. 清理apt-get缓存。 以下命令将从apt-get cache目录中删除所有下载的deb文件。

    运行此命令: sudo apt-get clean

  2. 将/ home挂载点移动到不同的驱动器 。 以前,我的主文件夹位于根驱动器上。 所以我将我的主文件夹移动到单独的驱动器。 这有助于我从root mount释放大量压力,因为大多数应用程序将其数据存储在/ home / user_name /文件夹中。 阅读如何将主文件夹移动到单独的驱动器。

  3. 增加root分区的大小我知道这是非常明显的答案。 但请相信我,我们的数据需要随时变化。 我认为20 GB / root mount就足够了,但是一年后我重新调整了根安装大小并增加到50 GB。

通过使用以下命令删除旧标头和图像,我成功清除了3.5 GB:

 dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge 

您可以检查执行命令的第一部分将清除哪些包:

 dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' 

参考

使用dpkg-query查找最大的包并删除不再需要的包。

dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", $2/(1024), $1}'

通过http://ubuntulife.wordpress.com/2009/11/13/tip-como-saber-que-paquete-de-software-esta-usando-mas-espacio/

 sudo apt-get autoclean // clean /var/cache/apt/archives folder witch save packages while install. sudo apt-get autoremove //this command remove unused lib packages. sudo shutdown -rf // it will restart your pc immediately and check filesystem in next boot. 

删除旧的内核版本(正如homebrand已经建议的那样 )可以释放大量的空间,如果你还没有这样做的话。

有许多方法可以删除旧的内核版本,并且可以在下面链接的问题的答案中找到一系列不同的选项:

如何删除旧内核版本以清理启动菜单?

我首选的方法主要是从penreturns得到的答案,它被分解为相当简单易懂的步骤:

打开终端并检查当前内核:

uname -r

不要删除这个内核!

接下来,键入以下命令以查看/列出系统上所有已安装的内核。

dpkg –list | grep linux-image

找到低于当前内核的所有内核。 当您知道要删除的内核时,请在下面继续删除它。

运行以下命令以删除您选择的内核。

sudo apt-get purge linux-image-xxxx-generic

当你完成清除时,答案会说’update-grub2’,现在可能已经过时了: sudo update-grub应该足以满足Ubuntu 14.04以上的要求。 然后他们也会说“重新启动你的系统”(这似乎是为了让你看到清理过的启动菜单)所以在这种情况下没有必要。

grub引导程序菜单用于显示主页面上的所有旧内核版本,但它们现在放在子菜单后面。 它更整洁,但Ubuntu / Linux的新手可能不知道他们在那里占用空间。

正如所建议的那样,不要删除当前内核,也建议保留以前的内核版本,以防万一你需要回滚到那个内核版本。

有更快的方法来做到这一点,但我更喜欢这种方法的简单性,主要是因为我可以理解沿途的每个命令:

“我使用的内核版本是什么?我有哪些内核版本?好的,清除那个版本。”

冲洗,重复,欣赏你已经释放的空间。

dpkg –list |的结果中复制要删除的特定旧内核的名称相当容易 grep linux-image为您提供终端,然后使用sudo apt-get purge并将复制的名称粘贴到其中。

删除3或4个较旧的内核通常会释放根驱动器中大约1 GB的空间。

按照Ubuntu社区文档的说明,我发现了一个庞大的垃圾文件 – 它看起来像是/var/log/syslog.1的备份,可能是某些东西向syslog注入了大量的输出……

找到它的命令是:

 sudo find / -size +1G 

然后,名为.Trash的文件夹中的任何大文件都可能很好删除…

当我需要在服务器上创建更多可用空间时,我使用此命令。 它找到大于50 MB的所有文件和“du -h”制作berret文件列表,并在管道制作列表numericcaly按文件大小排序后“排序-n”。

 find / -type f -size +50M -exec du -h {} \; | sort -n 

在Ubuntu中,每个文件夹都可以拥有自己的文件系统。 这意味着您可以将任何文件夹移动到其自己的分区,另一个磁盘甚至远程网络上。 这在主目录中特别受欢迎,因为这意味着您可以在不更改个人设置或丢失任何文件的情况下重新安装Ubuntu。 它在网络中也很受欢迎,用户应该可以登录到不同的计算机并仍然可以获取其个人设置和文件。 但它在很多不同的情况下都很有用,例如你的。

应用程序未安装到特定文件夹中,就像您似乎建议的那样。 应用程序的不同部分放在文件系统的不同部分。 主程序通常放在/ usr / bin中,而配置文件放在/ etc中。 在你的情况下,MySQL,数据库本身放在/ var中的某个地方。 我想/ var / mysql。

由于/ usr和/ var都是根文件系统中的目录,因此它们将使用根文件系统空间。 但正如我所说,你可以将它们移动到不同的文件系统。 对于MySQL,您可以配置存储数据库的位置。 例如,您可以轻松地将数据库移动到/home/username/.mysql/databases。

您无法更改程序包管理器安装应用程序的路径。 大多数应用程序文件都保存到/usr 。 如果要恢复根分区上的空间,将/usr移动到其他分区是一种可能的解决方案。

来自评论:

  • 复制时保留权限,即如果您不确定文件管理器将执行什么操作,请更好地使用命令行。

  • 正确的方法是将新文件系统挂载到/ usr或使用mount --bind 。 目前尚不清楚符号链接的效果如何。

如果你有很多单独的文件系统,下面的技巧可能会很方便:挂载/另一个时间,但这次是在/ mnt下。 现在,您可以完成所有搜索大型或多个文件的操作,而无需遍历错误的文件系统。

它还可以帮助您找到隐藏在另一个安装下的文件。

截至今天,最好使用新function(自14.04开始)删除旧的内核映像:

 sudo apt-get autoremove 

查看更多详细信息: 为什么Ubuntu不会自动删除旧内核?

如果你安装了mssql数据库服务器,那可能会占用你的内存。 跑

 $ sudo nscdu / 

检查哪些文件夹和文件占用了最大存储量。 mssql数据通常存储在

 /var/opt/mssql/backup/