그럽 구조 프롬프트, 그럽 수리


30

최근에 HDD를 다시 파티션했고 시스템의 GRUB을 손상 시켰습니다. 부팅 할 때 GRUB 복구 프롬프트가 표시되며 정상적으로 부팅하려면 다음 단계를 수행해야합니다.

set root=(hd0,msdos6)
set prefix=(hd0,msdos6)/boot/grub
insmod normal
normal

(이 단계는 다른 게시물에서 발견되었습니다!).

매번 부팅 할 때마다이 작업을 반복하는 데 지쳤습니다. GRUB을 어떻게 영구적으로 수정합니까?


1
두 가지 가능성 : (1) 부팅 복구 (2) Super Grub Rescue Disk 참조 : http://linuxnorth.wordpress.com/2012/02/07/repairing-grub/
CentaurusA

1
부팅 질문에 나열된 단계가 저에게 효과적이었습니다. 그래도 리눅스의 파티션을 올바르게 기억해야합니다.
TheCrazyProgrammer

1
다른 사람들이 update-grub을 수행 한 다음 grub-install / dev / sda를 수행하면 문제가 해결됩니다.
TheCrazyProgrammer

"파일을 찾을 수 없음"에 대한 Karthik 의 답변 참조 : askubuntu.com/questions/443241/…
samis

답변:


11

그룹 구조를 수정하려면 다음 단계를 수행하십시오.

  • 우선 grub을 고칠 수있을 때만 OS를 시작해야합니다.

    #to start OS-->
    error: unknown filesystem.
    Entering rescue mode...
    grub rescue>

    이러한 오류가 발생하면 먼저 "파일 시스템"이 ext2인지 확인해야합니다.

    grub rescue> ls        # type 'ls' and hit enter to see drive partition.
    (hd0) (hd0,msdos6) (hd0,msdos5) (hd0,msdos4) ...   # you will see such things 

이것이 우리의 드라이브입니다. 이제 어느 것이 ext2인지 확인해야합니다.

grub rescue>ls (hd0,msdos6)
error: disk 'hd,msdos6' not found.

“Filesystem is ext2”가 될 때까지 다른 드라이브로 이동하십시오.

grub rescue>ls (hd0,msdos5)
error: disk 'hd,msdos5' not found.
grub rescue>ls (hd0,msdos2)
(hd0,msdos2): Filesystem is ext2        # this is what we want

이제 경로를 설정

grub rescue>set boot=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos6)/boot/grub
grub rescue>insmod normal
grub rescue>normal
  • 이제 우분투에서 명령을 따라 grub을 수정하십시오.

    sudo grub-install /dev/sda
    sudo apt-get update
    # to update grub
    sudo apt-get upgrade

OS에 로그인 한 후 grub을 업데이트해야합니다


1
OP는 이미 자신의 OS로 부팅하는 방법을 알고 있습니다. 이 답변은 더 간결 할 수 있습니다.
Geek

1
이 답변이 도움이되었습니다. 내 문제는 원래 질문과 정확히 같지 않았으므로 추가 정보가 유용했습니다.
retroj

1
+1 KDE Neon 설치 실패로 인한 문제로 해결되었습니다.
대런 루이스

오류 : '/boot/grub/i386-pc/normal.mod'파일을 찾을 수 없습니다. 어떻게해야합니까?
BhushanDhamale

7

나는 실행하려고 할 update-grub빌드하기 위해 grub.conf/ grub.cfg다시.

당신은 또한 사용할 수 grub-install있지만, 이것은 도움이되지 않을 것이라고 생각합니다.

자세한 내용을 보려면 먼저 다음을 실행하여 사용중인 버전 (GRUB 1 또는 2)을 확인하십시오.

dpkg -l | grep grub

GRUB 2가있는 경우 다음 자습서를 사용할 수 있습니다. http://www.dedoimedo.com/computers/grub-2.html

물론 부트 프로세스에 대해 이야기 할 때 GRUB을주의해서 다루어야합니다. 이는 부팅 메커니즘에 민감한 메커니즘입니다.


2
grub-install <correct-drive, i.e. /dev/sda>그리고 update-grub2마침내 우분투 15.04에서 나를 위해 그것을했다
Greg Kramida

6

나에게 update-grub조립하는 것처럼 보이지만 MBR / 부트 섹터를 기본 정보로 업데이트하려면 grub.cfg(재실행)해야 grub-install하거나 (또는 grub-setup?) grub.cfg파일 을 찾는 파티션 과 분명히이 모듈을 사용해야 합니다.


4

GRUB 복구 프롬프트가 표시되면 GRUB 부트 로더가에 포함 된 파티션에서 해당 모듈을 찾을 수 없음을 의미합니다 /boot/grub. 그 이유는 드라이브 MBR 레코드에 맞는 코드 가 작기 때문에 주된 목적은 나머지 부트 로더 코드를 찾아서로드하는 것입니다. 일단 모듈을로드하면 GRUB 메뉴를 표시하고 나머지 부팅 프로세스를 처리 할 수 ​​있습니다. 모듈을 찾을 수 없으면 매우 제한된 구조 프롬프트가 나타납니다.

