CentOSでブートパーティションがほぼいっぱいです


22

/ bootパーティションがほぼいっぱい(85%)であるという警告が表示されました。私は何をすべきか?バックアップカーネルの1つを削除できますか?安全に行う方法

今私のパーティション

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             10321208    719856   9077064   8% /
tmpfs                  4015460         0   4015460   0% /dev/shm
/dev/sda1               101133     80781     15130  85% /boot
/dev/sda8            253782660  47668764 193222404  20% /home
/dev/sda7              1032088    535840    443820  55% /tmp
/dev/sda3             10321208   4823740   4973180  50% /usr
/dev/sda5             10321208   1807284   7989636  19% /var

私が持っているカーネル

root@server1 [/boot]# rpm -q kernel
kernel-2.6.32-358.el6.x86_64
kernel-2.6.32-358.18.1.el6.x86_64
kernel-2.6.32-358.23.2.el6.x86_64

/ Bootディレクトリ

root@server1 [/boot]# ls -la /boot
total 78741
dr-xr-xr-x.  5 root root     2048 Dec  3 05:33 ./
drwxr-xr-x. 23 root root     4096 Dec  4 05:46 ../
-rw-r--r--   1 root root   104112 Aug 28 12:43 config-2.6.32-358.18.1.el6.x86_64
-rw-r--r--   1 root root   104112 Oct 16 14:01 config-2.6.32-358.23.2.el6.x86_64
-rw-r--r--.  1 root root   104081 Feb 21  2013 config-2.6.32-358.el6.x86_64
drwxr-xr-x.  3 root root     1024 Sep 20 20:15 efi/
drwxr-xr-x.  2 root root     1024 Oct 21 15:06 grub/
-rw-r--r--   1 root root 16191847 Sep 20 20:21 initramfs-2.6.32-358.18.1.el6.x86_64.img
-rw-r--r--   1 root root 16261655 Oct 21 15:06 initramfs-2.6.32-358.23.2.el6.x86_64.img
-rw-r--r--.  1 root root 16187335 Sep 20 20:16 initramfs-2.6.32-358.el6.x86_64.img
-rw-------   1 root root  3698835 Sep 20 20:27 initrd-2.6.32-358.18.1.el6.x86_64kdump.img
-rw-------   1 root root  3983771 Dec  3 05:33 initrd-2.6.32-358.23.2.el6.x86_64kdump.img
-rw-------   1 root root  3695290 Sep 20 20:21 initrd-2.6.32-358.el6.x86_64kdump.img
drwx------.  2 root root    12288 Sep 20 20:13 lost+found/
-rw-r--r--   1 root root   185949 Aug 28 12:44 symvers-2.6.32-358.18.1.el6.x86_64.gz
-rw-r--r--   1 root root   185978 Oct 16 14:02 symvers-2.6.32-358.23.2.el6.x86_64.gz
-rw-r--r--.  1 root root   185734 Feb 21  2013 symvers-2.6.32-358.el6.x86_64.gz
-rw-r--r--   1 root root  2408641 Aug 28 12:43 System.map-2.6.32-358.18.1.el6.x86_64
-rw-r--r--   1 root root  2408974 Oct 16 14:01 System.map-2.6.32-358.23.2.el6.x86_64
-rw-r--r--.  1 root root  2407466 Feb 21  2013 System.map-2.6.32-358.el6.x86_64
-rwxr-xr-x   1 root root  4046224 Aug 28 12:43 vmlinuz-2.6.32-358.18.1.el6.x86_64*
-rw-r--r--   1 root root      171 Aug 28 12:43 .vmlinuz-2.6.32-358.18.1.el6.x86_64.hmac
-rwxr-xr-x   1 root root  4047152 Oct 16 14:01 vmlinuz-2.6.32-358.23.2.el6.x86_64*
-rw-r--r--   1 root root      171 Oct 16 14:01 .vmlinuz-2.6.32-358.23.2.el6.x86_64.hmac
-rwxr-xr-x.  1 root root  4043888 Feb 21  2013 vmlinuz-2.6.32-358.el6.x86_64*
-rw-r--r--.  1 root root      166 Feb 21  2013 .vmlinuz-2.6.32-358.el6.x86_64.hmac

