Grub 오류 15(파일을 찾을 수 없음)

Grub 오류 15(파일을 찾을 수 없음)

새로 설치 문제를 해결하려고 합니다. 저는 이 기존 배포판(Ubuntu)을 실행하고 있으며 /dev/sdb새 운영 체제 Gentoo를 설치했습니다 /dev/sda. 새 OS로 부팅할 수 없었기 때문에 다른 디스크에 설치하는 데 어려움을 겪어서 다행입니다. 내가 얻는 것은 grub 오류 15 "파일을 찾을 수 없음"입니다. 또한 올바른 UUID도 제공합니다.

sudo blkid
/dev/sda1: LABEL="boot" UUID="b891774a-0b2d-4ab4-bcfa-23a11a97cae5" TYPE="ext2" 
/dev/sda2: UUID="fc34999a-e85d-4c7b-8775-30510eb4c396" TYPE="swap" 
/dev/sda3: LABEL="main" UUID="65a90a0d-a651-4215-8552-0c1859ab61dd" TYPE="ext4"

/dev/sdb새 운영 체제의 menu.lst(on)는 다음과 같습니다.

title Gentoo Linux 3.10.7-r1
uuid b891774a-0b2d-4ab4-bcfa-23a11a97cae5
#root (hd0,0)
kernel /kernel-3.10.7-gentoo root=UUID=65a90a0d-a651-4215-8552-0c1859ab61dd

나도 시도했다

kernel /boot/kernel-3.10.7-gentoo root=UUID=65a90a0d-a651-4215-8552-0c1859ab61dd

그런데 UUID가 바로 부팅 파티션으로 넘어가기 때문에 이건 잘못된 것 같아요.

커널이 정확해야 합니다. 올라가면 알 수 있습니다 dev/sda1.ls

grub  kernel-3.10.7-gentoo

내가 뭘 잘못하고 있는지 어떤 아이디어가 있습니까? 이것은 아마도 매우 기본적일 것입니다. 저는 chroot.


dev/sda1아직 설치하지는 않았지만 grub2도 설치되어 있다는 점을 언급해야 합니다 . grub "명령줄"만 표시됩니다.

답변1

문제는 루트(hd0,0)에 있는 것 같습니다. 이것이 sdb라고 하셨으니 루트의 주석 처리를 해제하고 루트(hd1,0)로 설정해 보십시오.

답변2

오류에 대해 @rMistero에 동의합니다. 이제 grub은 mbr 및 파티션 부트 레코드에서 부팅되지만 해당 파티션의 예상 위치(/boot/grub)에서 기본 모듈을 찾을 수 없기 때문에 기본 모듈을 로드할 수 없습니다. 따라서 grub을 다시 설치하면 이 문제를 해결할 수 있습니다. 가장 좋은 해결책은 grub 레거시 소유자 OS Gentoo(제 말이 맞나요?)로 부팅한 다음 grub을 다시 설치하는 것입니다.
grub2를 사용할 수 있으면 grub2 프롬프트에서 다음 명령을 하나씩 실행하십시오.

set UUID=65a90a0d-a651-4215-8552-0c1859ab61dd

search -u $UUID --set=root
linux /kernel-3.10.7-gentoo root=UUID=$UUID
boot

작동하지 않으면 위 명령을 search -u $UUID이 명령의 출력 과 함께 제공하십시오 search -l main. 또한 Ubuntu 및 Gentoo의 버전, 저장 장치 수, 각 저장 장치에 설치된 운영 체제 및 Windows 설치 여부를 알려줍니다.

답변3

부팅할 때 사용되는 부트로더인 우분투에서 grub-legacy를 사용하고 있는 것 같습니다.

This error is returned if the specified file name cannot be found, 
but everything else (like the disk/partition info) is OK.
Frequently, the error notes a missing kernel image file. 
Make sure that the file it is referring to exists on your boot partition. 

다음은 올바르지 않습니다. 부팅할 파티션을 정의해야 합니다(root 매개변수 사용). 여기서 루트는 주석 처리되었습니다.

uuid b891774a-0b2d-4ab4-bcfa-23a11a97cae5
#root (hd0,0)

uuid 항목을 삭제하고 주석 처리를 해제합니다 root (hd0,0).

젠투 커널이 /dev/sda1에 없으면 (hd0,0)올바른 파티션으로 변경하거나 거기에 커널을 복사해야 합니다.

젠투 커널이 /dev/sda1에 존재한다면 어떤 grub이 사용되는지 확인해야 합니다. sdb의 MBR로 부팅 중이므로 BIOS가 드라이브로 무엇을 인식하는지 알고 싶습니다. 우분투의 루트 hdX는 무엇입니까(hd1,0)?

이제 젠투에 grub2를 설치했으므로 이를 사용할 수 있습니다.

 # Gentoo entry in menu.lst ( in Ubuntu)
 title Gentoo
 root (hd0,0)
 kernel /boot/grub/core.img

https://wiki.gentoo.org/wiki/GRUB_Error_Reference#Grub_Error_15

답변4

grub2의 경우 grub.cfg다음 명령을 실행하여 올바른 결과를 얻을 수 있습니다.

grub2-mkconfig -o /boot/grub2/grub.cfg

커널을 선택하고 /etc/grub.d/구성 파일의 템플릿을 사용하여 구성에 넣습니다 /etc/default/grub. 올바른 MBR을 작성하는 것을 잊지 마세요grub2-install

관련 정보