如何安全释放RHEL6 / boot上的空间?


17

我正在yum updateRHEL 6上尝试做此操作,并且收到此错误消息

Transaction Check Error:
  installing package kernel-2.6.32-279.9.1.el6.x86_64 needs 10MB on the /boot filesystem
  installing package grub-1:0.97-77.el6.x86_64 needs 10MB on the /boot filesystem

Error Summary
-------------
Disk Requirements:
  At least 10MB more space needed on the /boot filesystem.

我的/ boot具有以下内容

# ls -lah /boot
total 74M
dr-xr-xr-x.  5 root root 2.0K Jun 10 08:05 .
drwxr-xr-x. 23 root root 4.0K Aug 27 03:08 ..
-rw-r--r--   1 root root  99K Apr 26 12:53 config-2.6.32-220.17.1.el6.x86_64
-rw-r--r--   1 root root  99K Feb 10  2012 config-2.6.32-220.7.1.el6.x86_64
-rw-r--r--.  1 root root  99K Nov  9  2011 config-2.6.32-220.el6.x86_64
drwxr-xr-x.  3 root root 1.0K Mar 29  2012 efi
drwxr-xr-x.  2 root root 1.0K Jun 10 07:53 grub
-rw-r--r--   1 root root  15M Jun 10 07:53 initramfs-2.6.32-220.17.1.el6.x86_64.img
-rw-r--r--   1 root root  15M Mar 29  2012 initramfs-2.6.32-220.7.1.el6.x86_64.img
-rw-r--r--.  1 root root  15M Mar 29  2012 initramfs-2.6.32-220.el6.x86_64.img
-rw-------   1 root root 3.4M Jun 10 08:06 initrd-2.6.32-220.17.1.el6.x86_64kdump.img
-rw-------   1 root root 3.5M Jun 10 07:53 initrd-2.6.32-220.7.1.el6.x86_64kdump.img
-rw-------   1 root root 3.4M Mar 29  2012 initrd-2.6.32-220.el6.x86_64kdump.img
drwx------.  2 root root  12K Mar 29  2012 lost+found
-rw-r--r--   1 root root 168K Apr 26 12:55 symvers-2.6.32-220.17.1.el6.x86_64.gz
-rw-r--r--   1 root root 168K Feb 10  2012 symvers-2.6.32-220.7.1.el6.x86_64.gz
-rw-r--r--.  1 root root 168K Nov  9  2011 symvers-2.6.32-220.el6.x86_64.gz
-rw-r--r--   1 root root 2.3M Apr 26 12:53 System.map-2.6.32-220.17.1.el6.x86_64
-rw-r--r--   1 root root 2.3M Feb 10  2012 System.map-2.6.32-220.7.1.el6.x86_64
-rw-r--r--.  1 root root 2.3M Nov  9  2011 System.map-2.6.32-220.el6.x86_64
-rwxr-xr-x   1 root root 3.8M Apr 26 12:53 vmlinuz-2.6.32-220.17.1.el6.x86_64
-rw-r--r--   1 root root  171 Apr 26 12:53 .vmlinuz-2.6.32-220.17.1.el6.x86_64.hmac
-rwxr-xr-x   1 root root 3.8M Feb 10  2012 vmlinuz-2.6.32-220.7.1.el6.x86_64
-rw-r--r--   1 root root  170 Feb 10  2012 .vmlinuz-2.6.32-220.7.1.el6.x86_64.hmac
-rwxr-xr-x.  1 root root 3.8M Nov  9  2011 vmlinuz-2.6.32-220.el6.x86_64
-rw-r--r--.  1 root root  166 Nov  9  2011 .vmlinuz-2.6.32-220.el6.x86_64.hmac

这是启动时的磁盘使用情况

# du -h
13K ./lost+found
282K    ./grub
247K    ./efi/EFI/redhat
249K    ./efi/EFI
251K    ./efi
75M .

问题是,当我在ISP处遇到这种问题时,我将其默认映像用于RHEL 6,该映像仅为/ boot分配100MB,显然这还不够。我该如何解决该问题,是否可以安全地删除上述文件中的一些似乎多次出现在磁盘上的文件?是否有某种无需重新映像机器即可展开/ boot的方法?

Answers:


16

以下命令将删除所有内核版本,您当前正在运行的版本除外

sudo yum remove `rpm -q kernel | grep -v 'uname -r'`

并按照⁠7.4节进行。配置Yum和Yum存储库

⁠installonly_limit=值

…其中,value是一个整数,表示可以对installonlypkgs指令中列出的任何单个软件包同时安装的最大版本数。installonlypkgs指令的缺省值包括几个不同的内核程序包,因此请注意,更改installonly_limit的值还将影响任何单个内核程序包的最大已安装版本数。/etc/yum.conf中列出的缺省值为installonly_limit = 3,不建议减小该值,尤其是在2以下。


4
也许只保留一个版本就可以备份...
EasyEcho 2012年

1
您还可以这样做:rpm -qa | grep -v `uname -r` | grep kernel- 获取未使用的内核列表吗?
2015年

比列出的@Pred更好的解决方案是使用package-cleanup。看到此答案的方法: serverfault.com/a/562201/98791
一个编码器

该命令是否还会删除当前内核(因为uname -r被'而不是'包围)?
再见

29

按照MadHatter的建议在这里。我将在此处将我的答案作为此处答案的附录发布,以便可以与此处建议的答案结合使用。

取自以下网站

## Install yum utils ##
yum install yum-utils

## Package-cleanup set count as how many old kernels you want left ##
package-cleanup --oldkernels --count=2

这将删除所有较旧的内核,并仅将两个最新的内核保留在centos 6.4上,这可能是您想要的,因为最新的内核包含错误修复,并且如果新的内核无法启动,您始终可以故障转移到较旧的内核。上面的命令意味着您不必去说rpm -e xyz其中xyz是您的特定内核,因为它会自动保留最新的内核。

请注意,上述命令只会清除现有的软件包,因此,如果您不想再次开始累积内核软件包,则必须编辑yum.conf。


商定的最佳解决方案,并package-cleanup在删除之前提示您将删除的内容
sMyles

8

如alexus所说,删除至少一个旧内核。

然后:

编辑/etc/yum.conf并指定要保留的内核版本数的限制。默认情况下,它设置为5,但是您的系统似乎只能处理两个:

installonly_limit=2

最后,向VPS提供商投诉该奇怪的模板。/boot在CentOS 6安装中,默认为500MB。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.