GRUB 오류 : 파일 '/grub/i386-pc/normal.mod'를 찾을 수 없습니까?


17

나는 최근에 기계에 아치를 설치했다. 재부팅 할 때 문제가 발생했습니다. 텍스트로 된 검은 색 화면이 나타납니다

Grub loading.
Welcome to GRUB!
error: file '/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

나는 구글에서 답을 찾고있다. 나는 거의 하나를 발견 여기에 나는 그것이 사실이었다라고 코멘트 중 하나 보았다 아직 다음 우분투 포럼에. 또 다른 대답이 있지만 엉망이되는 것을 두려워하여 라이브 CD에서 설치 하려는지 확실하지 않습니다.

파티셔닝, 명령, 튜토리얼 및 시스템 문제가 지속적으로 발생 한 후 7 시간 동안 설정하면 두려움이 생길 것입니다. 얼마나 기뻐요?

그럽을 작동시키는 쉬운 솔루션을 아는 사람이 있습니까?


두 번째 제안 (liveCD 및 chroot 사용)은 시도해 볼 가치가 있습니다. 또는 변형 : 나는 아치 사용자가 아니지만 이전에 설치 한 적이 있으며, 내가 기억하는 것에서 아치 설치의 여러 단계와 관련하여 제안을 고려하고 싶을 수도 있습니다. 일부는 chroot와 관련이 있습니다. 이전 단계로 아치 CD를 부팅 한 다음 설치에 마운트하고 루트로 되돌릴 수 있다면 시도해 볼 수 있습니다 grub-install. 단계를 반복 할 필요없이 liveCD에서 루트로 전환하기위한 지침으로 사용하십시오.
goldilocks

내가 지금 컴퓨터에서 아니에요 내가 믿는 않지만 나는 GRUB 설치 시도하고 하네 .-하지 않았다
그리핀

@Griffin "grub-install"이 실패했거나 문제가 해결되지 않았습니까?
derobert

@derobert grub-install은 유효한 명령이 아닙니다 \
Griffin

@goldilocks 두 번째도 작동하지 않습니다
Griffin

답변:


9

정말 성가신 것 ...

분명히 / boot / grub / i386-pc 디렉토리가 단순히 제 위치에 없었기 때문에 전체 / usr / lib / grub / i386-pc를 / boot / grub에 복사하여 문제를 해결했습니다. 그게 다야.

cp -r /usr/lib/grub/i386-pc /boot/grub

또한 누락 되었기 때문에 그렇게했습니다. 불행히도, 그것은 고쳐지지 않았다.
Wolfpack'08

8

나는 비슷한 문제의 중간에 있습니다 (우연히도 아치에 있습니다)

Grub이 잘못된 "접두사"를 사용하고 있기 때문에이 파일을 찾지 못하고 실행하지 못했습니다.

여기 당신이하는 일이 있습니다. grub 복구 모드로 부팅 한 다음 부팅 방법을 알아 내기 만하면됩니다.

먼저 set 을 실행하면 변수가 나열됩니다. 예를 들어 mine은

cmdpath=(hd0)
prefix=(hd1,msdos3)/boot/grub
root=hd1,msdos3

이제 접두사는 grub이 normal.mod 파일을 찾는 변수입니다. 내 경우에는 hd1, msdos3/ dev / sdb3 과 동일합니다 (유사하게 hd0, msdos1은 / dev / sda1이됩니다). 유효한 파티션 목록을 보려면 ls 로 입력하십시오.

내 경우에는 다시 grub이 아치 파티션에서 / boot로 마운트 된 / dev / sdb1에 설치되었으므로 올바른 접두사는 (hd1, msdos1) / grub입니다.

부팅하려면 다음을 수행해야합니다.

set prefix=(hd1,msdos1)/grub
insmod normal
normal

귀하의 경우 grub을 설치 한 파티션을 기억하거나 추측해야합니다. 당신은 잘못 추측 할 수 있습니다, 아무런 해를 끼치 지 않을 것입니다, insmod 명령은 단순히 실패하고 다른 파티션으로 다시 시도 할 수 있습니다.