私が使用しているカーネル

root@server1 [/boot]# uname -a
Linux server1 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

4
なぜこれが重複としてマークされたのですか?他の質問は約でもありませんyum。私はそれが重複していることを疑いませんが、その特定の質問のことだけではありません。
ブラッチリー

回答:


47

/ bootをクリーンに保つために、システムの最後の2つのカーネルのみを保持するには、次の手順を実行します

1- /etc/yum.conf次のパラメーターを編集および設定します

installonly_limit=2

これにより、パッケージマネージャーはシステム上の最後の2つのカーネル(実行中のカーネルを含む)のみを保持します。

2-インストールyum-utils

yum install yum-utils

3-古いカーネルのクリーンアップを行います。

package-cleanup --oldkernels --count=2

できた これにより、古いカーネルが適切に消去され、次のアップグレードのために最後の2つだけが保持されます。

あなたが持っている特殊なケースvmlinuz-0-rescue-*や、initramfs-0-rescue-*あまりにも多くのディスクスペースを使用しているファイルについては、U&Lに関する次の質問をご覧ください。


ありがとうnwildner!今すぐできますか?それを行った後、システムを再起動する必要がありますか?すべてのデータをバックアップする必要がありますか?
テスター

はい、できます。念のため、/ bootのバックアップを作成することをお勧めします。現在実行している場合を除き、手順3で最も古いカーネルが消去されるため、再起動する必要はありません。最初のステップでは、この構成を永続的にします;)

これは常に十分ではありませんが。これらの手順を実行したところ、カーネルが2つしかなかったことがわかりました。問題は、5か月前の60MBの "initramfs-0-rescue"ファイルでした。それを削除し、すべてが大丈夫だった。
Codemonkey

1
やあ@Codemonkey。回答をレスキューファイルに関する詳細で更新しました...

10

以下を行うことにより、古いカーネルを安全に削除できます。

# Install the yum-utils if they aren't installed
yum install yum-utils
# Cleanup old kernels and don't keep more than 2
package-cleanup --oldkernels --count=2

必要に応じて、次の操作を行うことでこれを常に制限できます。 /etc/yum.conf

installonly_limit=2

ジョエル・デイビスの答えを見た後、私も彼に同意します。実際にそのすべてのスペースを使用しているものを確認してください。
sparticvs

彼を見lsてファイルを追加すると、カーネルあたり約25MBで、ほとんどがinitramfsにあります。
cjm

うん、initramfsファイルかもしれないと感じました。上記のクリーンアップでそれらも削除されるはずです。
sparticvs

@sparticvs、私-rw-r--r-- 1 root root 16191847 Sep 20 20:21 initramfs-2.6.32-358.18.1.el6.x86_64.img -rw-r--r-- 1 root root 16261655 Oct 21 15:06 initramfs-2.6.32-358.23.2.el6.x86_64.img -rw-r--r--. 1 root root 16187335 Sep 20 20:16 initramfs-2.6.32-358.el6.x86_64.imgは多くのスペースを使用することを確認しました。
テスター

@sparticvs、今すぐできますか?それを行った後、システムを再起動する必要がありますか?すべてのデータをバックアップする必要がありますか?
テスター

2

カーネルイメージは実際には非常に小さいです。

[root@ditirlns01 ~]# ls -lh /boot/vmlinuz-2.6.18-3*
-rw-r--r-- 1 root root 2.2M May  4  2012 /boot/vmlinuz-2.6.18-308.8.1.el5xen
-rw-r--r-- 1 root root 2.2M Jul 27 01:43 /boot/vmlinuz-2.6.18-348.16.1.el5xen
-rw-r--r-- 1 root root 2.2M Mar 22  2013 /boot/vmlinuz-2.6.18-348.4.1.el5xen

