리눅스(Linux)를 사용하다 보면 커널 버전을 확인하고 업그레이드해야 할 때가 있습니다. 최신 하드웨어 지원이 필요하거나, 보안 패치를 적용하거나, 새로운 기능을 사용하고 싶을 때 커널 업그레이드는 필수죠. 이번 포스트에서는 리눅스 커널(Kernel) 버전을 확인하는 방법부터 다양한 배포판에서 커널을 업그레이드하는 방법까지 함께 자세히 알아보겠습니다.

 

1. 리눅스 커널이란?

리눅스 커널은 운영체제의 핵심 부분으로, 하드웨어와 소프트웨어 사이의 중개자 역할을 합니다. 쉽게 말해 컴퓨터의 두뇌라고 할 수 있죠. 커널은 다음과 같은 중요한 역할을 합니다:

  • 하드웨어 자원 관리(CPU, 메모리, 디스크 등)
  • 프로그램과 하드웨어 간의 통신 중개
  • 시스템 보안 유지
  • 다양한 프로세스 관리

커널이 최신 버전일수록 새로운 하드웨어 지원, 성능 향상, 보안 강화 등의 이점을 얻을 수 있습니다.

 

2. 커널 버전 확인 방법

리눅스에서 커널 버전을 확인하는 방법은 여러 가지가 있습니다. 가장 많이 사용되는 방법을 살펴보겠습니다.

1. uname 명령어 사용하기

가장 간단하고 모든 리눅스 배포판에서 공통적으로 사용할 수 있는 방법은 uname 명령어를 사용하는 것입니다.

uname -r

실행 결과 예시:

5.15.0-76-generic

더 자세한 정보를 보려면 -a 옵션을 사용합니다:

uname -a

실행 결과 예시:

Linux ubuntu-server 5.15.0-76-generic #83-Ubuntu SMP Thu Jun 15 19:16:32 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

2. /proc/version 파일 확인하기

리눅스 시스템에서는 /proc 디렉토리에 시스템 정보가 저장됩니다. 커널 버전은 /proc/version 파일에서 확인할 수 있습니다.

cat /proc/version

실행 결과 예시:

Linux version 5.15.0-76-generic (buildd@lcy02-amd64-053) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #83-Ubuntu SMP Thu Jun 15 19:16:32 UTC 2023

3. hostnamectl 명령어 사용하기 (systemd 기반 시스템)

systemd를 사용하는 최신 리눅스 배포판에서는 hostnamectl 명령어로 커널 정보를 확인할 수 있습니다.

hostnamectl

실행 결과 예시:

   Static hostname: ubuntu-server
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 1234567890abcdef1234567890abcdef
           Boot ID: 1234567890abcdef1234567890abcdef
    Virtualization: kvm
  Operating System: Ubuntu 22.04.2 LTS
            Kernel: Linux 5.15.0-76-generic
      Architecture: x86-64

4. dmesg 명령어 사용하기

부팅 메시지에서도 커널 버전을 확인할 수 있습니다.

dmesg | grep -i 'linux version'

실행 결과 예시:

[    0.000000] Linux version 5.15.0-76-generic (buildd@lcy02-amd64-053) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #83-Ubuntu SMP Thu Jun 15 19:16:32 UTC 2023

 

3. 커널 버전 번호 이해하기

리눅스 커널 버전 번호는 일반적으로 X.Y.Z 형식으로 구성됩니다. 각 부분의 의미는 다음과 같습니다:

  • X: 주 버전(Major Version) – 커널의 주요 개정을 나타냅니다. 큰 변화가 있을 때 증가합니다.
  • Y: 부 버전(Minor Version) – 과거(2.6 이전)에는 짝수가 안정 버전, 홀수가 개발 버전을 의미했습니다. 현재 5.0 이후로는 이 규칙이 적용되지 않으며, 약 2-3개월마다 정기적으로 버전이 증가합니다.
  • Z: 패치 레벨(Patch Level) – 버그 수정이나 사소한 업데이트가 있을 때 증가합니다.

추가로 배포판별 접미사가 붙을 수 있습니다. 예를 들어 Ubuntu에서는 -generic과 같은 접미사가 붙습니다.

