13.10에서 14.04로 업그레이드하면 Grub이 중단되었습니다.


11

UEFI 시스템에 이중 부팅 Ubuntu + Windows 8이 있습니다. 13.10에서 Ubuntu 14.04로 업그레이드 할 때까지 모든 것이 정상이었습니다.

이제 PC를 부팅 할 때 얻는 것은 다음과 같은 grub 구조 화면입니다.

Failed to open \EFI\Microsoft\Boot\grubx64.efi - 800000000000000E
Failed to load image
Failed to open \EFI\Microsoft\Boot\MokManager.efi.efi - 800000000000000E
Failed to load image
Welcome to GRUB!

error: symbol 'grub_term_highlight_color' not found.
grub rescue> 

라이브 CD (13.10 또는 14.10)에서 부팅 복구를 사용하면 오류가 발생했음을보고하고이 보고서를 생성합니다. http://paste2.org/Y8mDwa0M

(부팅 복구는 우분투 13.10에서 패키지를 설치할 것이라고 말합니다)

그러나 아무것도 변하지 않습니다.

부팅 할 때 f12 키를 누르면 hdd, usb, dvd reader 중에서 선택할 수있는 BIOS 화면 (Boot Menu)이 표시되며 HDD를 클릭하면 세 가지 선택이 있습니다.

부팅 할 장치를 선택하십시오 :

Windows Boot Manager 
ubuntu
Ubuntu

Windows 옵션은 grub 구조로 되돌아갑니다.

다른 두 가지 옵션을 사용하면 우분투를 시작할 수있는 창 메뉴가 있지만 창 옵션이 작동하지 않습니다.

더 이상 무엇을해야할지 모르겠다

업데이트 :

답변에 감사드립니다. 실제로 모든 것을 시도했습니다 (USB 스틱에 다른 버전의 Ubuntu에서 5 번 이상 GRUB을 다시 설치하고 부팅 복구를 여러 번 사용했지만 아무 것도 작동하지 않았습니다)

결국 나는 rEFInd ( http://www.rodsbooks.com/refind/getting.html )를 사용하고 있습니다.이 창에서 우분투를 시작할 수 있지만 창을 자체적으로 시작할 수 있습니다. rEFInd 메뉴 사용.

그러나 물론 이상적인 솔루션은 아닙니다.

업데이트 2 :

디스크가 하나뿐입니다.

여기에 이미지 설명을 입력하십시오

업데이트 3 :

이것은 grub을 설치하거나 grub-install을 실행할 때 나타나는 오류입니다.

Installing for i386-pc platform. 
grub-install: Warning: This GPT partition label has no BIOS Boot Partition, the embed is not possible. 
grub-install: Warning: This embed is not possible. GRUB can only be installed in this configuration using blocklist. The blocklist however, are not reliable and it is not recommended to use ..
Installation completed, no errors reported.
Generating grub configuration file ... 
Found linux image: / boot/vmlinuz-3.13.0-24-generic 
Found initrd image: / boot/initrd.img-3.13.0-24-generic 
Found linux image: / boot/vmlinuz-3.11.0-19-generic 
Found initrd image: / boot/initrd.img-3.11.0-19-generic 
Found linux image: / boot/vmlinuz-3.11.0-7-generic 
Found initrd image: / boot/initrd.img-3.11.0-7-generic 
Found linux image: / boot/vmlinuz-3.11.0-5-generic 
Found initrd image: / boot/initrd.img-3.11.0-5-generic 
Found linux image: / boot/vmlinuz-3.11.0-4-generic 
Found initrd image: / boot/initrd.img-3.11.0-4-generic 
Found linux image: / boot/vmlinuz-3.11.0-3-generic 
Found initrd image: / boot/initrd.img-3.11.0-3-generic 
Found linux image: / boot/vmlinuz-3.11.0-2-generic 
Found initrd image: / boot/initrd.img-3.11.0-2-generic 
Found Windows Boot Manager on / dev/sda2 @ / EFI / Microsoft / Boot / Bootmgfw.efi 
Adding boot menu entry for the EFI firmware configuration 
done

(이탈리아어 번역)



이 명령을 시도했지만 chroot에 붙어 있습니다. "chroot :`/ bin / bash '명령을 실행하지 못했습니다 : Exec 형식 오류

14.04로가는 것과 같은 오류가 발생했습니다. wiki.ubuntuusers.de/GRUB_2/Reparatur , freeseek 의 답변과 거의 동일

1
@Larry 아래 게시물 3, 방법 3 # 1이 문제이므로 32 비트 루트를 사용하여 64 비트 시스템을 복구 할 수 없습니다.
eyoung100

답변:


7

14.04에서 깨진 grub으로 이것을 테스트하지는 않았지만 다음 지침을 사용하여 문제가 발생하지 않았습니다.
https://wiki.ubuntu.com/Grub2#Recover

우선, 라이브 CD 또는 USB에서 시스템을 시작해야합니다. 그때

" 방법 3-CHROOT

이 설치 방법은 chroot 명령을 사용하여 손상된 시스템 파일에 액세스합니다. chroot 명령이 실행되면 LiveCD는 손상된 시스템의 /를 자체 시스템으로 취급합니다. chroot 환경에서 실행되는 명령은 LiveCD의 파일 시스템이 아닌 손상된 시스템 파일 시스템에 영향을줍니다.

1) LiveCD 데스크탑 (Ubuntu 9.10 이상 )으로 부팅하십시오. Live CD는 수정중인 시스템과 동일해야합니다 (32 비트 또는 64 비트). 그렇지 않으면 chroot가 실패합니다.

