웹사이트 검색

CentOS 7에서 커널 5.0을 설치하거나 업그레이드하는 방법


어떤 사람들은 운영 체제 전체를 나타내기 위해 Linux라는 단어를 사용하지만, 엄밀히 말하면 Linux는 단지 커널일 뿐이라는 점을 기억하는 것이 중요합니다. 반면, 배포판은 다양한 응용 프로그램 도구 및 라이브러리를 사용하여 커널 위에 구축된 완전한 기능을 갖춘 시스템입니다.

정상적인 작업 중에 커널은 두 가지 중요한 작업을 수행합니다.

  1. 시스템에서 실행되는 하드웨어와 소프트웨어 간의 인터페이스 역할을 합니다.
  2. 시스템 리소스를 최대한 효율적으로 관리합니다.

이를 위해 커널은 내장된 드라이버나 나중에 모듈로 설치할 수 있는 드라이버를 통해 하드웨어와 통신합니다.

예를 들어, 컴퓨터에서 실행 중인 응용 프로그램이 무선 네트워크에 연결하려고 하면 해당 요청을 커널에 제출하고 커널은 올바른 드라이버를 사용하여 네트워크에 연결합니다.

권장 읽기: Ubuntu에서 커널을 업그레이드하는 방법

새로운 장치와 기술이 주기적으로 나오므로 이를 최대한 활용하려면 커널을 최신 상태로 유지하는 것이 중요합니다. 또한 커널을 업데이트하면 새로운 커널 기능을 활용하고 이전 버전에서 발견된 취약점으로부터 우리 자신을 보호하는 데 도움이 됩니다.

CentOS 7이나 RHEL 7Fedora와 같은 파생 제품 중 하나에서 커널을 업데이트할 준비가 되셨나요? 그렇다면 계속 읽어보세요!

1단계: 설치된 커널 버전 확인

배포판을 설치하면 특정 버전의 Linux 커널이 포함됩니다. 시스템에 설치된 현재 버전을 표시하려면 다음을 수행할 수 있습니다.

uname -sr

다음 이미지는 CentOS 7 서버에서 위 명령의 출력을 보여줍니다.

이제 https://www.kernel.org/로 이동하면 이 글을 쓰는 시점의 최신 커널 버전이 5.0임을 알 수 있습니다(다른 버전은 동일한 사이트에서 사용 가능).

이 새로운 커널 5.0 버전은 장기 릴리스이며 6년 동안 지원됩니다. 이전의 모든 Linux 커널 버전은 2년 동안만 지원되었습니다.

고려해야 할 한 가지 중요한 점은 커널 버전의 수명 주기입니다. 현재 사용 중인 버전이 수명 종료에 가까워지면 해당 날짜 이후에는 더 이상 버그 수정이 제공되지 않습니다. 자세한 내용은 커널 릴리스 페이지를 참조하세요.

2단계: CentOS 7에서 커널 업그레이드

대부분의 최신 배포판은 yum과 같은 패키지 관리 시스템과 공식적으로 지원되는 저장소를 사용하여 커널을 업그레이드하는 방법을 제공합니다.

중요: 사용자 정의 컴파일된 커널을 실행하려는 경우 소스에서 CentOS 7에서 Linux 커널을 컴파일하는 방법을 설명하는 문서를 읽어야 합니다.

그러나 이는 https://www.kernel.org/에서 사용 가능한 최신 버전이 아닌 배포판 리포지토리에서 사용 가능한 최신 버전으로만 업그레이드를 수행합니다. 불행하게도 Red Hat은 이전 옵션을 사용하여 커널을 업그레이드하는 것만 허용합니다.

Red Hat과 달리 CentOS에서는 커널을 최신 버전으로 업그레이드하는 타사 저장소인 ELRepo를 사용할 수 있습니다.

CentOS 7에서 ELRepo 저장소를 활성화하려면 다음을 수행하십시오.

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 

저장소가 활성화되면 다음 명령을 사용하여 사용 가능한 kernel.관련 패키지를 나열할 수 있습니다.


yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirror-hk.koddos.net
Available Packages
kernel-lt.x86_64                        4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-devel.x86_64                  4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-doc.noarch                    4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-headers.x86_64                4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-tools.x86_64                  4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-tools-libs.x86_64             4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-tools-libs-devel.x86_64       4.4.176-1.el7.elrepo        elrepo-kernel
kernel-ml.x86_64                        5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-devel.x86_64                  5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-doc.noarch                    5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-headers.x86_64                5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-tools.x86_64                  5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-tools-libs.x86_64             5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-tools-libs-devel.x86_64       5.0.0-1.el7.elrepo          elrepo-kernel
perf.x86_64                             5.0.0-1.el7.elrepo          elrepo-kernel
python-perf.x86_64                      5.0.0-1.el7.elrepo          elrepo-kernel

다음으로 최신 메인라인 안정 커널을 설치합니다.


yum --enablerepo=elrepo-kernel install kernel-ml

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: centos.mirror.net.in
 * elrepo: mirror-hk.koddos.net
 * elrepo-kernel: mirror-hk.koddos.net
 * epel: repos.del.extreme-ix.org
 * extras: centos.mirror.net.in
 * updates: centos.mirror.net.in
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 0:5.0.0-1.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================
 Package                Arch        Version                 Repository        Size
====================================================================================
Installing:
 kernel-ml              x86_64      5.0.0-1.el7.elrepo      elrepo-kernel     47 M

Transaction Summary
====================================================================================
Install  1 Package

Total download size: 47 M
Installed size: 215 M
Is this ok [y/d/N]: y
Downloading packages:
kernel-ml-5.0.0-1.el7.elrepo.x86_64.rpm                           |  47 MB  00:01:21     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : kernel-ml-5.0.0-1.el7.elrepo.x86_64                1/1 
  Verifying  : kernel-ml-5.0.0-1.el7.elrepo.x86_64                1/1 

Installed:
  kernel-ml.x86_64 0:5.0.0-1.el7.elrepo                                                                                                                                                                            

Complete!

마지막으로 컴퓨터를 재부팅하여 최신 커널을 적용한 다음 표시된 대로 메뉴에서 최신 커널을 선택하세요.

루트로 로그인하고 다음 명령을 실행하여 커널 버전을 확인하십시오.

uname -sr

3단계: GRUB에서 기본 커널 버전 설정

새로 설치된 버전을 기본 부팅 옵션으로 만들려면 다음과 같이 GRUB 구성을 수정해야 합니다.

/etc/default/grub 파일을 열고 편집하고 GRUB_DEFAULT=0을 설정합니다. 이는 GRUB 초기 화면의 첫 번째 커널이 기본값으로 사용됨을 의미합니다.

GRUB_TIMEOUT=5
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

그런 다음 다음 명령을 실행하여 커널 구성을 다시 생성합니다.


grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.0.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.0.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-4.20.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.20.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-4.19.11-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.19.11-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-4.19.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.19.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-957.1.3.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.1.3.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-1e2b46dbc0c04b05b592c837c366bb76
Found initrd image: /boot/initramfs-0-rescue-1e2b46dbc0c04b05b592c837c366bb76.img
done

재부팅하고 이제 최신 커널이 기본적으로 사용되고 있는지 확인합니다.

축하해요! CentOS 7에서 커널을 업그레이드했습니다!

요약

이 기사에서는 시스템에서 Linux 커널을 쉽게 업그레이드하는 방법을 설명했습니다. 소스에서 커널을 컴파일하는 것과 관련이 있기 때문에 우리가 다루지 않은 또 다른 방법이 있습니다. 이 방법은 전체 책을 읽을 가치가 있고 프로덕션 시스템에서는 권장되지 않습니다.

이는 최고의 학습 경험 중 하나이며 커널을 세밀하게 구성할 수 있지만 시스템을 사용할 수 없게 만들고 처음부터 다시 설치해야 할 수도 있습니다.

학습 경험으로 커널을 구축하는 데 여전히 관심이 있다면 커널 초보자 페이지에서 수행 방법에 대한 지침을 찾을 수 있습니다.

언제나 그렇듯이, 이 기사에 대해 질문이나 의견이 있으면 아래 양식을 자유롭게 사용하십시오.