예시: 5.15.0-76-generic

  • 5: 주 버전(Major)
  • 15: 부 버전(Minor)
  • 0: 패치 레벨(Patch)
  • 76: Ubuntu에서 추가한 배포판 개정 번호
  • generic: Ubuntu의 일반 데스크톱 및 서버용 커널

 

4. 커널 업그레이드 방법

커널 업그레이드 방법은 리눅스 배포판마다 다릅니다. 가장 많이 사용되는 배포판의 업그레이드 방법을 알아보겠습니다.

1. Ubuntu/Debian 계열

Ubuntu나 Debian에서는 패키지 매니저를 통해 커널을 쉽게 업그레이드할 수 있습니다.

1. 시스템 업데이트 및 업그레이드

sudo apt update
sudo apt upgrade

이 명령은 패키지 목록을 업데이트하고, 새로운 커널 버전이 있다면 함께 업그레이드합니다.

2. 특정 커널 버전 설치하기 (HWE 커널)

Ubuntu LTS 버전에서는 HWE(Hardware Enablement) 커널을 설치하여 더 최신 버전의 커널을 사용할 수 있습니다.

sudo apt install --install-recommends linux-generic-hwe-22.04

(Ubuntu 22.04 기준)

3. Mainline 커널 설치하기

Ubuntu Mainline Kernel Installer를 사용하면 더 최신 버전의 커널을 쉽게 설치할 수 있습니다.

# PPA 추가
sudo add-apt-repository ppa:cappelikan/ppa
sudo apt update

# Mainline 설치
sudo apt install mainline

# GUI로 실행
mainline

2. Fedora/RHEL/CentOS 계열

1. 시스템 업데이트

# Fedora
sudo dnf upgrade

# RHEL/CentOS 7
sudo yum update

# RHEL/CentOS 8 이상
sudo dnf update

2. 특정 커널 패키지 설치하기 (Fedora)

# 사용 가능한 커널 패키지 확인
sudo dnf list available kernel

# 특정 커널 버전 설치
sudo dnf install kernel-5.18.17-200.fc36

3. ELRepo에서 최신 커널 설치하기 (RHEL/CentOS)

# ELRepo 저장소 추가 (RHEL/CentOS 7 기준)
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

# RHEL/CentOS 8 기준
# sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# sudo dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

# RHEL/CentOS 9 기준
# sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# sudo dnf install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm

# 최신 안정 커널(kernel-lt) 또는 메인라인 커널(kernel-ml) 설치
sudo yum --enablerepo=elrepo-kernel install kernel-ml  # RHEL/CentOS 7
# 또는 CentOS/RHEL 8 이상
# sudo dnf --enablerepo=elrepo-kernel install kernel-ml

3. Arch Linux

Arch Linux는 롤링 릴리스 모델을 사용하므로, 시스템 업데이트만으로 최신 커널을 얻을 수 있습니다.

sudo pacman -Syu

특정 커널 버전을 설치하려면:

# LTS 커널 설치
sudo pacman -S linux-lts

# 하드웨어 지원이 향상된 Zen 커널 설치
sudo pacman -S linux-zen

4. 소스에서 커널 컴파일하기

가장 최신 버전의 커널을 사용하거나, 특정 설정이 필요한 경우 소스에서 직접 컴파일할 수 있습니다. 이 방법은 리눅스 시스템에 대한 깊은 이해가 있는 고급 사용자에게만 권장됩니다. 잘못 컴파일하거나 설정하면 시스템이 부팅되지 않을 수 있으니 주의하세요. 가능하다면 중요한 데이터는 반드시 백업해두세요.

# 필요한 도구 설치 (Ubuntu/Debian 기준)
sudo apt install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

# 커널 소스 다운로드
git clone https://github.com/torvalds/linux.git
cd linux

# 현재 설정을 기반으로 구성 (선택 사항)
cp /boot/config-$(uname -r) .config
make oldconfig

# 또는 메뉴 기반 구성 도구 사용
make menuconfig

# 커널 컴파일 (코어 수에 따라 -j 옵션 조정)
make -j$(nproc)

