CentOS에서 부팅 파티션이 거의 가득 찼습니다


22

/ boot 파티션이 거의 꽉 찼다는 경고를 받았습니다 (85 %). 어떻게해야합니까? 백업 커널 중 하나를 제거 할 수 있습니까? 안전하게하는 방법?

내 파티션

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. 나는 그것이 특정 질문에 대한 것이 아니라 복제물임을 의심하지 않습니다.
Bratchley 2019

답변:


47

시스템에서 마지막 2 개의 커널 만 유지하려면 / boot를 깨끗하게 유지하려면 다음을 수행하십시오.

1- /etc/yum.conf다음 매개 변수를 편집 하고 설정하십시오.

installonly_limit=2

이렇게하면 패키지 관리자가 시스템에서 마지막 2 개의 커널 (실행중인 커널 포함) 만 유지합니다.

2-설치 yum-utils:

yum install yum-utils

3- 오래된 커널 정리 :

package-cleanup --oldkernels --count=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

Joel Davis의 대답을 본 후에 나는 그에게 동의 할 것입니다. 실제로 그 공간을 모두 사용하고 있는지 확인하십시오.
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호출 을 수행 하여 해당 마운트 지점에서 100MB를 사용하는 것에 가까워서는 안되기 때문에 모든 공간을 차지하는 것을 볼 수 있습니다.

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

세 개의 커널이 설치되어 있습니다.

[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가 문제입니다

이름에 kdump 가 있는 initrd-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.