CentOS 6 上的引導分區已滿
我在使用
yum update
where /boot 沒有足夠的可用空間來繼續時遇到問題。我已經閱讀了其他一些文章,我發現最有用的回复表明解決問題的最安全和最有效的方法是使用 yum-utils 並執行 package-cleanup。不幸的是,該解決方案並沒有糾正我遇到的問題。我有 /boot 作為一個 100mb 的分區,我讀過它有足夠的空間。我已經安裝
yum-utils
並且在執行時package-cleanup --oldkernels --count=1
結果是:
Not removing kernel 2.6.32-642.13.1.e16 because it is the running kernel No old kernels to remove
結果
rpm -qa | grep kernel
是:kernel-devel-2.6.32-642.13.1.el6.i686 kernel-firmware-2.6.32-696.1.1.el6.noarch dracut-kernel-004-409.el6_8.2.noarch kernel-headers-2.6.32-696.1.1.el6.i686 kernel-2.6.32-696.1.1.el6.i686 kernel-2.6.32-642.13.1.el6.i686 libreport-plugin-kerneloops-2.0.9-33.el6.centos.i686 kernel-devel-2.6.32-696.1.1.el6.i686 abrt-addon-kerneloops-2.0.8-43.el6.centos.i686
我最初的想法是刪除所有不是我的核心的東西,但我很猶豫,因為 package-cleanup 並沒有決定應該刪除舊核心。
這樣做的
ls -ls /boot
結果是:113 -rw-r--r--. 1 root root 112760 Jan 11 15:26 config-2.6.32-642.13.1.el6.i686 113 -rw-r--r--. 1 root root 112820 Apr 11 12:43 config-2.6.32-696.1.1.el6.i686 2 drwxr-xr-x. 3 root root 1024 Dec 20 2016 efi 2 drwxr-xr-x. 2 root root 1024 Apr 28 22:16 grub 23036 -rw-------. 1 root root 23494547 Jan 20 11:09 initramfs-2.6.32-642.13.1.el6.i686.img 23062 -rw-------. 1 root root 23521098 Apr 28 22:16 initramfs-2.6.32-696.1.1.el6.i686.img 4526 -rw-------. 1 root root 4613691 Apr 28 22:13 initrd-2.6.32-642.13.1.el6.i686kdump.img 13 drwx------. 2 root root 12288 Dec 20 2016 lost+found 209 -rw-r--r--. 1 root root 211920 Jan 11 15:26 symvers-2.6.32-642.13.1.el6.i686.gz 210 -rw-r--r--. 1 root root 211993 Apr 11 12:43 symvers-2.6.32-696.1.1.el6.i686.gz 2023 -rw-r--r--. 1 root root 2061183 Jan 11 15:26 System.map-2.6.32-642.13.1.el6.i686 2026 -rw-r--r--. 1 root root 2064145 Apr 11 12:43 System.map-2.6.32-696.1.1.el6.i686 4051 -rwxr-xr-x. 1 root root 4128992 Jan 11 15:26 vmlinuz-2.6.32-642.13.1.el6.i686 4058 -rwxr-xr-x. 1 root root 4136928 Apr 11 12:43 vmlinuz-2.6.32-696.1.1.el6.i686
不太熟悉 /boot 目錄中的內容和/或可以安全刪除的內容。希望這可以幫助確定可以安全刪除的內容,並可以在將來幫助其他人。
我已經編輯了 /etc/yum.conf
installonly_limit=2
的原始限制為 5,希望將來不會發生這種情況。
如果您將您的文件重新定位
/boot
到您的根文件系統中,您將獲得根文件系統所擁有的任何儲存量,並且不再受引導分區大小的限制。調整引導載入程序 GRUB 是一項微妙的操作。在接下來的過程中,我通過不進行任何不容易恢復的更改來降低風險。該過程涉及重新定位
/boot
然後更新引導載入程序。重定位 /boot
目前,
/boot
位於與根文件系統分開的分區上。重新定位它的一種安全方法是複製而不是移動文件:umount /boot mount /dev/sd?? /mnt cp -av /mnt/* /boot/
複製文件涉及
umount
-ing/boot
,將其掛載到其他位置,並將文件從掛載位置複製到/boot
.接下來,編輯
/etc/fstab
並註釋掉 mounts 的行/boot
。更新引導載入程序
在實際更新引導載入程序之前,最好進行測試以確保 GRUB 可以從重新定位的文件引導:
- 打開
/boot/grub/grub.conf
並記下用於引導 Cent OS 核心的kernel
和行。initrd
您將手動輸入這些以進行測試。- 重新啟動機器。
- 在 GRUB 螢幕上按“c”
- 在 GRUB 提示符處輸入
find /boot/grub/stage1
. 它應該列印出類似**(hd0,5)**的內容。這應該對應於根文件系統的磁碟和分區。- 輸入
root (hd0,5)
(或之前列印的任何命令)- 輸入
kernel
您寫下的行。就像是:kernel /boot/vmlinuz-2.6.18-238.19.1.el5.centos.plusPAE ro root=/dev/sda6
- 輸入
initrd
您寫下的行。就像是:initrd /boot/initrd-2.6.18-238.19.1.el5.centos.plusPAE.img
- 輸入
boot
以啟動核心。如果一切順利,系統應該啟動舊
/boot
分區不應該掛載,您可以使用mount
命令確認。假設它有效,使引導載入程序永久更改:
- 編輯
/boot/grub/grub.conf
和更新您在測試期間輸入的root
、kernel
和initrd
行。- 執行
grub
進入 GRUB 提示符。為了澄清,這是在 Cent OS 中完成的,而不是通過重新啟動。- 與測試類似,輸入
root (hd0,5)
(或任何應該的分區)- 執行
setup (hd0)
,其中hd0是 GRUB 安裝它的 MBR 階段的磁碟。可能是您正在使用磁碟 MBR 或分區的第一個扇區。不管它是什麼,這就是hd0應該的。在這些步驟之後,GRUB 將顯示一個菜單,該菜單將從您的新
/boot
. 請注意,您的引導分區仍然完好無損。你可以在這裡閱讀更多關於 GRUB 和 Cent OS 的資訊:https : //wiki.centos.org/HowTos/GrubInstallation 請特別注意註釋和警告部分。