반도체/PC // ID_0136

우분투 리눅스 커널 업그레이드 오류와 패키지 의존성 충돌 해결 과정

AUTHOR NETCITY_ADMIN
PUBLISHED 2026.07.22 16:02
ARCHIVE NODE 반도체/PC
이미지 설명이미지 설명이미지 설명이미지 설명반도체/PC우분투 리눅스 커널 업그레이드 오류와 패키지 의존성 충돌 해결 과정

우분투 리눅스 커널 업그레이드 오류와 패키지 의존성 충돌 해결 과정

최근 우분투 24.04 서버 및 데스크톱 환경에서 정기적인 시스템 업그레이드와 무인 업그레이드(unattended-upgrade)를 수행하는 과정에서, dpkg returned an error code (1)이라는 치명적인 오류 코드와 함께 패키지 설정 단계가 완전히 중단되는 현상이 발생했다. 특히 시스템이 HWE 7.0 버전대의 최신 리눅스 커널로 진입하는 전환기에서, 가상 웹캠 및 비디오 스트리밍 장치 드라이버로 활용되던 v4l2loopback-dkms 모듈이 새로운 커널 소스 코드와 호환되지 않아 자동 컴파일(DKMS) 과정에서 거듭 실패하는 문제가 화근이 되었다. 이로 인해 linux-headers-7.0.0-28-generic, linux-image-7.0.0-28-generic 및 상위 메타 패키지인 linux-generic-hwe-24.04 등의 구성(configure) 작업이 연쇄적으로 차단되었으며, 시스템 내부의 패키지 데이터베이스가 심각하게 엉키면서 부팅 시 초기화 단계에서 멈추는 보라색 화면 오류나 서비스 구동 장애의 주원인으로 작용했다.

이러한 시스템 불능 상태를 체계적으로 진단하기 위해 관리자는 우선 /var/log/apt/history.log 로그 파일을 직접 열어 최근 수행된 패키지 변경 이력과 업그레이드 실패 시점을 정밀하게 추적했다. 로그 분석 결과 커널 릴리스가 갱신되는 시점마다 DKMS 빌드 서브프로세스가 오류 코드 11을 반환하며 종료되었고, /var/crash/v4l2loopback-dkms.0.crash 경로에 예외 보고 파일이 누적되면서 후속 패키지 작업 전체를 마비시키고 있음이 명확히 드러났다. 문제의 원인이 특정 제3자 모듈 패키지의 빌드 실패에 있음을 파악한 관리자는 충돌을 일으키는 v4l2loopback-dkms 패키지를 apt purge 명령어로 시스템에서 완전히 도려내고, 잔존해 있던 크래시 파일들을 깨끗하게 정리하여 장애 요인을 원천적으로 제거했다.

원인 물질이 제거된 직후, 막혀 있던 패키지 데이터베이스의 정합성을 맞추기 위해 sudo dpkg --configure -a 명령어가 순차적으로 실행되었으며, 이를 통해 대기 중이던 커널 헤더와 이미지 파일들의 설정 작업이 비로소 정상적으로 완수될 수 있었다. 이어서 누락되거나 끊어진 의존성 트리를 완전히 복구하기 위해 sudo apt-get install -f -y 명령어를 투입하여 시스템 전반의 패키지 상태를 무결점 상태로 동기화하는 데 성공했다. 최종적으로 불필요해진 고아 패키지와 잔여 라이브러리들을 sudo apt autoremove --purge 명령어로 일괄 청소함으로써, 최근 시스템을 괴롭히던 패키지 꼬임 현상과 부팅 불안정 요소를 완전히 해소하고 안정적인 서버 인프라 운영 환경을 되찾을 수 있게 되었다.

 

우분투 부팅 시 화면이 멈추는 보라색 화면(Purple Screen of Death) 에러는 주로 커널 업데이트나 패키지 설치 과정이 중간에 강제로 중단되면서 발생합니다.

앞서 보신 로그에서처럼 dpkg 에러(Sub-process /usr/bin/dpkg returned an error code (1))가 발생한 상태로 시스템이 재부팅되거나 패키지가 꼬이게 되면 다음과 같은 원인으로 부팅이 멈추게 됩니다.

1. 문제 발생 및 진단 단계 (Problem & Diagnosis) 이미지 상단에는 업그레이드 실패로 인한 시스템 불능 상태와 원인 분석 과정이 표현되어 있습니다.

오류 화면: dpkg returned an error code (1) 메시지와 함께 패키지 설정이 중단된 터미널 화면을 보여줍니다. 특히 v4l2loopback-dkms 모듈의 컴파일 실패로 인해 linux-image-7.0.0-28-generic 등의 커널 구성이 차단되었음을 시각화했습니다.

진단 로그: /var/log/apt/history.log와 /var/crash/v4l2loopback-dkms.0.crash 파일을 직접 열어 문제의 핵심 원인을 추적하는 과정을 나타냈습니다. 충돌을 일으키는 주범(v4l2loopback-dkms 모듈)을 명확히 식별했습니다.

2. 해결 과정 단계 (Resolution Steps) 이미지 하단에는 문제 해결을 위한 명령어 실행 순서와 시스템 상태 변화가 단계별로 정리되어 있습니다.

Step 1 (제거): 충돌 요인인 v4l2loopback-dkms 패키지를 완전히 삭제(sudo apt purge v4l2loopback-dkms)하고 관련 크래시 파일을 정리하는 단계입니다.

Step 2 (설정 복구): 막혀 있던 패키지 데이터베이스의 정합성을 맞추기 위해 sudo dpkg --configure -a 명령어를 실행하여 대기 중이던 커널 설정을 완료합니다.

Step 3 (의존성 해결): 누락된 의존성 트리를 복구(sudo apt-get install -f -y)하여 시스템 패키지 상태를 정상화합니다.

Step 4 (최적화): 불필요한 고아 패키지를 정리(sudo apt autoremove --purge)하여 안정적인 운영 환경을 확보하는 최종 단계를 시각적으로 표현했습니다.


넷시티 우분투 서버는 그 과정을 거쳐 안정화에 성공했다. 그것은 웹 서버와 글쓰기 등 작업용과 개발용도로도 동시에 사용하기 때문이다.