2) 터미널을여십시오 (응용 프로그램> 보조 프로그램> 터미널).

3) 정상적인 시스템 파티션을 결정하십시오-(스위치는 소문자 "L"입니다)

sudo fdisk -l

확실하지 않으면 다음을 실행하십시오.

df -Th  

올바른 디스크 크기와 ext3 또는 ext4 형식을 찾으십시오.

4) 일반 시스템 파티션을 마운트하십시오.

올바른 파티션 (sda1, sdb5 등)으로 대체하십시오.

sudo mount /dev/sdXX /mnt  

예 : sudo mount / dev / sda1 / mnt

5) 별도의 부트 파티션이있는 경우에만 : sdYY는 / boot 파티션 지정입니다 (예 : sdb3).

sudo 마운트 / dev / sdYY / mnt / boot 
6) 중요한 가상 파일 시스템을 마운트하십시오.
sudo 마운트 --bind / dev / mnt / dev
sudo 마운트 --bind / dev / pts / mnt / dev / pts
sudo 마운트 --bind / proc / mnt / proc
sudo 마운트 --bind / sys / mnt / sys 
7) 일반 시스템 장치에 Chroot :

sudo chroot / mnt 

8) /boot/grub/grub.cfg가 없거나 올바르지 않은 경우 다음을 사용하여 만듭니다.

업데이트-그럽 

9) GRUB 2를 다시 설치하십시오.

올바른 장치 (sda, sdb 등)로 대체하십시오. 파티션 번호를 지정하지 마십시오.

grub-install / dev / sdX 

10) 설치를 확인하십시오 (예 : sda와 같은 올바른 장치를 사용하십시오. 파티션을 지정하지 마십시오).

sudo grub-install --recheck / dev / sdX 

11) chroot 종료 : 키보드의 CTRL-D

12) 가상 파일 시스템 마운트 해제 :

sudo umount / mnt / dev / pts
sudo umount / mnt / dev
sudo umount / mnt / proc
sudo umount / mnt / sys 

13) 별도의 / boot 파티션을 마운트 한 경우 :

sudo umount / mnt / boot 

14) LiveCD의 / usr 디렉토리를 마운트 해제하십시오 :

sudo umount / mnt / usr 

15) 마지막 장치 마운트 해제 :

sudo umount / mnt 

16) 재부팅하십시오.

sudo 재부팅 
"

또한 그럽을 고치는 다른 방법들도 있습니다 : 그럽을 어떻게 고칠 수 있습니까? (Windows 설치 후 Ubuntu를 다시 얻는 방법은 무엇입니까?)


1
3, 4, 9 단계가 나를 위해 일했습니다. 감사합니다
ezdazuzena

1
부팅 수리 비참하게 실패 - 그러나 이것은 나를 위해 완벽하게 일
존 Skarpeteig

2

동일한 오류 "Grub_term_highlight_color '를 찾을 수 없음"이 Grub 구조에 붙어 있습니다. 부팅 복구를 시도했지만 (권장 옵션) 작동하지 않았습니다!

