在最近的更新中我收到了这个:
Installing: kernel-default-2.6.37.6-0.11.1 [error]
Installation of kernel-default-2.6.37.6-0.11.1 failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM failed: installing package kernel-default-2.6.37.6-0.11.1.x86_64 needs 147MB on the / filesystem
Abort, retry, ignore? [a/r/i] (a): i
Installing: kernel-desktop-2.6.37.6-0.11.1 [error]
Installation of kernel-desktop-2.6.37.6-0.11.1 failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM failed: installing package kernel-desktop-2.6.37.6-0.11.1.x86_64 needs 148MB on the / filesystem
Abort, retry, ignore? [a/r/i] (a): i
Installing: kernel-source-2.6.37.6-0.11.1 [error]
Installation of kernel-source-2.6.37.6-0.11.1 failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM failed: installing package kernel-source-2.6.37.6-0.11.1.noarch needs 432MB on the / filesystem
我认为这意味着我的/
分区需要一些空间。所以我检查了尺寸/空间:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 25G 24G 208M 100% /
怎么/
长到这么大了!?这是常见现象吗?是否有快速释放空间的技巧?我认为其中有些东西我没有使用,并且在过去的一年里我已经能够轻松更新内核 - 所以有些东西正在积累。
我宁愿弄清楚我释放了什么(旧内核是否保留?),而不是重新分区我的整个驱动器以增长/
。
答案1
在进行以下任何更改之前先进行备份
如果没有备份或不愿意丢失所有数据,请勿继续操作。
跑步
du -sh /home
获取 /home 目录使用的大小。
如果足够大(>=4G),/home 是拥有自己的分区的良好候选者。
从 livecd 或 系统救援光盘
根据您的分区表类型(GPT 或 MBR),使用gdisk
、parted
或fdisk
。
使用您喜欢的 fstype创建新的分区格式
,例如
mkfs.ext4 /dev/sda2
mkdir /mnt/os
mkdir /mnt/home
mount /dev/sda1 /mnt/os # mount your OS, now all on /
mount /dev/sda2 /mnt/home # mount newly formatted partion
cp -a /mnt/os/home/* /mnt/home/ # copy current /home data to new partition
cd /mnt/os/home # remove old home data, leaving mountpoint
rm -rf .
现在您需要 cd 到 /mnt/os/etc 并编辑 fstab 并添加
/dev/sda2 /home ext4 defaults 0 1
有不止一种方法可以做到这一点。根据您的经验和技能,您可以通过 UUID 进行安装(首选,但不是必需的)。
可以对其他文件系统执行相同的操作,如果您安装了很多 google 工具或 eclipse,它们会安装在 /opt 中,并且它也是一个很好的候选者,可以放在自己的分区中。
如果您拥有许多分区,您将需要切换到 GPT 分区和/或 LVM。如果是这样,请重新提问
答案2
25GB 系统分区是大还是小取决于您安装了多少软件(这是单一用途服务器还是具有大量特定于域的软件的共享工作站?)以及潜伏着多少数据/var
(您是否该分区中有 200 个用户的邮件?)。
寻找累积残渣的好地方包括:
/tmp
:里面有旧的大文件吗?您可能想要创建/tmp
一个tmpfs
文件系统,以便它不消耗磁盘空间并在每次启动时重新启动。/var/tmp
: 里面有大文件吗?/var/log
:失控的服务是否产生了千兆字节的日志?/var/cache
:是否存在未正确清除的大型缓存?特别要检查您的发行版将下载的软件包放在哪里(例如/var/cache/apt/archives/
在基于 APT 的发行版上)。- 您是否安装了任何未使用的软件?这通常不多,但您也许能够找到系统上仍没有任何可执行文件使用的库版本。像
deborphan
(在 Debian 及其衍生版本上)这样的程序可以提供帮助。检查一下您是否也受到旧内核的困扰。
如果您找不到要删除的内容,您至少可以查看占用空间的内容du
或图形替代方案例如猴面包树(Gnome 实用程序)。
/usr
如果其他地方还有剩余空间,您可以将or /var
(或/opt
或,如果相关)的一些大块移动/srv
到不同的分区并创建符号链接。