CentOS 7에서 이전 커널 버전을 안전하게 삭제하려면 어떻게합니까?


15

CentOS 7에서 경쟁하는 커널로 인해 이상한 증상이 나타날 수 있습니다. 그러면 이전 커널을 안전하게 삭제하려면 어떻게해야합니까? 그리고 어떤 커널이 최신 커널인지 어떻게 알 수 있습니까?

아래는 문제의 서버에서이를 조사 할 때 얻은 터미널 출력입니다. 패키지 정리를 시도했지만 동일한 2 개의 커널이 남습니다.

이 학습서의 지시 사항에 따르면 다음 두 명령의 출력이 일치해야하지만 재부팅 후에도 일치하지 않는 것을 알 수 있습니다.

[root@localhost ~]# rpm -qa kernel |sort -V |tail -n 1
kernel-3.10.0-229.el7.x86_64
[root@localhost ~]# uname -r
3.10.0-229.14.1.el7.x86_64

나머지 명령은 두 개의 커널이 있음을 확인하고 이전 커널을 삭제하려는 시도를 보여줍니다.

[root@localhost ~]# cd /usr/src/kernels
[root@localhost kernels]# ls -al
total 16
drwxr-xr-x.  4 root root 4096 Oct  2 12:55 .
drwxr-xr-x.  4 root root 4096 Oct  2 13:15 ..
drwxr-xr-x. 22 root root 4096 Oct  2 12:55 3.10.0-229.14.1.el7.x86_64
drwxr-xr-x. 22 root root 4096 Oct  2 12:35 3.10.0-229.el7.x86_64
[root@localhost kernels]# rpm -q kernel
kernel-3.10.0-229.el7.x86_64
kernel-3.10.0-229.14.1.el7.x86_64
[root@localhost kernels]# package-cleanup --oldkernels=1
Loaded plugins: fastestmirror
Usage: 
    package-cleanup: helps find problems in the rpmdb of system and correct them

    usage: package-cleanup --problems or --leaves or --orphans or --oldkernels
Command line error: --oldkernels option does not take a value
[root@localhost kernels]# package-cleanup --oldkernels
Loaded plugins: fastestmirror
No old kernels to remove
[root@localhost kernels]# rpm -q kernel
kernel-3.10.0-229.el7.x86_64
kernel-3.10.0-229.14.1.el7.x86_64
[root@localhost kernels]# 

또한 열어서 /etc/yum.conf설정 installonly_limit=1했지만 결과적으로 yum update1이 허용 가능한 값 범위를 벗어 났다는 후속 명령 에서 오류가 발생 했습니다 installonly_limit.

나는 그것이 3.10.0-229.14.1.el7.x86_64최신 이라고 가정 하지만 어떻게 알 수 있습니까? 또한 부팅 옵션은 선택할 수있는 여러 커널을 제공하는 것으로 보입니다. 그리고 시스템이 옵션 목록의 첫 번째 커널에서 자동 부팅 될 때 혼란의 기회가 더 악화됩니다.

누군가 이것이 어떻게 작동하는지, 특히 오래된 커널을 안전하게 삭제하여 이상한 증상의 원인으로 커널 버전을 제거하는 방법을 설명해 주시겠습니까? 시스템을 다시 시작하는 방법에 관계없이 가장 최신 커널이 실행할 수있는 유일한 커널인지 확인하고 싶습니다.


지금 정식 답변을 작성할 수 없도록 문 밖으로 걸어가십시오. 나중에 다시 확인하려고합니다. yum-utils가이 작업을 수행했습니다 (여전히 확실하지 않은지). if-not-true-then-false.com/2012/…
0xSheepdog

@ 0xSheepdog 예, 비슷한 튜토리얼에서 해당 명령을 사용하고 있지만 CentOS 7 서버는 허용하지 않습니다 installonly_limit=1. 두 개의 커널 버전으로 인해 발생할 수있는 재미있는 증상이 나타나기 때문에 가능한 경우 하나의 버전 만 있거나 적어도 두 개의 버전 미만인 이유가 무엇인지에 대한 명확한 설명을 원합니다. 사실 불가능합니다.
CodeMed

2
여러 가지 이유로 최신 커널로 부팅하지 않을 수도 있습니다.
Jeff Schaller

답변:


23

package-cleanup --oldkernels --count=1 최신을 제외한 모든 커널을 삭제하십시오.


1
간단한 답변 주셔서 감사합니다 프랙탈 거북이. 또한 최소한 두 개의 최신 커널을 안전하게 유지하고 싶습니다. package-cleanup --oldkernels --count=2
rangsiman

1
나는 달린다 package-cleanup --oldkernels --count=1. 다시 부팅 한 후에도 여전히 두 개의 커널이 나타납니다. CentOS Linux (4.4.6-1.el7.elrepo.x86_64) 7 (Core)그리고 CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)하나만 유지하는 방법을 알고 있습니까?
Ron

누군가 @Ron의 질문에 대답 할 수 있습니까?
Alireza Mohamadi

1
참고로, 패키지 정리 는 다음의 일부입니다 :yum install yum-utils
TiloBunt

8

이 명령은 package-cleanup이전 커널을 제거합니다. --count=1최신을 유지하는 데 사용하십시오 . 이 프로그램은 현재 사용중인 커널 ( "커널 3.10.0-327.el7은 실행중인 커널이므로 제거하지 않음")을 절대 제거하지 않으므로 재부팅 및 다시 부팅 할 때까지 / boot에 두 개의 커널이 생길 수 있습니다. -명령을 실행하십시오.

그래서 명령은

package-cleanup --oldkernels --count=1 

맨 페이지에는 세 가지 옵션이 있습니다.

--oldkernels
          Remove old kernel and kernel-devel packages.
--count <COUNT>
          Number of duplicate/kernel packages to keep on the system (default 2)
--keepdevel
          Do not remove kernel-devel packages when removing kernels

2

yum upgrade대신 사용yum update

그런 다음 세 개의 커널 만 유지합니다. 당신이 사용 update하면 그것은 당신의/boot


-1

에 따라 :

rpm -q kernel설치된 커널을 보여주기 위해 실행

그런 다음 yum remove kernel <shown kernel from output above>커널을 제거하기 위해 실행

컴퓨터를 재부팅

편집 : 이것은 실제로 @Ron의 문제에서 작동하지만 elrepo 커널이 올바르게 실행되고 있는지 확인하십시오.


현재 커널을 제거하지 않으려면 어떻게해야합니까?
Jeff Schaller

@JeffSchaller에 대한 IDK 특정 명령 나는 현재 커널을 제거하지 않도록하기 위해 u sud를 사용하여 먼저 확인한 uname -r다음 사용하지 않는 커널을 삭제하여 해당 명령에서 표시합니다.
Surya Stefanus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.