본문 바로가기

Study

우분투 부팅 안됨 / grub 람다 화면에서 멈춤

우분투 부팅 에러.

부트로더 메뉴 선택 화면은 잘 뜨는데 (Ubuntu, Advanced option Ubuntu, ... 등)

가장 우선 옵션인 Ubuntu로 부팅을 하려면 람다 화면만 뜨고 멈춰버린다.

 

리커버리 모드와 부팅 옵션 등을 변경하면서 원인을 찾아내었다.

 

1. Advanced option Ubuntu 메뉴로 들어가서 현재 깔려있는 여러가지 커널 중에서 가장 숫자가 큰 커널이 가장 최신 커널로 여겨져 부팅 우선순위가 높다. 얘로 recovery mode로 부팅하면 (initramfs) 프롬프트가 나타난다.

 

-> 뭔가 크게 잘못되었다는 뜻. 커널 자체가 제대로 설치 안되었을 가능성이 높다.

- 내 경우에는 Ubuntu, with Linux 5.15.99였는데, 숫자가 수상했다. 존재하지 않는 커널!

 

2. 하드웨어 전원을 길게 눌러 재부팅을 시도하여 다시 Advanced option Ubuntu 메뉴 선택하고 이전에 잘 구동되었던 다른 커널로 일반 부팅을 시도해본다. 

 

3. 부팅이 잘 되면 5.15.99 커널을 찾아 박멸해야함. 아래 명령어를 통해 현재 설치되어있는 커널 목록 확인

dpkg --list | grep linux-image

4. 내 경우에는 역시 5.15.99라는 커널 따위는 설치되지 않았었다. 그렇다면 부트로더는 어디서 이런걸 보고 부팅을 시도하는 걸까? -> 부팅 디스크의 파일들을 까보자.

 

4-1) 확인해야할 디스크 이름 확인

`dev/sda1` `dev/nvme0n1p1` 이런식으로 표기된 것을 확인할 수 있다.

부팅 파일이 존재하는 파티션은 part 옆에 뭐라고 써있을 것

lsblk

4-2) 확인할 디스크를 파일시스템에 마운트

내 경우에는 부팅디스크가 nvme0n1이었다. 이를 /mnt 디렉토리에 마운트한다.

sudo mount /dev/nvme0n1 /mnt

4-3) /boot 디렉토리, 커널 이미지 파일 확인

cd /mnt/boot
ls

해당 디렉토리에 들어가서 커널 이미지 파일들을 확인한다.

`vmlinuz-버전-generic` `initrd.img-버전-generic` 이런애들을 찾으면 됨.

4-4) 범인 파일을 삭제하고 언마운트

내 경우에는 vmlinuz-5.15.99라는 파일이 있었다. 해당 파일을 삭제하고 부팅디스크를 언마운트 한다.

sudo rm vmlinuz-5.15.99
cd
sudo umount /mnt

5. grub 업데이트

부팅 관련 설정 만지면 쳐줘야함

sudo update-grub

6. 재부팅

나와 같은 문제였을 경우, 부트로더는 더이상 해당 커널을 인식하지 않으므로 원래 잘 되었던 커널 버전으로 부팅할 것

'Study' 카테고리의 다른 글

Kbuild error Skipping BTF generation  (0) 2023.07.21