따라서 재 파티셔닝하면 부트 로더가 부트 모듈을 포함하는 파티션에 대한 참조를 깨뜨 리므로 현재보고있는 것은 완전히 정상입니다.

수동으로 부팅 할 수 있으므로 가장 간단한 수정 방법은 MBR에서 부트 로더를 수동으로 부팅하고 다시 설치하여 파티션에 대한 올바른 참조를 갖도록하는 것입니다. 그렇게하는 방법은 다음과 같습니다.

sudo grub-install /dev/sda

이것은 부팅으로 가정합니다 /dev/sda(대부분의 경우 그렇지 않은 경우 올바른 드라이브로 교체).

이 솔루션은을 사용하는 것보다 훨씬 간단 boot-repair하지만 확실하지 않은 경우 더 적합 할 수 있습니다.


1
이해하기 쉬운 용어로 진행 상황을 설명하는 +1
monotasker

2

가장 간단한 방법은 다음과 같습니다.

sudo apt-get purge grub-pc grub-pc-bin

그때:

sudo apt-get install grub-pc grub-pc-bin

2
이것은 작동하는 슬레지 해머 접근법이지만 부트 로더를 다시 설치하여 파티션에 대한 참조를 업데이트하는 것이 더 간단합니다 (재 파티셔닝으로 인해 손상됨).
bcbc

1

grub 복구 실패의 궁극적 인 경우 해결 : 문제 : 1. i386-pc를 찾을 수 없음 **** 정상 모드가 작동 하지 않습니다 . cp not working search.file not working . Ubuntu 18.04에서도 작동하는 다음 명령으로 모두 해결할 수 있습니다. 1 단계 : 디렉토리가 포함 된 루트 폴더를 찾습니다.

ls

예를 들어 루트 폴더가 (hd0, gpt4)에 있으면 다음을 입력하십시오.

이게 어떻게 생겼는지

ls (hd0, 4)/

일부 파일 또는 폴더가 표시됩니다.

내 루트 파일은 (hd0, gpt4)에 있습니다

운이 좋으면 다음을 수행하십시오.

set root=(hd0, 4)
set prefix=(hd0, 4)/boot/grub/
insmode normal
normal

운이 좋으면 문제를 해결할 것입니다. 때때로 사람들은 1386-pc 폴더를 찾을 수없는 것과 같은 문제가 있습니다. 이 경우 grub 폴더가 어디에 있는지 확인해야합니다. 다음과 같은 문제가있는 경우 :

boot / grub / i386-pc / normal.mod를 찾을 수 없습니다

이 경우 grub2 폴더를 찾아야합니다. grub2가 있고 해당 폴더 안에 i386-pc 폴더가있을 수 있습니다. 그런 다음 입력해야합니다

prefix=(hd0, 4)/grub2/

작동합니다. grub2가없고 i386-pc 폴더를 찾을 수 없으면 다음을 수행하십시오.

grub rescue>set root=(hd0, 4)
grub rescue>set prefix=(hd0, 4)/usr/lib/grub
grub rescue>insmode normal
grub rescue>normal

이 명령을 실행하면 grub 복구 모드가 grub 메뉴 로 이동 합니다. 이제 linux 명령을 실행할 수 있습니다.

리눅스 코먼

grub>set root =(hd0, 4)
grub>set prefix= (hd0, 4)/boot
grub>insmaod linux
grub>linux vmlinuz.....-generic
grub>intrd (hd0, 4)/boot/...-generic
grub>boot

복구 모드가됩니다. 여기에서 사용 가능한 몇 가지 복구 옵션 중에서 선택할 수 있습니다. 도움이되지 않으면 우분투 OS (예 : 우분투 18.04)를 다운로드해야합니다. 다음 링크에서 다운로드 할 수 있습니다. 우분투 링크

부팅 가능한 드라이브를 만들고 해당 라이브 디스크로 컴퓨터를 엽니 다. 문서에 해를 끼치 지 않습니다. 그렇게하는 방법에 대한 비디오를보십시오. 이제 i386-pc 폴더를 찾아야합니다. 그것은있을 것입니다

rootContainingDirectory-usr-lib-grub

이제 i386-pc를 boot / grub / 폴더로 복사하십시오. 다음 유형의 명령을 극복하기 위해 권한 문제가있을 수 있습니다.

sudo nautilus

이제 해당 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 소유자를 우분투 라이브 세션 사용자로 변경하십시오.

비디오를 따르십시오 : 권한 변경

이제 boot / grub 폴더에 붙여 넣은 후 USB 드라이브를 다시 시작하고 제거하십시오. 이번에는 첫 번째 명령 세트 를 사용하면 작동합니다. 는 IF CP의 명령은 다음 작동하고 당신은 또한 GRUB 메뉴에서이 작업을 수행 할 수 있습니다.

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