그 후, grub은 정상적으로 정상적으로로드되고 부팅 할 항목을 목록에서 선택할 수 있습니다. 일반적으로 이와 같은 혼란이 발생하면 grub-install을 사용하여 mbr에 grub을 다시 설치 하면 영구적으로 수정되므로 부팅 할 때 마다이 작업을 수행하지 않아도됩니다. 그러나 수정이 쉽지 않은 경우해야 할 일을 찾는 데 어려움을 겪고 있습니다 (또는해야 할 일을 공유 할 것입니다).

이것이 실패하는 경우에만 (예를 들어 접두사가 정확하지만 여전히 부팅 할 수없는 경우) CD를 사용하거나 문제를 해결하기 위해 CD를 구출해야하는 경우에만 (그것을 피하는 것이 가장 좋습니다)


이것은 약간의 오래된 질문 일지 모르지만 누군가가 라이브 CD와 USB를 사용하여 문제를 해결하는 대신 실제로 그럽 구조를 사용하는 방법에 대답해야한다는 것을 알았습니다. 우리에게 도움을주기 위해 항상 라이브 미디어를 보유하고있는 것은 아니며, 그렇게해도 일반적으로 선호하는 환경에서 작업하는 것이 좋습니다.
Cestarian 2019

좋은 설명! (특히 "잘못 추측해도 아무 것도 해치지 않는다"는 메모). 실수로 Windows 파티션 을 삭제해도 Ubuntu에 영향을 미치지 않는다고 생각한 후 듀얼 부팅 Windows + Ubuntu 시스템에서 동일한 문제가 발생했습니다 . 어쨌든이 게시물은 실제로 오류를 해결하는 방법을 이해하는 데 도움이되었습니다. grub이 들어있는 파티션을 기억할 수 없었기 때문에 방금 그것들을 모두 나열한 ls다음 올바른 조합에 도달 할 때까지 하나씩 시도했습니다. :-)
Leigh


1
무언가를 고치는 것은 항상 좋지만 어떻게 고쳤 는지 이해 하는 것이 더 좋습니다 :-) 건배.
Leigh

당신은 천재입니다
Ashish Doneriya

5

Mint 15를 새로 설치 한 후 오늘이 문제가 발생했습니다.

설치 프로그램이 /boot/grub/x86_64-efi모듈을 작성 했지만 일반 /boot/grub/i386-pc모듈 은 작성 하지 않았습니다 .

Live CD에서 Grub을 다시 설치하면 문제가 해결되었습니다.

교체 는 / dev / sda를 하고 는 / dev / sda1을 부팅 장치 및 부팅 파티션과 라이브 CD에서 다음 명령을 실행합니다 :

sudo mount /dev/sda1 /mnt
sudo grub-install --boot-directory=/mnt /dev/sda
sudo reboot

1

게시물 주셔서 감사합니다. Windows Vista가 설치된 이전 Dell Optiplex 컴퓨터에 Linux CentOS 5.11을 새로 설치 한 후 "파일 '/grub2/i386-pc/normal.mod'를 찾을 수 없음"과 거의 동일한 오류 메시지가 해결되었습니다. -부팅 시스템.

제 상황은 이미 FEDORA 기본 파티션에 GRUB (LEGACY) 대신 GRUB2를 사용하는 최신 Fedora 20 배포판을 설치하려고했지만 실패했습니다. 그런 다음 Windows 파티션을 유지하고 FEDORA 파티션을 덮어 쓰면서 CentOS를 직접 설치하려고했습니다.

CentOS 설치 중에 첫 번째 (Windows) 파티션 만 남겨두고 (hd0,0) 두 번째 (부팅) 파티션 (hd0,1)에 / boot 디렉토리를 만들었습니다. 그런 다음 MBR을 수정하지 않고 다른 옵션 (다른 파티션의 부트 로더)을 선택했습니다.

