- 인쇄
- PDF
Ubuntu 22.04
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
네이버 클라우드 플랫폼 Ubuntu 22.04 서버의 커널 업데이트 방법을 설명합니다.
이 가이드는 네이버 클라우드 플랫폼에서 신규 생성한 서버를 기준으로 작성하였기 때문에 사용자 서버 환경과 차이가 있을 수 있습니다. 사용자 서버 환경은 보안 하드닝 작업이나 여러 설정 작업 등 다양한 이유로 커널 업데이트 작업 및 서버 재시작에 영향을 받을 수 있습니다. 따라서 다음 사항을 숙지하여 커널 업데이트를 수행해 주십시오.
- 실제 서버의 커널을 업데이트하기 전에 서버 이미지를 사용하여 복제 서버를 생성합니다. 생성한 복제 서버에서 커널 업데이트를 수행하고 정상적으로 재시작이 되는지 확인합니다. 재시작 후 운영 상태로 전환이 되면 서비스에 문제가 없는지 확인합니다. 충분히 검증한 후에 문제가 없을 경우에만 커널 업데이트를 수행해 주십시오.
- GPU 서버의 경우, 커널 버전에 맞는 GPU 드라이버가 설치되어 있어야만 정상적으로 동작합니다. 업데이트한 커널이 GPU 드라이버와 호환되지 않을 경우 GPU 서버가 정상 동작하지 않을 수 있습니다. 따라서 GPU 드라이버 호환성을 확인한 후 커널 업데이트를 수행해 주십시오. 관련 정보는 GPU 드라이버 가이드를 확인해 주십시오.
본 커널 업데이트 가이드는 이후로 정기 업데이트를 제공하지 않습니다. 따라서, 최신 정보를 확인하거나 다른 커널 버전을 설치할 경우, 해당 가이드를 참고하여 별도로 작업해 주시기 바랍니다.
가이드에 명시된 커널 버전은 하나의 예시이며, 필요에 따라 다른 커널 버전을 충분히 테스트한 후 설치해 주십시오.
- 사용자 서버 커널 업데이트는 전적으로 사용자의 책임 하에 수행되어야 하며, 커널 업데이트로 인해 발생하는 문제에 대해 네이버 클라우드 플랫폼에서 책임지지 않습니다.
- 커널 업데이트 및 재시작 중에는 서버의 정상적인 사용이 불가능할 수 있으며 이에 따른 복구는 지원하지 않습니다. 또한 커널 업데이트 실패 시 서버 복구를 지원하지 않습니다.
- 커널을 업데이트 전 서버 이미지를 통해 생성한 백업본은 백업이 필요 없을 때까지 보관해 주십시오.
- 이 가이드와 관련된 문제에 대해서는 별도 지원이 제공되지 않습니다.
업데이트 가능한 커널 버전 확인
Ubuntu 22.04 서버의 커널을 업데이트하는 방법은 다음과 같습니다.
기본적으로 NCP Repo인 http://repo.gov-ncloud.com
가 Base URL로 설정되어 있으며, 공인 IP를 보유하거나 NAT가 구성된 Private Subnet 환경에서는 NCP Repo 대신 외부 Public Mirror 사이트로 Repository를 변경할 수 있습니다.
NCP Repo는 외부 접속이 제한되는 VPC Private Subnet 등 사용자 환경을 지원하기 위해 네이버 클라우드 플랫폼에서 제공하는 리포지토리입니다.
NCP Repo는 연 4회만 동기화되므로, 최신 패치를 빠르게 적용하려면 외부 Public Mirror 사이트로 변경하는 것을 권장합니다. 자세한 내용은 Linux OS Repository 설정 점검 가이드를 참고해 주십시오.
- 커널 업데이트를 적용할 서버에 원격 접속해 주십시오.
- 서버에 적용할 커널 버전을 확인해 주십시오.
root@ubuntu2204:~# apt-cache search linux-image-5.15.0 | grep -E 'linux-image-5\.15\.0-1+.*generic' linux-image-5.15.0-100-generic - Signed kernel image generic linux-image-5.15.0-101-generic - Signed kernel image generic linux-image-5.15.0-102-generic - Signed kernel image generic linux-image-5.15.0-105-generic - Signed kernel image generic linux-image-5.15.0-106-generic - Signed kernel image generic linux-image-5.15.0-107-generic - Signed kernel image generic linux-image-5.15.0-112-generic - Signed kernel image generic linux-image-5.15.0-113-generic - Signed kernel image generic linux-image-5.15.0-116-generic - Signed kernel image generic linux-image-5.15.0-117-generic - Signed kernel image generic linux-image-5.15.0-118-generic - Signed kernel image generic linux-image-5.15.0-119-generic - Signed kernel image generic linux-image-5.15.0-121-generic - Signed kernel image generic linux-image-5.15.0-122-generic - Signed kernel image generic linux-image-5.15.0-124-generic - Signed kernel image generic
커널 업데이트
Ubuntu 22.04 서버의 커널을 업데이트하는 방법은 다음과 같습니다.
본 가이드에서는 Ubuntu 22.04 서버에서 커널 버전을 5.15.0-124-generic
로 업그레이드하는 예시를 제공합니다.
가이드를 참고하는 시점에 설치 가능한 커널 버전은 다를 수 있으니, 다른 버전도 충분히 테스트한 후 설치해 주십시오.
- 커널 업데이트를 적용할 서버에 원격 접속해 주십시오.
- 서버의 커널 버전을 확인해 주십시오.
root@ubuntu2204:~# uname -r 5.15.0-117-generic
- 서버에 연결된 리포지토리 정보를 확인해 주십시오.
root@ubuntu2204:~# grep ^deb /etc/apt/sources.list deb http://repo.gov-ncloud.com/ubuntu jammy main restricted deb http://repo.gov-ncloud.com/ubuntu jammy-updates main restricted deb http://repo.gov-ncloud.com/ubuntu jammy universe deb http://repo.gov-ncloud.com/ubuntu jammy-updates universe deb http://repo.gov-ncloud.com/ubuntu jammy multiverse deb http://repo.gov-ncloud.com/ubuntu jammy-updates multiverse deb http://repo.gov-ncloud.com/ubuntu jammy-backports main restricted universe multiverse deb http://repo.gov-ncloud.com/ubuntu jammy-security main restricted deb http://repo.gov-ncloud.com/ubuntu jammy-security universe deb http://repo.gov-ncloud.com/ubuntu jammy-security multiverse
- 리포지토리에서 제공하는 커널 버전을 확인해 주십시오.
root@ubuntu2204:~# rm -rf /var/cache/apt/archives/* root@ubuntu2204:~# rm -rf /var/lib/apt/lists/* root@ubuntu2204:~# apt clean root@ubuntu2204:~# apt update Hit:1 http://repo.gov-ncloud.com/ubuntu jammy InRelease Get:2 http://repo.gov-ncloud.com/ubuntu jammy-updates InRelease [128 kB] Get:3 http://repo.gov-ncloud.com/ubuntu jammy-backports InRelease [127 kB] Get:4 http://repo.gov-ncloud.com/ubuntu jammy-security InRelease [129 kB] ... 생략 ... Fetched 13.8 MB in 3s (5,287 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 174 packages can be upgraded. Run 'apt list --upgradable' to see them. root@ubuntu2204:~# apt policy linux-image-5.15.0-124-generic linux-image-5.15.0-124-generic: Installed: (none) Candidate: 5.15.0-124.134 Version table: 5.15.0-124.134 500 500 http://repo.gov-ncloud.com/ubuntu jammy-updates/main amd64 Packages 500 http://repo.gov-ncloud.com/ubuntu jammy-security/main amd64 Packages
- 확인된 버전의 커널을 설치해 주십시오.
신규 설치 패키지, 업데이트 패키지, 삭제 패키지 목록을 상세하게 확인한 후 이상이 없을 경우Y
를 입력하여 설치를 완료해 주십시오.root@ubuntu2204:~# apt install linux-{image,headers}-5.15.0-124-generic Reading package lists... Done Building dependency tree... Done Reading state information... Done The following packages were automatically installed and are no longer required: eatmydata libeatmydata1 linux-headers-5.15.0-92 linux-headers-5.15.0-92-generic linux-image-5.15.0-92-generic linux-modules-5.15.0-92-generic linux-modules-extra-5.15.0-92-generic python-babel-localedata python3-babel python3-certifi python3-jinja2 python3-json-pointer python3-jsonpatch python3-jsonschema python3-markupsafe python3-pyrsistent python3-requests python3-tz python3-urllib3 Use 'apt autoremove' to remove them. The following additional packages will be installed: linux-headers-5.15.0-124 linux-modules-5.15.0-124-generic Suggested packages: fdutils linux-doc | linux-source-5.15.0 linux-tools linux-modules-extra-5.15.0-124-generic The following NEW packages will be installed: linux-headers-5.15.0-124 linux-headers-5.15.0-124-generic linux-image-5.15.0-124-generic linux-modules-5.15.0-124-generic 0 upgraded, 4 newly installed, 0 to remove and 174 not upgraded. Need to get 49.4 MB of archives. After this operation, 231 MB of additional disk space will be used. Do you want to continue? [Y/n] Y ... 생략 ... Found linux image: /boot/vmlinuz-5.15.0-124-generic Found initrd image: /boot/initrd.img-5.15.0-124-generic Found linux image: /boot/vmlinuz-5.15.0-117-generic Found initrd image: /boot/initrd.img-5.15.0-117-generic Found linux image: /boot/vmlinuz-5.15.0-94-generic Found initrd image: /boot/initrd.img-5.15.0-94-generic Found linux image: /boot/vmlinuz-5.15.0-92-generic Found initrd image: /boot/initrd.img-5.15.0-92-generic Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. done Scanning processes... Scanning linux images... No services need to be restarted. No containers need to be restarted. No user sessions are running outdated binaries. No VM guests are running outdated hypervisor (qemu) binaries on this host.
- 설치 완료된 후에 부팅 가능한 모든 커널 버전을 확인해 주십시오.
root@ubuntu2204:~# dpkg -l | grep linux-image | grep ii ii linux-image-5.15.0-117-generic 5.15.0-117.127 amd64 Signed kernel image generic ii linux-image-5.15.0-124-generic 5.15.0-124.134 amd64 Signed kernel image generic ii linux-image-5.15.0-92-generic 5.15.0-92.102 amd64 Signed kernel image generic ii linux-image-5.15.0-94-generic 5.15.0-94.104 amd64 Signed kernel image generic
- 부팅 시에 최신 커널 버전을 기본값으로 선택할 수 있도록 설정해 주십시오.
root@ubuntu2204:~# sed -i 's/GRUB_DEFAULT=.*/GRUB_DEFAULT=saved/g' /etc/default/grub root@ubuntu2204:~# grep "GRUB_DEFAULT" /etc/default/grub GRUB_DEFAULT=saved root@ubuntu2204:~# grub-set-default "Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-124-generic" root@ubuntu2204:~# grub-editenv list saved_entry=Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-124-generic root@ubuntu2204:~# update-grub Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/init-select.cfg' Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.15.0-124-generic Found initrd image: /boot/initrd.img-5.15.0-124-generic Found linux image: /boot/vmlinuz-5.15.0-117-generic Found initrd image: /boot/initrd.img-5.15.0-117-generic Found linux image: /boot/vmlinuz-5.15.0-94-generic Found initrd image: /boot/initrd.img-5.15.0-94-generic Found linux image: /boot/vmlinuz-5.15.0-92-generic Found initrd image: /boot/initrd.img-5.15.0-92-generic Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. done
- 최신 커널 버전을 활성화하기 위해서 서버를 재부팅해 주십시오.
root@ubuntu2204:~# reboot
참고서버 재부팅에 실패한 경우 커널 업데이트가 정상적으로 수행되지 않은 것입니다. 이 경우에는 커널 업데이트 원복을 참고하여 이전의 커널 버전으로 되돌려 주십시오.
- 서버에 다시 로그인하여 새로운 커널이 활성화 상태인지 확인해 주십시오.
root@ubuntu2204:~# uname -r 5.15.0-124-generic
참고업데이트한 커널이 정상 적용되었는지 확인하려면 커널 업데이트 확인을 참고하여 커널 설치 상황을 확인해 주십시오.
커널 업데이트 확인
업데이트 커널이 정상적으로 적용되었는지 확인하는 방법은 다음과 같습니다.
- 서버에 원격 접속해 주십시오.
- 커널 패키지가 설치되어 있는지 확인해 주십시오.
root@ubuntu2204:~# dpkg -l | grep linux-image-5.15.0-124-generic ii linux-image-5.15.0-124-generic 5.15.0-124.134 amd64 Signed kernel image generic
- /boot 디렉터리에 initramfs 파일과 vmlinuz 파일이 생성되어 있는지 확인해 주십시오.
root@ubuntu2204:~# ls -l /boot/initrd.img-5.15.0-124-generic -rw-r--r-- 1 root root 46553441 Oct 23 14:48 /boot/initrd.img-5.15.0-124-generic root@ubuntu2204:~# ls -l /boot/vmlinuz-5.15.0-124-generic -rw------- 1 root root 11700328 Sep 28 03:47 /boot/vmlinuz-5.15.0-124-generic
- grub.cfg 파일에 최신 커널 설정이 등록되어 있는지 확인해 주십시오.
root@ubuntu2204:~# awk -F"--class" '/menuentry/ && /with Linux/ {print $1}' /boot/grub/grub.cfg | awk '{print i++ " : " $5,$6,$7,$8}' | sed -e "s/'/ /g" 0 : 5.15.0-124-generic 1 : 5.15.0-124-generic (recovery mode) 2 : 5.15.0-117-generic 3 : 5.15.0-117-generic (recovery mode) 4 : 5.15.0-94-generic 5 : 5.15.0-94-generic (recovery mode) 6 : 5.15.0-92-generic 7 : 5.15.0-92-generic (recovery mode)
커널 업데이트 원복
커널 업데이트 후 서버 재시작이 정상적으로 수행되지 않을 경우, 업데이트 이전의 커널로 되돌려야 합니다. 설치된 커널 중 여러 버전으로 원복할 수 있으며, 이 가이드에서는 커널 업데이트하기 직전에 사용한 커널 버전으로 원복하는 방법을 다루고 있습니다.
서버 재시작 문제를 해결하기 위해 Single mode에 진입하여 서버 복구를 시도할 수도 있습니다. Single mode 부팅 방법은 서버 복구 가이드를 참고해 주십시오.
네이버 클라우드 플랫폼 콘솔의 Region 메뉴와 Platform 메뉴에서 이용 중인 환경을 클릭해 주십시오.
Services > Compute > Server 메뉴를 차례대로 클릭해 주십시오.
Server 메뉴를 클릭해 주십시오.
서버 목록에서 복구할 서버를 선택한 후 [서버 접속 콘솔] 버튼을 선택하여 주십시오.
grub 부팅 화면에서 부팅 커널을 이전 버전으로 선택하여 재부팅해 주십시오.
Ubuntu 22.04 grub 부팅 화면
부팅 완료 후에 서버의 커널 버전을 확인해 주십시오.
root@ubuntu2204:~# uname -r 5.15.0-117-generic
현재 활성화된 커널 버전을 확인해 주십시오.
root@ubuntu2204:~# awk -F"--class" '/menuentry/ && /with Linux/ {print $1}' /boot/grub/grub.cfg | awk '{print i++ " : " $5,$6,$7,$8}' | sed -e "s/'/ /g" 0 : 5.15.0-124-generic 1 : 5.15.0-124-generic (recovery mode) 2 : 5.15.0-117-generic 3 : 5.15.0-117-generic (recovery mode) 4 : 5.15.0-94-generic 5 : 5.15.0-94-generic (recovery mode) 6 : 5.15.0-92-generic 7 : 5.15.0-92-generic (recovery mode)
부팅 시 기본값 커널 버전을 이전 버전의 커널 버전으로 재설정해 주십시오.
root@ubuntu2204:~# sed -i 's/GRUB_DEFAULT=.*/GRUB_DEFAULT=saved/g' /etc/default/grub root@ubuntu2204:~# grep "GRUB_DEFAULT" /etc/default/grub GRUB_DEFAULT=saved root@ubuntu2204:~# grub-set-default "Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-117-generic" root@ubuntu2204:~# grub-editenv list saved_entry=Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-117-generic root@ubuntu2204:~# update-grub Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/init-select.cfg' Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.15.0-124-generic Found initrd image: /boot/initrd.img-5.15.0-124-generic Found linux image: /boot/vmlinuz-5.15.0-117-generic Found initrd image: /boot/initrd.img-5.15.0-117-generic Found linux image: /boot/vmlinuz-5.15.0-94-generic Found initrd image: /boot/initrd.img-5.15.0-94-generic Found linux image: /boot/vmlinuz-5.15.0-92-generic Found initrd image: /boot/initrd.img-5.15.0-92-generic Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. done
(선택사항) 변경된 커널 버전으로 정상 부팅되는지 확인하기 위해서 서버를 재부팅해 주십시오.
root@ubuntu2204:~# sync;reboot
(선택사항) 서버에 다시 로그인하여 부팅 여부 및 커널 버전을 확인해 주십시오.
root@ubuntu2204:~# uname -r 5.15.0-117-generic