겉바속촉

error: file '/boot/grub/i386-pc/normal.mod' not found 본문

IT 일기 (상반기)/에러모음집

error: file '/boot/grub/i386-pc/normal.mod' not found

겉바속촉 2022. 8. 11. 10:49
728x90
반응형

grub rescue 모드에서 아직 탈출 못한 자....

이걸 보시길..

 

2022.08.11 - [IT 일기 (상반기)/에러모음집] - grub rescue> ....가 모야 이게모야 저게모야 👀

 

grub rescue> ....가 모야 이게모야 저게모야 👀

ㅋㅋ..ㅋ....ㅋ.ㅋ.....ㅋㅋ.....ㅋㅋㅋ...... 파티션 용량 늘리고 tar 풀어놓고 오늘 다시 켜보니까 버츄얼박스가 빡쳐이따..! 태어나서 처음 본다 혼자서 rescue mode로 진입하더니 grub rescue> 라는 프롬

2-juhyun-2.tistory.com

 

탈출하지 못한 이유는

error: file '/boot/grub/i386-pc/normal.mod' not found 이 에러를 만났기 때문

 

require모듈이 잘못된 위치에 있는 경우라는데

일단 grub rescue 모드를 공부해봤다.

 

 

두둥

 

 

grub rescue 모드

- grub 프롬포트가 따로 또 있나본데 grub rescue모드가 더 제한적

- grub rescue모드에서 작동하는 명령은 거의 없음

- 지난 포스팅에서 했던 ls명령.. -> 시스템에 있는 모든 장치 또는 파티션을 출력함

- Grub은 "ext2" 파일 시스템만 인식함

 

그리고 내가 봤던 내용은 파티션이 (hd0, msdos1), (hd0, msdos2)...이런 식인데 나랑 이름이 달랐지만

뭐 이름만 다를거라고 생각한다

(hd0, msdos1) = /dev/sda1

(hd0, msdos2) = /dev/sda2

라고 보면 된다고 함

 

(hd0, msdos1) ---> 하드 드라이브 0의 첫번째 파티션

(hd0, msdos2) ---> 하드 드라이브 0의 두번째 파티션

 

결국 나는 4번째 파티션이 문제라는 것

4번째 파티션을 확장시켜줬던 건데

확장시켜주고 나서 마운트까지 해주었는데 뭐가 문제일까...요...?

 

 

기본적으로 normal.mod는 일반 명령 사용을 위해 제공하는 부팅 시 로드되는 모듈인데

일반 명령을 사용하여 GRUB 메뉴를 표시할 수 있다고 함.

 

grub이 일반적인 위치에서 파일을 찾을 수 없기 때문에

파일이 옮겨졌거나 삭제되었을 수도 있다....ㅠㅠ

 

 

나는 지금 normal.mod가 존재하지 않는데

 

시스템을 부팅하려면 "vimlinuz-linux"와 같은 커널 파일과 "initramfs-linux.img" 파일이 필요.

vimlinuz-linux : 실제로 하드 디스크에 루트 파티션을 마운트하는 커널 이미지

initramfs-linux.img : 시스템 부팅에 필요한 앞으로 필요한 모듈을 로드

 

먼저 알려진 파티션에서 파일을 찾아주어야함.

따라서 다음과 동일한 ls 명령을 사용하여 /boot 디렉토리에서 파일 찾기 시도

 

파일을 찾고 나면 set 명령으로 커널 이미지가 포함된 파티션으로 루트를 설정하여 항상 올바른 위치를 가리키도록 설정해두어야 함.

grub rescue> set root=(hd0,gpt4)

 

커널 이미지 실행

grub rescue> insmod linux
grub rescue> linux /boot/vimlinuz-linux root=/dev/sda4
grub rescue> initrd /boot/initramfs-linux.img

 

마지막으로 위의 파일을 사용하여 시스템을 부팅하고 시스템에 들어갈 수 있게 해주는 boot 명령

grub rescue> boot

 

리눅스가 부팅되고 나면

$ sudo update-grub
$ sudo grub-install /dev/sda

 

 

 

근데 나만 안돼..........

728x90
반응형