Linux

Linux + 如何清理 /boot 並只保留目前核心版本文件

  • July 19, 2016

在**/boot**我們有以下文件(red-hat Linux 6.6 版)

cd /boot
# ls -ltr

 drwx------ 2 root root    12288 Oct 15  2015 lost+found
-rwxr-xr-x 1 root root  4152624 Oct 15  2015 vmlinuz-2.6.32-504.30.3.el6.x86_64
-rw------- 1 root root  6084011 Oct 15  2015 initrd-2.6.32- 504.30.3.el6.x86_64kdump.img
 drwxr-xr-x 3 root root     1024 Oct 15  2015 efi
-rw-r--r-- 1 root root   106371 Oct 15  2015 config-2.6.32-504.30.3.el6.x86_64
-rw-r--r-- 1 root root  2546171 Oct 15  2015 System.map-2.6.32-504.30.3.el6.x86_64
-rw-r--r-- 1 root root   200246 Oct 15  2015 symvers-2.6.32-504.30.3.el6.x86_64.gz
-rw------- 1 root root 19360700 Oct 15  2015 initramfs-2.6.32-504.30.3.el6.x86_64.img
-rwxr-xr-x 1 root root  4222736 Nov 23  2015 vmlinuz-2.6.32-573.12.1.el6.x86_64
-rw-r--r-- 1 root root   107139 Nov 23  2015 config-2.6.32-573.12.1.el6.x86_64
-rw-r--r-- 1 root root  2585672 Nov 23  2015 System.map-2.6.32-573.12.1.el6.x86_64
-rw-r--r-- 1 root root   206008 Nov 23  2015 symvers-2.6.32-573.12.1.el6.x86_64.gz
-rw------- 1 root root 24340354 Jul 16 03:20 initramfs-2.6.32-573.12.1.el6.x86_64.img
 drwxr-xr-x 2 root root     1024 Jul 16 03:20 grub

因為**/boot**的大小非常小,(90M 大小

我們要從**/boot中刪除以前的核心,包括與此核心相關的所有其他文件**

目前執行的核心版本

# uname -r
2.6.32-573.12.1.el6.x86_64

所以現在我想擷取所有與目前核心無關的文件,並且可以從**/boot中刪除**

egrep -v 將完成這項工作

 # ls -ltr | egrep -v "2.6.32-573.12.1|lost\+found|grub|efi"

 -rwxr-xr-x 1 root root  4152624 Oct 15  2015 vmlinuz-2.6.32-504.30.3.el6.x86_64
 -rw------- 1 root root  6084011 Oct 15  2015 initrd-2.6.32-504.30.3.el6.x86_64kdump.img
 -rw-r--r-- 1 root root   106371 Oct 15  2015 config-2.6.32-504.30.3.el6.x86_64
 -rw-r--r-- 1 root root  2546171 Oct 15  2015 System.map-2.6.32-504.30.3.el6.x86_64
 -rw-r--r-- 1 root root   200246 Oct 15  2015 symvers-2.6.32-504.30.3.el6.x86_64.gz
 -rw------- 1 root root 19360700 Oct 15  2015 initramfs-2.6.32-504.30.3.el6.x86_64.img

 # rpm -qa | grep "2.6.32-504.30.3"
 kernel-2.6.32-504.30.3.el6.x86_64

所以我的計劃是執行以下操作

  1. 刪除 previos 核心
rpm –e  kernel-2.6.32-504.30.3.el6.x86_64
  1. 從/boot中刪除以下文件
rm config-2.6.32-504.30.3.el6.x86_64 
rm System.map-2.6.32-504.30.3.el6.x86_64
rm symvers-2.6.32-504.30.3.el6.x86_64.gz
rm initramfs-2.6.32-504.30.3.el6.x86_64.img

我的問題:

我的計劃有風險嗎?,或者我可以確定我的程序是安全的?

以前的答案應該可以,但我想我會提到’Yum-utils’可以讓這更簡單

  1. 檢查安裝了哪些核心:rpm -q kernel
  2. 安裝 yum 工具:yum install yum-utils
  3. 包清理,其中 count 是您要保留的核心數:package-cleanup --oldkernels --count=2

我認為你的計劃過於復雜。

無論如何,您建議在步驟 2 中刪除的文件可能都歸相關核心包所有。在我的測試 RHEL 6 機器上:

$ rpm -qf /boot/initramfs-2.6.32-573.18.1.el6.x86_64.img kernel-2.6.32-573.18.1.el6.x86_64

等等

所以第 1 步應該刪除所有內容。至於刪除什麼,rpm -qa kernel\*會列出所有安裝的核心包。簡單地找出不匹配的內容uname -r。注意這可能會如何影響您的 GRUB 配置,但如果您留在 RHEL 框架中,那麼 GRUB 應該只引用已安裝的核心。

引用自:https://serverfault.com/questions/790677