もちろん、カーネルパッケージには他にもありますが、/bootそれがあなたの関心事である部分です。

そのため、100MBの/bootパーティションでは、2〜3MBのカーネルを削除しても、それほど遠くに行くことはないでしょう。

100MBは、実際には通常、人々が必要とするよりもはるかに多くなっています。du -shそのマウントポイントで100 MBを使用することに近づいてはならないため、十分な呼び出しを行って、そのスペースを占有しているものを確認できます。

[root@ditirlns01 ~]# df -h /boot
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1             99M   34M   60M  37% /boot

3つのカーネルがインストールされています:

[root@ditirlns01 ~]# rpm -qa kernel*
kernel-xen-2.6.18-348.16.1.el5
kernel-xen-2.6.18-348.4.1.el5
kernel-headers-2.6.18-348.16.1.el5
kernel-xen-2.6.18-308.8.1.el5
[root@ditirlns01 ~]#

私は誰かが/boot一時的な移動としてファイルを置き、後でそれを元に戻すのを忘れたことに喜んで賭けます。


3
しかし、initramfsファイルがあります。これはカーネルファイルよりもはるかに大きいファイルです。@Don lsを見ると、14MBを使用しています。

ああ、私は今それを見ています。まあ、私は答えを残し、あなたの仲間に
賛成票を投じる

0

私は何をすべきか?

実行するuname -aと、現在実行中のバージョンが報告されます。

あなたの投稿によれば2.6.32-358.23.2.el6.x86_64、それがあなたの現在の実行バージョンであると思いますので、保存するのに十分なスペースがある他のパーティションに古いものをすべて移動します:

mkdir /root/oldkernels
mv   /boot/initramfs-2.6.32-358.18.1.el6.x86_64.img    /root/oldkernels

/boot/efi/EFI/centos/grub.cfgチェックしたいファイルは、その中のメニューコードを読むのに十分簡単です。一番上のファイルは、起動時に表示されるデフォルトのファイルで、レスキューファイルも探します。多数のものがリストされる可能性があります。ここでは、実際に実行しているバージョンを確認することもできます。

私は通常、最新のもの(上部)と救助(下部)を保持していgrub.cfgます。grub.cfg(efiフォルダーが表示されるので、あなたの場合)実際にあることを知っています/boot/efi/EFI/centos/grub.cfg。このファイルを直接編集するわけではありませんが、ブート時に使用されるのはこのgrub.cfgであるため、このファイルを見て、ブートされるファイルを確認します。

救助は通常、あなたが今実行していることができるものを前に多くのバージョンすることができ、システムのインストール、に戻って行くカーネルのバージョンです。長い目で見ればおそらく良いアイデアであるレスキューオプションの場合は、システムが少なくとも起動し、新しいカーネルが機能しなくなった場合にディスク上のファイルを編集できるように、信頼できる動作バージョンを指定するだけです。インストール後、起動しない、または動作しない。基本的に、grubメニューには少なくとも2つのブートオプション、最新のブートオプション、信頼できるバージョンのいずれかをフォールバックする必要があります。

/etc/default/grub.cfgこのファイルを編集および変更します。不要なものをコメントアウトするだけで、メニューを好きなように作成してから#grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

KDUMPが問題です

また、名前にkdumpinitrd-2.6.32-358.18.1.el6.x86_64kdump.img含まれるファイルからは、kdumpが有効になっているようです。使用しない限り、kdumpを無効にしてスペースを節約できます。また、システムクラッシュなどをデバッグしている場合を除き、ファイルは必要ないため削除できます。私はkdumpを使用せず、決して持っていませんが、インストール中にデフォルトで有効になり、デフォルトで/ bootフォルダーに保存すると思われます。100MBだけが悪い場合。 そのため、kdumpを変更して別の場所にダンプするか、または使用しない可能性が高いため、kdumpを無効にします。*kdump.img

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.