설치가 성공적으로 완료된 후 위의 오류로 재부팅되었습니다.

첫 번째 파티션의 부팅 정보가 GRUB2 위치를 계속 가리키고 있다고 생각합니다. 이전에 생성 된 FEDORA00 파티션이 제거 되었기 때문에 CPU가 normal.mod를 찾을 수 없습니다.

내 단계는 다음과 같습니다.

  1. Centos 5 설치 CD에서 복구 모드 ( "linux rescue")로 부팅하십시오.

  2. 로컬 드라이브를 마운트하십시오 : chroot / mnt / sysimage

  3. 단일 사용자 모드로 전환 : su

  4. CentOS 설치 업데이트 : yum 업데이트

  5. emacs 편집기를 사용하여 "Microsoft Windows Vista"를 grub.conf 파일에 추가하십시오 : emacs /boot/grub/grub.conf 그리고 Vista를 기본 OS로 설정하십시오.

    ( 참고 : www.cyberciti.biz/faq/grubconf-for-windows-vista-or-xp-dual-boot/ 및 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html을 참조하십시오. /Installation_Guide/sn-medialess-editing-grub-conf.html )

  6. MBR 업데이트 시도 : grub-install / dev / hda

  7. "GRUB"을 표시 한 후 CPU가 정지 된 알 수없는 GRUB 오류로 재부팅하십시오.

  8. 원본 Windows Vista 설치 디스크 (또는 다른 Windows 복구 디스크)에서 재부팅하고 디스크 복구 옵션을 선택하십시오. MBR이 수리되었다는 메시지를받습니다.

  9. Windows Vista로 올바르게 재부팅하십시오.

더 우아한 솔루션이 존재한다고 확신하지만 이것이 나를 위해 일했습니다. 또한 http://help.ubuntu.com/community/Grub2/Upgrading에 설명 된대로 GRUB to GRUB2 마이그레이션 패키지를 다운로드 하려고 시도했습니다.

$ yum install grub-pc

그러나 패키지를 찾을 수 없습니다. 아마도 나는 방금 시도했을 것 yum install grub입니다.


0

flittermice에 추가하는 중 ...

USB로 부팅하고 i386 폴더가있는 경우 깨진 부분에서 i386 폴더를 루트로 연 다음 USB에서 작업중인 i386 폴더를 복사 할 수 있습니다.


0

CentOS 6.7 시스템을 2 단계로 진행했습니다. 먼저 위의 flittermice의 조언을 따르고 라이브 CD로 부팅하고 / dev / sda2를 / mnt로 마운트하고 / mnt / usr /에서 i386-pc 폴더를 복사했습니다 ... 에 의한 find /|grep i386에 / 부팅 / 애벌레 재부팅).

이것은 grub rescue> ;-) 대신 grub>을 주었다.

그런 다음 여기에 안내를 따라 왔습니다. https://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux/) 를 따라 부팅합니다. 내 파티션. 스왑에서 (hd0,1)을 가져 왔기 때문에 (hd0,2)였습니다.

나중에 나는 / boot가 inode 크기 256의 ext4에 있고 이전 grub1에 128이 필요하기 때문에이 부팅을 "자동"으로 만들 수 없다는 것을 알았습니다 . [ http : // 설치 전에 파티션을 준비하려면 kb.kristianreese.com/index.php?View=entry&EntryID=113]


0

우분투를 다시 설치하십시오. "다른 것을하십시오"로 이동하십시오. 부트 로더를 설치할 위치로 Windows 설치 파티션을 선택하십시오.

기존 Windows 설치가있는 경우 동일한 파티션에 grub을 설치해야합니다. 그렇지 않으면 질문에 문제가 나타납니다.

이것은 14, 15, 16, 17 Ubuntu 모든 버전 및 아마도 이전 버전과 관련이 있습니다. 부트 로더를 설치할 위치를 물으면 / boot 파티션을 작성하고 선택하지 마십시오. 대신 Windows 파티션을 사용하십시오.

감사합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.