RHEL 9 커널 패키지 설치 및 업데이트 문서 원본 보기
←
RHEL 9 커널 패키지 설치 및 업데이트
둘러보기로 이동
검색으로 이동
문서 편집 작업을 수행할 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 작업은 다음 중 하나의 권한을 가진 사용자에게 제한됩니다:
관리자
, 문서 편집자.
문서의 원본을 보거나 복사할 수 있습니다.
= RHEL 9 커널 패키지 설치 및 업데이트 = __TOC__ == 문서 개요 == 이 문서는 RHEL 9 계열 운영체제에서 커널 업데이트를 확인하고, 신규 커널을 설치하며, 오래된 커널을 안전하게 제거하는 방법을 설명한다. RHEL 계열 운영체제는 커널 업데이트 시 기존 커널을 즉시 덮어쓰지 않고 새로운 버전의 커널을 추가로 설치한다. 따라서 신규 커널에 문제가 발생할 경우 GRUB 메뉴에서 이전 정상 커널로 부팅할 수 있다. == 적용 대상 == * Red Hat Enterprise Linux 9 * Rocky Linux 9 * AlmaLinux 9 * 기타 RHEL 9 호환 배포판 == 작업 전 주의사항 == <div style="border:1px solid #d33; padding:10px; margin:10px 0; background:#fff5f5;"> '''주의:''' 커널 업데이트 후 신규 커널을 적용하려면 시스템 재부팅이 필요하다. 운영 서버에서는 서비스 중단 시간과 콘솔 접속 수단을 확보한 후 작업한다. </div> 작업 전 다음 항목을 확인한다. * 현재 실행 중인 커널 * 기본 부팅 커널 * 설치된 커널 버전 * 이전 정상 커널 존재 여부 * <code>/boot</code> 및 <code>/boot/efi</code> 여유 공간 * 외부 커널 모듈 또는 벤더 드라이버 사용 여부 * Secure Boot 사용 여부 * 시스템 재부팅 가능 여부 == 작업 전 기본 점검 == === 현재 실행 중인 커널 확인 === <syntaxhighlight lang="bash"> uname -r </syntaxhighlight> === 기본 부팅 커널 확인 === <syntaxhighlight lang="bash"> grubby --default-kernel </syntaxhighlight> === 설치된 커널 확인 === <syntaxhighlight lang="bash"> rpm -q kernel rpm -q kernel-core </syntaxhighlight> === 커널 관련 패키지 전체 확인 === <syntaxhighlight lang="bash"> rpm -qa 'kernel*' | sort </syntaxhighlight> === boot 영역 확인 === <syntaxhighlight lang="bash"> df -h /boot /boot/efi 2>/dev/null </syntaxhighlight> === 마운트 상태 확인 === <syntaxhighlight lang="bash"> findmnt /boot findmnt /boot/efi </syntaxhighlight> 별도의 <code>/boot</code> 파티션을 사용하는 환경에서 해당 파티션이 마운트되지 않은 상태로 커널을 설치하면 잘못된 파일시스템 위치에 커널 파일이 생성될 수 있다. === 부팅 커널 목록 확인 === <syntaxhighlight lang="bash"> grubby --info=ALL </syntaxhighlight> === 현재 부팅 로그의 오류 확인 === <syntaxhighlight lang="bash"> journalctl -k -b 0 -p err --no-pager </syntaxhighlight> == 커널 업데이트 확인 == === dnf check-update 사용 === 설치 가능한 커널 업데이트를 확인한다. <syntaxhighlight lang="bash"> dnf check-update kernel </syntaxhighlight> 커널 관련 패키지를 전체적으로 확인한다. <syntaxhighlight lang="bash"> dnf check-update 'kernel*' </syntaxhighlight> 시스템 전체 업데이트를 확인한다. <syntaxhighlight lang="bash"> dnf check-update </syntaxhighlight> 업데이트가 존재할 경우 출력 예: <syntaxhighlight lang="text"> kernel.x86_64 5.14.0-570.26.1.el9_6 baseos kernel-core.x86_64 5.14.0-570.26.1.el9_6 baseos kernel-modules.x86_64 5.14.0-570.26.1.el9_6 baseos </syntaxhighlight> === 종료 코드 확인 === <code>dnf check-update</code>는 업데이트가 존재하면 종료 코드 <code>100</code>을 반환할 수 있다. <syntaxhighlight lang="bash"> dnf check-update kernel echo $? </syntaxhighlight> 주요 종료 코드: {| class="wikitable" ! 종료 코드 ! 의미 |- | 0 | 업데이트할 패키지가 없음 |- | 100 | 업데이트 가능한 패키지가 있음 |- | 기타 | 저장소 또는 DNF 처리 오류 가능 |} <div style="border:1px solid #e6a700; padding:10px; margin:10px 0; background:#fffbea;"> '''참고:''' 종료 코드 100은 명령 실패가 아니라 업데이트 가능한 패키지가 있다는 의미다. </div> == 사용 가능한 커널 버전 확인 == === 기본 목록 확인 === <syntaxhighlight lang="bash"> dnf list kernel </syntaxhighlight> === 설치 가능한 모든 버전 확인 === <syntaxhighlight lang="bash"> dnf --showduplicates list kernel </syntaxhighlight> 출력 예: <syntaxhighlight lang="text"> Installed Packages kernel.x86_64 5.14.0-570.18.1.el9_6 @baseos Available Packages kernel.x86_64 5.14.0-570.26.1.el9_6 baseos </syntaxhighlight> === repoquery 사용 === <syntaxhighlight lang="bash"> dnf repoquery kernel </syntaxhighlight> 설치 가능한 패키지만 확인: <syntaxhighlight lang="bash"> dnf repoquery --available kernel </syntaxhighlight> 설치된 패키지만 확인: <syntaxhighlight lang="bash"> dnf repoquery --installed kernel </syntaxhighlight> <code>repoquery</code> 명령을 사용할 수 없는 경우 다음 패키지를 설치한다. <syntaxhighlight lang="bash"> dnf install -y dnf-plugins-core </syntaxhighlight> == 커널 업데이트 == === 커널 패키지만 업데이트 === <syntaxhighlight lang="bash"> dnf update kernel </syntaxhighlight> 다음과 같이 관련 커널 패키지가 의존성에 따라 함께 설치될 수 있다. * kernel * kernel-core * kernel-modules-core * kernel-modules * kernel-modules-extra === 커널 관련 패키지 전체 업데이트 === <syntaxhighlight lang="bash"> dnf update 'kernel*' </syntaxhighlight> 이 명령은 <code>kernel-tools</code>, <code>kernel-headers</code>, <code>kernel-devel</code> 등도 함께 업데이트할 수 있다. === 시스템 전체 업데이트 === <syntaxhighlight lang="bash"> dnf update </syntaxhighlight> RHEL 9에서는 다음 명령도 동일한 목적으로 사용할 수 있다. <syntaxhighlight lang="bash"> dnf upgrade </syntaxhighlight> 시스템 전체 업데이트는 커널뿐 아니라 보안 패치, 라이브러리 및 서비스 패키지도 함께 갱신한다. DNF는 선택한 패키지에 의존성이 있으면 관련 의존 패키지도 함께 업데이트한다. :contentReference[oaicite:1]{index=1} === 자동 승인 없이 업데이트 내용 확인 === 운영 환경에서는 먼저 변경 대상 패키지를 확인한 후 승인하는 것이 좋다. <syntaxhighlight lang="bash"> dnf update kernel </syntaxhighlight> 출력되는 다음 항목을 확인한다. * Installing * Upgrading * Removing * Transaction Summary * Download size * 설치 대상 커널 버전 확인 후 <code>y</code>를 입력하여 진행한다. === 자동 승인 방식 === <syntaxhighlight lang="bash"> dnf update -y kernel </syntaxhighlight> <div style="border:1px solid #e6a700; padding:10px; margin:10px 0; background:#fffbea;"> '''권장:''' 운영 서버에서는 먼저 <code>-y</code> 없이 트랜잭션 내용을 확인한 후 업데이트한다. </div> == 특정 커널 버전 설치 == === 정확한 패키지 버전 확인 === <syntaxhighlight lang="bash"> dnf --showduplicates list kernel kernel-core kernel-modules </syntaxhighlight> === 특정 버전 설치 === 다음은 예제이며 실제 저장소에 존재하는 버전을 입력해야 한다. <syntaxhighlight lang="bash"> dnf install \ kernel-5.14.0-570.26.1.el9_6 \ kernel-core-5.14.0-570.26.1.el9_6 \ kernel-modules-core-5.14.0-570.26.1.el9_6 \ kernel-modules-5.14.0-570.26.1.el9_6 </syntaxhighlight> 아키텍처까지 명시하는 경우: <syntaxhighlight lang="bash"> dnf install \ kernel-5.14.0-570.26.1.el9_6.x86_64 \ kernel-core-5.14.0-570.26.1.el9_6.x86_64 \ kernel-modules-core-5.14.0-570.26.1.el9_6.x86_64 \ kernel-modules-5.14.0-570.26.1.el9_6.x86_64 </syntaxhighlight> 설치 환경에 따라 <code>kernel-modules-extra</code> 패키지가 추가로 필요할 수 있다. <syntaxhighlight lang="bash"> dnf install kernel-modules-extra-5.14.0-570.26.1.el9_6.x86_64 </syntaxhighlight> === 설치 후 확인 === <syntaxhighlight lang="bash"> rpm -q kernel kernel-core kernel-modules-core kernel-modules </syntaxhighlight> <syntaxhighlight lang="bash"> grubby --info=ALL </syntaxhighlight> <syntaxhighlight lang="bash"> ls -lh /boot/vmlinuz-* /boot/initramfs-*.img </syntaxhighlight> == 현재 커널 패키지 재설치 == === 사용 목적 === 다음과 같은 상황에서 동일 버전의 커널 패키지를 재설치할 수 있다. * 커널 이미지 파일 손상 * 커널 모듈 파일 누락 * RPM 검증 오류 * 패키지 설치 중단 * initramfs 생성 과정 문제 === 작업 전 검증 === <syntaxhighlight lang="bash"> rpm -V kernel-core-$(uname -r) </syntaxhighlight> <syntaxhighlight lang="bash"> rpm -V kernel-modules-core-$(uname -r) </syntaxhighlight> <syntaxhighlight lang="bash"> rpm -V kernel-modules-$(uname -r) </syntaxhighlight> 출력이 없으면 RPM 관리 기준으로 변경 또는 누락된 파일이 없다는 의미다. === 재설치 === <div style="border:1px solid #d33; padding:10px; margin:10px 0; background:#fff5f5;"> '''주의:''' 현재 실행 중인 커널 패키지를 재설치하기 전에 이전 정상 커널과 콘솔 접속 수단을 확보한다. </div> <syntaxhighlight lang="bash"> dnf reinstall \ kernel-core-$(uname -r) \ kernel-modules-core-$(uname -r) \ kernel-modules-$(uname -r) </syntaxhighlight> 설치 구성에 따라 일부 패키지가 없을 수 있다. 패키지 존재 여부를 먼저 확인한다. <syntaxhighlight lang="bash"> rpm -q \ kernel-core-$(uname -r) \ kernel-modules-core-$(uname -r) \ kernel-modules-$(uname -r) </syntaxhighlight> === 재설치 후 확인 === <syntaxhighlight lang="bash"> rpm -V kernel-core-$(uname -r) ls -lh /boot/vmlinuz-$(uname -r) ls -lh /boot/initramfs-$(uname -r).img </syntaxhighlight> == 커널 설치 후 점검 == === 설치된 커널 확인 === <syntaxhighlight lang="bash"> rpm -q kernel-core </syntaxhighlight> 버전 순으로 확인: <syntaxhighlight lang="bash"> rpm -q kernel-core \ --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -V </syntaxhighlight> === 기본 부팅 커널 확인 === <syntaxhighlight lang="bash"> grubby --default-kernel </syntaxhighlight> === 전체 부팅 항목 확인 === <syntaxhighlight lang="bash"> grubby --info=ALL </syntaxhighlight> === 신규 커널 파일 확인 === <syntaxhighlight lang="bash"> ls -lh /boot/vmlinuz-* /boot/initramfs-*.img </syntaxhighlight> === boot 용량 재확인 === <syntaxhighlight lang="bash"> df -h /boot /boot/efi 2>/dev/null </syntaxhighlight> === DNF 작업 이력 확인 === <syntaxhighlight lang="bash"> dnf history </syntaxhighlight> 가장 최근 트랜잭션 상세 확인: <syntaxhighlight lang="bash"> dnf history info last </syntaxhighlight> 특정 트랜잭션 확인: <syntaxhighlight lang="bash"> dnf history info 트랜잭션번호 </syntaxhighlight> == 재부팅 전 확인 == === 실행 커널과 기본 커널 비교 === <syntaxhighlight lang="bash"> running_kernel=$(uname -r) default_kernel=$( basename "$(grubby --default-kernel)" | sed 's/^vmlinuz-//' ) printf '실행 중인 커널 : %s\n' "$running_kernel" printf '기본 부팅 커널 : %s\n' "$default_kernel" </syntaxhighlight> 신규 커널을 설치한 직후에는 두 값이 다른 것이 정상일 수 있다. === 실패한 서비스 확인 === <syntaxhighlight lang="bash"> systemctl --failed --no-pager </syntaxhighlight> === 파일시스템 상태 확인 === <syntaxhighlight lang="bash"> findmnt df -h </syntaxhighlight> === 커널 오류 확인 === <syntaxhighlight lang="bash"> journalctl -k -b 0 -p err --no-pager </syntaxhighlight> === 외부 모듈 확인 === 외부 커널 모듈 또는 DKMS 계열 모듈을 사용하는 경우 신규 커널과 호환되는지 확인한다. <syntaxhighlight lang="bash"> find /lib/modules/$(uname -r)/extra \ /lib/modules/$(uname -r)/updates \ -type f 2>/dev/null </syntaxhighlight> DKMS가 설치된 환경: <syntaxhighlight lang="bash"> dkms status </syntaxhighlight> <code>dkms</code>가 설치되지 않은 경우 명령이 없을 수 있다. == 시스템 재부팅 == === 재부팅 실행 === <syntaxhighlight lang="bash"> systemctl reboot </syntaxhighlight> 또는: <syntaxhighlight lang="bash"> reboot </syntaxhighlight> <div style="border:1px solid #d33; padding:10px; margin:10px 0; background:#fff5f5;"> '''주의:''' 원격 서버에서는 재부팅 전에 iLO, iDRAC, IPMI, VMware 콘솔 또는 하이퍼바이저 콘솔 등 대체 접속 수단을 확보한다. </div> == 재부팅 후 검증 == === 실행 중인 커널 확인 === <syntaxhighlight lang="bash"> uname -r </syntaxhighlight> === 기본 부팅 커널과 비교 === <syntaxhighlight lang="bash"> grubby --default-kernel </syntaxhighlight> <syntaxhighlight lang="bash"> basename "$(grubby --default-kernel)" | sed 's/^vmlinuz-//' </syntaxhighlight> === 시스템 부팅 상태 확인 === <syntaxhighlight lang="bash"> systemctl is-system-running </syntaxhighlight> 정상적인 경우: <syntaxhighlight lang="text"> running </syntaxhighlight> 일부 서비스가 실패한 경우: <syntaxhighlight lang="text"> degraded </syntaxhighlight> === 실패한 서비스 확인 === <syntaxhighlight lang="bash"> systemctl --failed --no-pager </syntaxhighlight> === 현재 부팅의 커널 오류 확인 === <syntaxhighlight lang="bash"> journalctl -k -b 0 -p err --no-pager </syntaxhighlight> 경고까지 포함: <syntaxhighlight lang="bash"> journalctl -k -b 0 -p warning --no-pager </syntaxhighlight> === 네트워크 확인 === <syntaxhighlight lang="bash"> ip -br link ip -br addr ip route </syntaxhighlight> === 스토리지 확인 === <syntaxhighlight lang="bash"> lsblk findmnt df -h </syntaxhighlight> === 주요 서비스 확인 === 예: <syntaxhighlight lang="bash"> systemctl status sshd --no-pager systemctl status NetworkManager --no-pager </syntaxhighlight> 서버 역할에 따라 nginx, MariaDB, rsyslog 등의 서비스를 추가로 확인한다. <syntaxhighlight lang="bash"> systemctl status nginx --no-pager systemctl status mariadb --no-pager systemctl status rsyslog --no-pager </syntaxhighlight> == 재부팅 필요 여부 확인 == === needs-restarting 사용 === 업데이트 후 이전 라이브러리 또는 실행 파일을 계속 사용하는 프로세스를 확인한다. <syntaxhighlight lang="bash"> dnf needs-restarting </syntaxhighlight> Red Hat 문서에서도 보안 업데이트 후 수동 재시작이 필요한 프로세스 확인 용도로 <code>dnf needs-restarting</code>을 안내한다. :contentReference[oaicite:2]{index=2} 시스템 재부팅 필요 여부 확인: <syntaxhighlight lang="bash"> dnf needs-restarting -r </syntaxhighlight> 설치된 명령이 없는 경우: <syntaxhighlight lang="bash"> dnf install -y dnf-utils </syntaxhighlight> 배포판 패키지 구성에 따라 다음 패키지로 제공될 수 있다. <syntaxhighlight lang="bash"> dnf install -y dnf-plugins-core </syntaxhighlight> === 실행 커널과 기본 커널 비교 === <syntaxhighlight lang="bash"> running_kernel=$(uname -r) default_kernel=$( basename "$(grubby --default-kernel)" | sed 's/^vmlinuz-//' ) if [[ "$running_kernel" == "$default_kernel" ]]; then echo "현재 기본 부팅 커널로 실행 중입니다." else echo "커널 변경 적용을 위한 재부팅이 필요할 수 있습니다." fi </syntaxhighlight> <div style="border:1px solid #e6a700; padding:10px; margin:10px 0; background:#fffbea;"> '''참고:''' Red Hat은 핵심 라이브러리와 서비스 업데이트가 모든 프로세스에 반영되도록 업데이트 후 시스템 재부팅을 권고한다. :contentReference[oaicite:3]{index=3} </div> == 설치된 커널 보관 개수 확인 == === installonly_limit 확인 === <syntaxhighlight lang="bash"> grep -R --line-number \ '^[[:space:]]*installonly_limit' \ /etc/dnf/dnf.conf \ /etc/yum.conf 2>/dev/null </syntaxhighlight> 일반적인 설정 위치: <syntaxhighlight lang="text"> /etc/dnf/dnf.conf </syntaxhighlight> 설정 예: <syntaxhighlight lang="ini"> [main] installonly_limit=3 </syntaxhighlight> 설정값은 커널과 같은 <code>installonly</code> 패키지를 몇 개까지 유지할지 결정한다. === 현재 설정 확인 === <syntaxhighlight lang="bash"> dnf config-manager --dump | grep '^installonly' </syntaxhighlight> 출력 예: <syntaxhighlight lang="text"> installonly_limit = 3 installonlypkgs = kernel, kernel-core, kernel-modules, ... </syntaxhighlight> === 설정 변경 전 백업 === <syntaxhighlight lang="bash"> cp -a /etc/dnf/dnf.conf \ /etc/dnf/dnf.conf.$(date +%Y%m%d-%H%M%S).bak </syntaxhighlight> === 설정 적용 예 === <syntaxhighlight lang="bash"> vi /etc/dnf/dnf.conf </syntaxhighlight> <syntaxhighlight lang="ini"> [main] installonly_limit=3 </syntaxhighlight> <div style="border:1px solid #d33; padding:10px; margin:10px 0; background:#fff5f5;"> '''주의:''' 보관 개수를 지나치게 작게 설정하면 신규 커널 장애 시 이전 정상 커널로 복구하기 어렵다. 현재 커널과 최소 하나 이상의 이전 정상 커널을 유지한다. </div> == 오래된 커널 확인 == === 현재 실행 중인 커널 확인 === <syntaxhighlight lang="bash"> uname -r </syntaxhighlight> === 기본 부팅 커널 확인 === <syntaxhighlight lang="bash"> grubby --default-kernel </syntaxhighlight> === 설치된 커널 목록 확인 === <syntaxhighlight lang="bash"> rpm -q kernel-core </syntaxhighlight> 버전 순 확인: <syntaxhighlight lang="bash"> rpm -q kernel-core \ --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -V </syntaxhighlight> === installonly 패키지 확인 === <syntaxhighlight lang="bash"> dnf repoquery --installonly </syntaxhighlight> === 오래된 installonly 패키지 확인 === 삭제하지 않고 대상만 확인한다. <syntaxhighlight lang="bash"> dnf repoquery \ --installonly \ --latest-limit=-2 </syntaxhighlight> 이 명령은 최신 2개를 제외한 이전 installonly 패키지를 조회하는 용도로 사용할 수 있다. <div style="border:1px solid #e6a700; padding:10px; margin:10px 0; background:#fffbea;"> '''확인 필수:''' 명령 결과에 현재 실행 중인 커널이나 기본 부팅 커널이 포함되는지 반드시 확인한다. </div> == 오래된 커널 삭제 == === 삭제 금지 대상 === 다음 커널은 삭제하지 않는다. * 현재 실행 중인 커널 * 현재 기본 부팅 커널 * 직전 정상 부팅이 확인된 커널 * 복구를 위해 보관해야 하는 벤더 지원 커널 === 특정 버전 직접 삭제 === 먼저 대상 패키지를 확인한다. <syntaxhighlight lang="bash"> rpm -qa | grep '5.14.0-503.40.1.el9_5' </syntaxhighlight> 삭제 예: <syntaxhighlight lang="bash"> dnf remove \ kernel-5.14.0-503.40.1.el9_5.x86_64 \ kernel-core-5.14.0-503.40.1.el9_5.x86_64 \ kernel-modules-core-5.14.0-503.40.1.el9_5.x86_64 \ kernel-modules-5.14.0-503.40.1.el9_5.x86_64 </syntaxhighlight> 실제 삭제 전 DNF가 표시하는 제거 대상 패키지를 확인한다. === 오래된 installonly 패키지 자동 제거 === 먼저 삭제 대상을 확인한다. <syntaxhighlight lang="bash"> dnf repoquery \ --installonly \ --latest-limit=-2 </syntaxhighlight> 확인 후 삭제: <syntaxhighlight lang="bash"> dnf remove $( dnf repoquery \ --installonly \ --latest-limit=-2 \ -q ) </syntaxhighlight> <div style="border:1px solid #d33; padding:10px; margin:10px 0; background:#fff5f5;"> '''주의:''' 명령 치환 방식은 조회 결과가 정확한지 먼저 확인한 후 사용한다. 운영 서버에서는 특정 버전을 직접 지정하여 삭제하는 방식이 더 안전하다. </div> === oldinstallonly 사용 === RHEL 9.5 계열에는 오래된 installonly 패키지를 제거하는 다음 명령이 제공된다. 관련 오류 동작도 RHEL 9.5에서 수정된 이력이 있다. :contentReference[oaicite:4]{index=4} <syntaxhighlight lang="bash"> dnf remove --oldinstallonly </syntaxhighlight> 실행 전 반드시 다음을 확인한다. <syntaxhighlight lang="bash"> uname -r grubby --default-kernel rpm -q kernel-core </syntaxhighlight> === 삭제 후 확인 === <syntaxhighlight lang="bash"> rpm -q kernel-core grubby --info=ALL ls -lh /boot/vmlinuz-* /boot/initramfs-*.img df -h /boot </syntaxhighlight> == 삭제 시 권장 절차 == # 현재 실행 중인 커널을 확인한다. # 기본 부팅 커널을 확인한다. # 설치된 커널 목록을 버전 순으로 확인한다. # 신규 커널로 정상 부팅했는지 확인한다. # 직전 정상 커널을 최소 한 개 유지한다. # 삭제할 정확한 커널 버전을 지정한다. # DNF의 제거 대상 목록을 확인한다. # 삭제 후 GRUB 항목과 <code>/boot</code> 파일을 확인한다. == 커널 업데이트 작업 예제 == === 1. 작업 전 점검 === <syntaxhighlight lang="bash"> uname -r grubby --default-kernel rpm -q kernel-core df -h /boot /boot/efi 2>/dev/null systemctl --failed --no-pager </syntaxhighlight> === 2. 업데이트 확인 === <syntaxhighlight lang="bash"> dnf check-update 'kernel*' </syntaxhighlight> === 3. 커널 업데이트 === <syntaxhighlight lang="bash"> dnf update kernel </syntaxhighlight> === 4. 설치 결과 확인 === <syntaxhighlight lang="bash"> rpm -q kernel-core grubby --default-kernel grubby --info=ALL ls -lh /boot/vmlinuz-* /boot/initramfs-*.img </syntaxhighlight> === 5. 재부팅 === <syntaxhighlight lang="bash"> systemctl reboot </syntaxhighlight> === 6. 재부팅 후 검증 === <syntaxhighlight lang="bash"> uname -r systemctl is-system-running systemctl --failed --no-pager journalctl -k -b 0 -p err --no-pager ip -br addr findmnt </syntaxhighlight> === 7. 이전 커널 정리 === 신규 커널의 정상 동작을 충분히 확인한 후 오래된 커널을 정리한다. <syntaxhighlight lang="bash"> uname -r grubby --default-kernel rpm -q kernel-core </syntaxhighlight> 삭제할 버전을 직접 지정한다. <syntaxhighlight lang="bash"> dnf remove kernel-core-삭제할버전 </syntaxhighlight> == 장애 발생 시 확인 == === 커널 업데이트 중 boot 용량 부족 === ==== 증상 ==== 다음과 유사한 오류가 발생할 수 있다. <syntaxhighlight lang="text"> No space left on device </syntaxhighlight> ==== 확인 ==== <syntaxhighlight lang="bash"> df -h /boot du -sh /boot/* rpm -q kernel-core </syntaxhighlight> ==== 조치 방향 ==== * 현재 커널과 기본 커널을 확인한다. * 오래된 커널을 DNF로 제거한다. * <code>/boot</code> 파일을 직접 삭제하지 않는다. * 삭제 후 커널 설치를 다시 수행한다. 관련 문서: * [[RHEL 9 boot 용량 부족 처리]] === 업데이트 후 신규 커널이 기본값이 아님 === ==== 확인 ==== <syntaxhighlight lang="bash"> uname -r grubby --default-kernel grubby --default-index grubby --info=ALL </syntaxhighlight> 기본 부팅 커널 변경은 다음 문서를 참고한다. * [[RHEL 9 부팅 커널 및 GRUB 관리]] === 신규 커널로 부팅되지 않음 === ==== 의심 구간 ==== # initramfs 생성 실패 # 커널 이미지 누락 # GRUB 부팅 항목 오류 # 스토리지 또는 LVM 드라이버 누락 # 외부 커널 모듈 호환 문제 # Secure Boot 서명 문제 # 루트 파일시스템 관련 부팅 옵션 오류 ==== 확인 ==== 이전 커널로 부팅한 후 확인한다. <syntaxhighlight lang="bash"> grubby --info=ALL ls -lh /boot/vmlinuz-* /boot/initramfs-*.img journalctl -b -1 -p err --no-pager </syntaxhighlight> initramfs 확인: <syntaxhighlight lang="bash"> lsinitrd /boot/initramfs-신규커널버전.img </syntaxhighlight> 관련 문서: * [[RHEL 9 initramfs 및 dracut 관리]] * [[RHEL 9 부팅 커널 및 GRUB 관리]] * [[RHEL 9 커널 장애 분석]] === 업데이트 후 네트워크 장치가 보이지 않음 === ==== 확인 ==== <syntaxhighlight lang="bash"> ip -br link lspci -k lsmod journalctl -k -b 0 | grep -iE 'firmware|link|eth|enp|driver|failed' </syntaxhighlight> ==== 원인 가능성 ==== * NIC 드라이버 모듈 누락 * <code>kernel-modules-extra</code> 미설치 * 외부 벤더 드라이버 빌드 실패 * Secure Boot에 의한 서명되지 않은 모듈 차단 * 인터페이스 이름 변경 관련 문서: * [[RHEL 9 커널 모듈 관리]] == 최종 점검표 == {| class="wikitable" ! 단계 ! 점검 항목 ! 명령어 |- | 업데이트 전 | 현재 실행 커널 | <code>uname -r</code> |- | 업데이트 전 | 기본 부팅 커널 | <code>grubby --default-kernel</code> |- | 업데이트 전 | boot 여유 공간 | <code>df -h /boot /boot/efi</code> |- | 업데이트 전 | 기존 커널 목록 | <code>rpm -q kernel-core</code> |- | 업데이트 후 | 신규 커널 설치 여부 | <code>rpm -q kernel-core</code> |- | 업데이트 후 | 신규 부팅 항목 | <code>grubby --info=ALL</code> |- | 업데이트 후 | initramfs 존재 여부 | <code>ls -lh /boot/initramfs-*.img</code> |- | 재부팅 후 | 실행 커널 | <code>uname -r</code> |- | 재부팅 후 | 실패 서비스 | <code>systemctl --failed</code> |- | 재부팅 후 | 커널 오류 | <code>journalctl -k -b 0 -p err</code> |} == 관련 문서 == * [[RHEL 9 커널 관리 가이드]] * [[RHEL 9 커널 기본 정보 확인]] * [[RHEL 9 부팅 커널 및 GRUB 관리]] * [[RHEL 9 커널 모듈 관리]] * [[RHEL 9 initramfs 및 dracut 관리]] * [[RHEL 9 커널 업데이트 점검표]] * [[RHEL 9 boot 용량 부족 처리]] == 참고 자료 == * Red Hat Enterprise Linux 9 - Managing software with the DNF tool * Red Hat Enterprise Linux 9 - Managing, monitoring, and updating the kernel * Red Hat Enterprise Linux 9 - Managing and monitoring security updates == 변경 이력 == {| class="wikitable" ! 날짜 ! 변경 내용 ! 작성자 |- | 2026-07-10 | 최초 작성 | changil |}
RHEL 9 커널 패키지 설치 및 업데이트
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
associated-pages
문서
토론
한국어
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의 문서로
미디어위키 도움말
특수 문서 목록
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보