GRUB 폴더의 절대 위치를 영구적으로 수정

GRUB 폴더의 절대 위치를 영구적으로 수정

최근에 16.04 설치 프로그램이 GRUB 폴더의 위치를 ​​잘못 구성할 때 비교적 일반적인 문제가 발생했습니다. 이러한 경우 시스템은 다음 메시지와 함께 복구 셸로 부팅됩니다.

error: file '/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

이는 GRUB가 부팅할 수 있었지만 잘못된 위치에서 모듈을 찾고 있음을 의미합니다. 그만큼잘 알려진 솔루션모듈의 위치를 ​​즉시 GRUB에 지시하는 것입니다. 내 경우에는 다음과 같습니다.

grub rescue> set prefix=(hd1,msdos2)/boot/grub
grub rescue> insmod normal
grub rescue> normal

그러면 부팅 프로세스가 성공적으로 다시 시작됩니다. 그러나 다음에 시스템이 부팅될 때 GRUB는 다시 복구 콘솔로 돌아가며 해당 모듈의 위치에 대해 다시 지시를 받아야 합니다. GRUB을 다시 설치했지만 문제가 해결되지 않았습니다.

GRUB에 모듈의 정확한 위치를 어떻게 영구적으로 지시할 수 있습니까?

업데이트: 팔로우했어요WinEunuuchs2Unix의 제안그리고 시도했다부팅 수리도구. 먼저 GRUB 위치를 확인했는데 분명히 정확했습니다: /boot/grubon sdg2.

그런 다음 권장 수리 진단을 실행했는데 결과는 다음과 같습니다.이 출력. 올바른 GRUB 위치가 다시 보고됩니다.

sdg2: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 16.04.3 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab 
                       /boot/grub/i386-pc/core.img

그러나 보고서 맨 끝에 다음과 같은 문제를 가리키는 오류가 있습니다 device.map.

grub-probe: error: cannot find a GRUB drive for /dev/sdi1.  Check your device.map.
Unhide GRUB boot menu in sdg2/boot/grub/grub.cfg

An error occurred during the repair.

그것에 대해 어떤 제안을 할 수 있습니까?

답변1

무엇이 잘못되었는지 이해하는 열쇠는 GRUB에 hd1. 그만큼BIOS는 기본적으로 다음으로 부팅됩니다.hd0, 그리고 이 워크스테이션에는 해당 디스크에 설치된 GRUB를 로드하려고 시도한 MBR의 남은 부분이 있었습니다(따라서 대신 을 참조 /grub) /boot/grub.

이에 대한 해결책은 BIOS에서 내부 디스크의 부팅 순서를 변경하는 것이었습니다. 우선 hd1사람의 개입 없이 부팅 프로세스가 성공적으로 완료됩니다. 일부 BIOS에서는 내부 디스크의 부팅 순서를 수정하는 것이 불가능할 수도 있습니다. 이러한 경우 디스크를 보드에 다시 배선해야 합니다.

관련 정보