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

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

我正在尝试yum update在 RHEL 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?

答案1

以下命令将删除全部内核版本,除了对于您当前正在运行的那个:

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。

答案2

根据 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。

答案3

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

然后:

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

installonly_limit=2

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

相关内容