# 모듈 설치
sudo make modules_install

# 커널 설치
sudo make install

# 초기 RAM 디스크 생성 (Ubuntu/Debian)
sudo update-initramfs -c -k [새 커널 버전]

# GRUB 업데이트
sudo update-grub

 

5. 업그레이드 후 확인 및 문제 해결

1. 새 커널 사용 확인하기

시스템을 재부팅한 후, 다음 명령으로 현재 사용 중인 커널 버전을 확인합니다:

uname -r

2. 이전 커널로 부팅하기 (문제 발생 시)

새 커널에 문제가 있다면, GRUB 메뉴에서 이전 커널을 선택하여 부팅할 수 있습니다:

  1. 시스템 재부팅
  2. GRUB 메뉴가 나타날 때 ‘Advanced options’ 선택
  3. 이전 커널 버전 선택
  4. 정상 부팅 후 문제가 있는 커널 제거 또는 원인 파악

3. 오래된 커널 제거하기

디스크 공간을 확보하기 위해 사용하지 않는 오래된 커널을 제거할 수 있습니다:

Ubuntu/Debian:

# 설치된 커널 확인
dpkg --list | grep linux-image

# 더 이상 필요 없는 커널 제거
sudo apt autoremove --purge

Fedora:

# 이전 커널 자동 제거 (기본적으로 3개 보존)
sudo dnf remove $(dnf repoquery --installonly --latest-limit=-3 -q)

4. 일반적인 문제 해결

그래픽 드라이버 문제

NVIDIA나 AMD 그래픽 카드를 사용하는 경우, 커널 업그레이드 후 드라이버를 재설치해야 할 수 있습니다:

NVIDIA 드라이버 재설치 (Ubuntu):

sudo apt install --reinstall nvidia-driver-XXX  # XXX는 버전 번호

AMD 드라이버 재설치 (Ubuntu):

sudo apt install --reinstall amdgpu-pro

DKMS 모듈 문제

VirtualBox, VMware 도구, 특정 WiFi 드라이버 등 외부 커널 모듈을 사용하는 경우 DKMS(Dynamic Kernel Module Support)를 사용하여 새 커널에 맞게 자동으로 모듈을 재빌드할 수 있습니다:

# DKMS 설치
sudo apt install dkms

# 특정 모듈 재빌드
sudo dkms autoinstall

 

6. 리눅스 커널 관련 Q&A

Q: 최신 커널이 항상 좋은가요?

A: 반드시 그렇지는 않습니다. 최신 커널은 새로운 하드웨어 지원과 기능을 제공하지만, 안정성이 떨어질 수 있습니다. 서버나 중요한 시스템에는 LTS(장기 지원) 커널이 더 적합할 수 있습니다. 기업 환경에서는 보통 안정성을 위해 최신 커널보다는 검증된 LTS 커널을 선호합니다.

Q: 커널 업그레이드 후 부팅이 안 되면 어떻게 하나요?

A: GRUB 메뉴에서 이전 커널을 선택하여 부팅한 후, 문제를 해결하거나 새 커널을 제거할 수 있습니다.

Q: 매번 커널을 업그레이드해야 하나요?

A: 꼭 그럴 필요는 없습니다. 보안 업데이트가 있거나, 새 하드웨어 지원이 필요하거나, 성능 향상이 필요할 때 업그레이드하는 것이 좋습니다. “고장 나지 않았다면 고치지 마라(If it ain’t broke, don’t fix it)”라는 원칙이 특히 서버 환경에서는 유효합니다.

Q: 특정 커널 버전이 필요한 이유는 무엇인가요?

A: 특정 하드웨어나 소프트웨어가 특정 커널 버전에서만 작동하거나, 이전 버전에 보안 취약점이 있거나, 최신 버전에 필요한 기능이 추가되었을 수 있습니다.


 

이상으로 리눅스 커널 버전을 확인하고 업그레이드하는 방법에 대해 자세히 알아봤습니다. 다양한 상황에 맞게 적절한 방법을 선택하여 시스템을 최신 상태로 유지하는 걸 추천드립니다. 아무래도 보안상의 이유가 크겠지요.:)

 

댓글 남기기