GNU+linux/Arch linux issues

커널(kernel)이 날아갔을 때 대처법 (아치 리눅스)

ensuta 2021. 7. 3. 02:14
728x90
반응형

 How to Solve Kernel Scare (Arch Linux)

커널(kernel)이 날아갔을 때 대처법 (아치 리눅스)

부팅이 안될 때 대처법 (아치 리눅스)

pacman cache 를 삭제하면 대부분 복구할 수 없습니다

 

1. DVD 나 USB에 아치리눅스 iso 파일을 굽습니다. 혹은 다른 리눅스 배포판도 가능합니다.

 

2. 구운 Live OS 로 부팅

 

3. 파티션 정보를 확인합니다 (실수 방지 )

# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      x:x    0 	XXXX  x disk 
├─sda1   x:x    0   XXXX  x part /boot
├─sda2   x:x    0   XXXX  x part /
└─sda3   x:x    0   XXXX  x part [SWAP]
(예시이며 실제 환경은 다를 수 있습니다)

# fdisk -l (조금 더 자세하게 보고 싶을 때)

 

4.

/ 가 마운트 되어있는 sda2 를 /mnt 에 마운트 합니다

/boot 가 마운트 되어있는 sda1 를 /mnt/boot 에 마운트 합니다

# mount /dev/sda2 /mnt
# mount /dev/sda1 /mnt/boot

 

5. 

arch-chroot 를 이용하여 시스템에 로그인

# arch-chroot /mnt

만약 다른 배포판을 사용하여 부팅하였다면 arch-chroot 가 안된다.

chroot 를 사용하는 방법  

 

6.  pacman 으로 커널을 재설치하여 복구

# pacman --version (버전 확인을 통해 pacman이 되는지 확인)

library or a package has problem 라며 오류를 뿜는다면 pacman 의 의존성이 문제가 생긴겁니다. (= 수동 복구 해야함)

더보기
더보기

문제가 생긴 패키지나 라이브러리의 캐시 파일이 존재하는지 확인:

# ls -l /var/cache/pacman/pkg/<pkg name>*

압축파일이 존재한다면 수동으로 pacman 를 복구할 수 있습니다.

이제 생쇼를 합니다. 라이브러리나 패키지의 본래 위치를 찾아야합니다. 여기서 찾아보세요.

Package Contents 라고 되어있는 부분 보면 쉽게 알 수 있습니다.

 

복사 후 tar 로 압축 풀기

# cp /var/cache/pacman/pkg/unixmen* /lib/unixmen
# tar -xf /lib/unixmen/*

 

이제 살렸는지 확인. 이런 식으로 뜨면 성공

# pacman --version

 .--.                  Pacman v6.0.0 - libalpm v13.0.0
/ _.-' .-.  .-.  .-.   Copyright (C) 2006-2021 Pacman Development Team
\  '-. '-'  '-'  '-'   Copyright (C) 2002-2006 Judd Vinet
 '--'
                       This program may be freely redistributed under
                       the terms of the GNU General Public License.

이제 커널을 복구한다. 기존의 시스템에서 실행되는 것이기 때문에 dkms도 잘된다.

# pacman -U /var/cache/pacman/pkg/linux-x.x.x-x.pkg.tar.xz (버전은 예시일 뿐입니다)
# pacman -S linux (인터넷 환경일 시)

설치가 완전히 끝날 때까지 냅둬야 한다. 다되면

# exit
# reboot

 

반응형