Linux에서 커널을 롤백하는 방법
게시 됨: 2022-01-29시스템 업데이트 후 Linux PC에 갑자기 문제가 발생하면 Linux 커널 업데이트에 문제가 있을 수 있습니다. 다행스럽게도 다른 커널로 롤백하거나 전환하는 것은 Debian, Arch 및 Fedora 시스템에서 비교적 쉽게 수행할 수 있습니다. 방법은 다음과 같습니다.
커널 업그레이드가 문제를 일으키는 이유
커널은 Linux 시스템의 필수적인 부분이므로 장치 및 설정에 따라 커널 업데이트는 사용자 또는 설치된 응용 프로그램에 문제를 일으킬 가능성이 있습니다. 문제는 기발한 그래픽 동작에서 완전히 사용할 수 없는 시스템에 이르기까지 다양합니다. 당신의 상황이 후자라면, 당신은 정말 피클입니다.
이 문제를 해결하기 위해 많은 최신 배포판은 부팅 시 액세스할 수 있는 이전 커널이나 다른 커널을 설치한 상태로 유지합니다. 이를 통해 커널에 문제가 있는지 테스트하거나 시스템 중단 커널 업데이트에서 복구할 수 있습니다.
관련: Linux 커널 및 운영 체제 버전을 확인하는 방법
다른 커널로 부팅하는 방법
물론 Linux 커널 이외의 시스템 패키지에 대한 업데이트가 문제의 진정한 원인일 수 있습니다. 커널에 결함이 있음을 배제하는 빠른 방법 중 하나는 다른 커널로 부팅을 시도하는 것입니다.
먼저 PC를 다시 시작하여 GRUB 메뉴에 액세스해야 합니다. 부팅 시 GRUB가 몇 초 동안 표시되어 "고급 옵션"과 같은 몇 가지 옵션이 표시되는 것을 볼 수 있지만 일부 배포판에서는 액세스하지 않는 한 숨김 상태로 유지합니다. 부팅 시 나타나지 않으면 PC 부팅이 시작될 때 아래 이미지와 유사한 화면이 표시될 때까지 Shift 키를 길게 누릅니다.
화살표 키를 사용하여 "[내 배포판]의 고급 옵션"으로 이동하고 Enter 키를 누릅니다.
사용 가능한 부팅 옵션 목록이 표시됩니다. "[Your Distro], with Linux 5.10.0.7-amd64"와 같은 동일한 옵션의 "복구 모드" 버전이 뒤따르는 것과 같이 최소한 두 가지가 표시되어야 합니다. 나열된 다른 버전은 설치된 다른 커널입니다.
하나의 표준 옵션과 하나의 복구 모드 옵션만 있다면 불행히도 하나의 커널만 설치되어 있다는 의미입니다. 이 경우 커널을 전혀 사용할 수 없는 경우 복구 모드를 사용하여 일부 복구 옵션을 시도할 수 있습니다.
버전 번호가 두 개 이상인 경우 부팅할 수 있는 대체 커널이 있는 것입니다. 첫 번째 옵션은 최신 옵션이며 PC가 자동으로 부팅되는 옵션입니다. 화살표 키로 이동하여 Enter 키를 눌러 다른 비복구 모드 옵션을 시도합니다.
관련: 부팅되지 않을 때 Ubuntu 시스템을 수정하는 방법
커널을 제거하거나 다운그레이드하는 방법
다른 커널로 부팅하여 문제가 해결된 것 같으면 해당 커널을 계속 사용하고 싶을 것입니다. 그러나 PC는 기본적으로 부팅할 때마다 문제가 있는 커널을 사용하려고 할 수 있습니다. 부팅할 때마다 이전 커널을 수동으로 선택하거나 다른 업데이트를 기다리는 동안 문제가 있는 커널을 삭제할 수 있습니다.
경고: 커널 업데이트에는 보안 수정 사항이 포함될 수 있습니다. 이러한 이유로 커널 업데이트를 무시하면 위험이 따릅니다. 계속 진행해야 하는 경우 시스템이 가능한 한 안전한지 확인하십시오.
일부 배포판에서는 이 작업을 그래픽으로 수행할 수 있으며 단순히 다른 커널을 기본값으로 선택할 수도 있습니다. 예를 들어, Linux Mint의 업데이트 관리자(아래 그림)에는 원하지 않는 커널을 삭제하는 것 외에도 커널 기본 설정을 지정할 수 있는 커널 설정 기능이 있습니다.
응용 프로그램 메뉴에서 "커널"이라는 단어를 검색하고 데스크탑 도구가 나타나는지 확인하십시오. 그렇다면 그래픽으로 이 작업을 수행할 수 있을 것입니다. 그렇지 않으면 명령줄을 통해 커널을 삭제하려면 계속 읽으십시오.
경고: 제거하려는 커널이 아닌 사용하려는 커널로 부팅하는 동안에만 진행하십시오.
Debian 및 Ubuntu에서 커널 제거
Debian, Ubuntu 또는 파생 제품 중 하나에서 Linux 커널을 제거하려면 먼저 설치된 커널 패키지를 식별해야 합니다. 터미널을 열고 다음 명령을 입력하십시오.
적절한 목록 --설치됨 | grep 리눅스 이미지
결과에서 슬래시(/) 앞에 오는 각 패키지 이름의 버전 번호를 볼 수 있습니다. 제거하려는 커널의 이름을 얻은 후 다음 명령을 전달하고 kernel-name
을 이전 명령에 나타난 것과 똑같은 커널 패키지 이름으로 바꿉니다.
sudo apt 커널 이름 제거
암호를 묻는 메시지가 표시되면 y
를 입력하고 Enter 키를 눌러 제거를 확인하라는 메시지가 표시됩니다.
제거가 완료될 때까지 기다리면 Linux PC가 더 이상 해당 커널로 부팅되지 않습니다. 시스템을 업데이트할 때 새 커널을 주시하고 문제가 해결되었는지 확인하기 위해 도착하면 테스트하십시오.
관련: Ubuntu Linux를 업데이트하는 방법
아치에서 커널 제거 또는 다운그레이드
Arch Linux에서는 linux-hardened
, linux-zen
및 linux-lts
와 같은 이름을 가진 여러 대체 커널을 쉽게 얻을 수 있습니다. GRUB에서 옵션을 선택할 때 사용 가능한 설치된 각 커널의 한 버전만 보았을 것입니다. 데비안의 커널과 달리 아치 커널 업데이트는 이전 패키지를 대체할 새 패키지로 도착하지 않습니다. 대신, 설치된 각 커널은 사용 가능한 최신 버전으로 업데이트(또는 "동기화")됩니다.
이러한 이유로 일반적인 커널을 다운그레이드하는 대신 대체 커널로 부팅하는 것이 가장 좋습니다. 다른 커널로 부팅했고 첫 번째 커널을 사용하지 않으려는 경우 Pacman을 사용하여 제거 명령에서 커널 이름을 지정할 수 있습니다.
sudo pacman -R 커널 이름 커널 이름 헤더
kernel-name
을 선택한 커널로 교체합니다. 계속하기 전에 암호를 입력하라는 메시지가 표시됩니다. 그런 다음 "y"를 입력하고 Enter 키를 눌러 제거를 확인해야 합니다.
커널 패키지를 다운그레이드 하려면 권장하지 않는다는 점을 알아두십시오. 롤링 릴리스 업데이트는 최신 상태의 다른 패키지에 의존하는 경우가 많으므로 업데이트 롤백은 위험한 비즈니스이며 운영 체제가 손상될 수 있습니다.
그러나 확실히 원한다면 다음 명령을 사용하여 커널 패키지를 특정 버전으로 동기화할 수 있습니다.
sudo pacman -S 커널 이름=xxx 커널 이름 헤더=xxx
kernel-name
을 다운그레이드하려는 커널로 xxx
를 원하는 버전으로 바꾸십시오. 아치 패키지 검색에서 커널을 찾아 "변경 사항 보기"를 클릭하면 이전 버전 번호를 찾을 수 있습니다.
관련: 아치 리눅스를 업데이트하는 방법
Fedora에서 커널 제거
Fedora Linux는 기본적으로 최신 버전과 함께 장치에 설치된 두 가지 이전 버전의 커널을 유지합니다. 이 rpm
명령으로 패키지 이름을 식별할 수 있습니다.
rpm -qa 커널 코어
버전 번호 옆에 설치된 모든 커널 목록이 표시됩니다.
다른 커널로 부팅한 후 dnf를 사용하여 문제가 있는 커널을 제거합니다.
sudo dnf는 kernel-core-xxx-xxx.fcxx.x86_64를 제거합니다.
제거를 확인하는 메시지가 표시됩니다. y를 입력하고 Enter 키를 눌러 확인합니다.
커널을 제거한 후에는 커널 업데이트를 허용할 때까지 시스템을 새 커널로 부팅할 수 없습니다. 새 항목을 사용할 수 있는 경우 시도해 보고 문제가 해결되었는지 확인하십시오.