해결 방법 : 부팅 가능한 boot-repair.iso ( http://sourceforge.net/projects/boot-repair-cd/ )를 다운로드 하여 부팅 가능한 USB 디스크를 만들었습니다. 그것에서 부팅하고 인터넷에 연결하고 "Recommended Repair"를 시작한 다음 몇 단계 (지우기 / 삭제 된 GRUB 및 새 버전 다시 설치)의 지침을 따라 나에게 도움이되었습니다! 귀하의 경우 grub을 제거한 다음 sdb1 대신 sda8에 다시 설치해야한다고 생각합니다.


부팅 복구 CD 이미지를 다운로드 했습니다. 우분투 설치가 x64이므로 x64를 사용했습니다. 그런 다음 unetbootin을 통해 ISO를 설치했습니다 . 정기적 인 수리와 비올라를 수행했습니다!
Meta

부팅 복구 기능이있는 부팅 가능한 디스크 (64 비트 14.04 데스크톱 버전)도 13.10에서 14.04로 업그레이드 한 후에도 효과가있었습니다. 내 부분에 대해서는 여기 의 지침 (두 번째 옵션)을 따르고 도구에서 "권장 수리"를 클릭 한 다음 그럽이 갑자기 다시 작동했습니다!
Krøllebølle

2

나는 같은 문제가 있었다. 내 생각에, 두 개의 하드 드라이브가 있기 때문에 시스템이 이전 버전의 GRUB이 설치된 잘못된 드라이브에서 시작하려고합니다. 내 솔루션은 USB 스틱으로 Ubuntu를 시작하는 것입니다 (어떤 버전은 중요하지 않습니다). 일단 시작하면 다음 명령이 루트로 실행됩니다.

mkdir /tmp/drive
sudo mount /dev/sdX1 /tmp/drive
sudo mount --bind /dev /tmp/drive/dev
sudo mount --bind /proc /tmp/drive/proc
sudo mount --bind /sys /tmp/drive/sys
sudo chroot /tmp/drive
dpkg-reconfigure grub-pc

여기서 sdX1은 시스템이 설치된 드라이브 여야합니다. 마지막 명령을 실행할 때 sdX 드라이브를 선택해야하지만 여러 번 실행하면 각 드라이브에 새 버전의 grub이 설치되어 마음에들 것입니다.


마운트를 얻습니다 : 마운트 포인트 / tmp / drive / dev가 존재하지 않습니다
alemur

1
@ Akmur 당신은-바인드를 잊어 버렸거나, 잘못된 드라이브를 마운트 했습니까? --bind는 USB 드라이브의 파일 시스템을 가져 와서 / dex / sdX1 / dev를 usedevice / dev로 대체합니다.
eyoung100

@ Akmur 아마도 잘못된 파티션을 마운트했을 것입니다. sdX1을 언급했을 때, 이것은 이미 dev, proc, sys 디렉토리를 포함하고있는 부트 파티션을 참조해야합니다. 이들이 없으면 잘못된 파티션을 마운트 한 것입니다. 올바른 파티션을 마운트했다고 생각되면 mkdir로 누락 된 디렉토리를 작성하십시오.
freeseek

1

13.10에서 14.04로 업그레이드하는 동안 동일한 오류가 발생했습니다. 이 지시 사항은 약간 어려워 보였다.

Super Grub Disk가있는 부팅 가능한 USB 드라이브를 만들었습니다. http://www.supergrubdisk.org/

그것에서 부팅. 부팅시 설치된 OS를 감지하도록 지시했습니다. 우분투 14.04 설치를 찾았으므로 부팅하도록 지시했습니다. 아무 문제없이 부팅했습니다.

시스템에 이미 부트 복구가 설치되어 있습니다. https://sourceforge.net/p/boot-repair

그것을 실행하고 기본 변경 사항을 수락하십시오.

일시 휴업. USB 드라이브를 슬롯에서 꺼내고 전원을 누르고 숨을 참아 기다렸습니다.

시스템이 정상적으로 부팅되었습니다! 문제 해결됨.


OP는 Boot Repair가 작동하지 않는다고 말 했으므로 아마도 대답이 아닐 것입니다.
mikewhatever

1

내 생각 엔 EFI 파티션에 오래된 EFI 파일이 있습니다. 귀하의 사건을 해결할 것으로 의심되는 EFI 상황에 특정한 런치 패드 버그 가 있습니다 . 다른 모든 제안이 없었던 후에 그것은 나를 위해 일했습니다. 수정은 EFI 파일을 수동으로 업데이트하는 것 입니다. 아래는 연습입니다. 대신 EFI 파티션을 대체해야합니다 /dev/sda1.

  1. 라이브 CD로 부팅
  2. xterm 열기
  3. parted를 사용하여 EFI 파티션을 결정하십시오 sudo parted -l(다음 단계에서 / dev / sda1을 대체하십시오).
  4. EFI 파티션을 마운트하십시오. sudo mount /dev/sda1 /mnt
  5. Boot EFI 파일을 업데이트하십시오. sudo cp /mnt/EFI/ubuntu/grubx64.efi /mnt/EFI/Boot/bootx64.efi

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