Uaktualnienie z 13.10 do 14.04 złamało Grub

11

Mam system Ubuntu + Windows 8 z podwójnym uruchomieniem w systemie UEFI. Wszystko było w porządku, dopóki nie uaktualniłem do Ubuntu 14.04 z 13.10.

Teraz, gdy uruchamiam komputer, otrzymuję ekran ratowania gruba, taki jak ten, z następującymi elementami:

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> 

Użycie naprawy rozruchu z dysku CD na żywo (13.10 lub 14.10) informuje o wystąpieniu błędu i tworzy ten raport: http://paste2.org/Y8mDwa0M

(Naprawa rozruchu mówi, że zainstaluje pakiety z Ubuntu 13.10)

ale nic się nie zmienia.

Jeśli naciśniesz klawisz F12 podczas rozruchu, przejdę do ekranu bios (menu rozruchu), w którym mogę wybrać dysk twardy, USB, czytnik DVD i jeśli kliknę na dysk twardy, dostanę trzy opcje:

Wybierz urządzenie do uruchomienia:

Windows Boot Manager 
ubuntu
Ubuntu

Opcja Windows zabiera mnie z powrotem na ratunek gruba.

Z pozostałymi dwiema opcjami przechodzę do menu gruba, w którym mogę uruchomić Ubuntu, ale opcja okna nie działa

Nie wiem już, co mam robić

Aktualizacja :

Dzięki za odpowiedzi, faktycznie wypróbowałem wszystkie z nich (ponownie zainstalowałem grub ponad 5 razy z różnych wersji Ubuntu na pamięciach USB i wiele razy użyłem naprawy rozruchu, ale nic nie działało)

Na koniec korzystam z rEFInd ( http://www.rodsbooks.com/refind/getting.html ), który pozwala mi dostać się do gruba, z którego mogę uruchomić Ubuntu (ale nie Windows) i uruchamiać okna samodzielnie za pomocą menu REFERENCJA.

Ale oczywiście nie jest to idealne rozwiązanie

Aktualizacja 2:

Mam tylko jeden dysk:

wprowadź opis zdjęcia tutaj

Aktualizacja 3:

ten błąd pojawia się, gdy próbuję zainstalować grub lub uruchomić 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

(przetłumaczone z włoskiego)

Matteo Pagliazzi
źródło
Próbowałem tych poleceń, ale utknąłem na chroocie.
Wystąpił ten sam błąd w przypadku 14.04, to pomaga mi: wiki.ubuntuusers.de/GRUB_2/Reparatur , prawie tak samo jak odpowiedź freeseek
1
@ Larry Zobacz post poniżej, Metoda 3 # 1 jest twoim problemem, nie możesz użyć 32-bitowej zmiany roota, aby naprawić 64-bitowy system.
eyoung100

Odpowiedzi:

7

Nie przetestowałem tego ze złamanym grubem w 14.04, ale nigdy nie miałem kłopotów, korzystając z tych instrukcji:
https://wiki.ubuntu.com/Grub2#Recover

Przede wszystkim musisz uruchomić system z płyty CD lub USB na żywo. Następnie

METODA 3 - CHROOT

Ta metoda instalacji wykorzystuje komendę chroot, aby uzyskać dostęp do plików uszkodzonego systemu. Po wydaniu polecenia chroot LiveCD traktuje uszkodzony system / jako swój własny. Polecenia uruchamiane w środowisku chroot wpłyną na uszkodzone systemy plików, a nie na systemy LiveCD.

1) Uruchom komputer na pulpicie LiveCD (Ubuntu 9.10 lub nowszy). Pamiętaj, że Live CD musi być taki sam jak system, który naprawiasz - 32-bitowy lub 64-bitowy (jeśli nie, chroot zakończy się niepowodzeniem).

2) Otwórz terminal (Aplikacje> Akcesoria> Terminal).

3) Określ swoją normalną partycję systemową - (przełącznik to mała litera „L”)

sudo fdisk -l

Jeśli nie jesteś pewien, biegnij

df -Th  

Poszukaj właściwego rozmiaru dysku i formatu ext3 lub ext4.

4) Zamontuj normalną partycję systemową:

Zastąp poprawną partycję: sda1, sdb5 itp.

sudo mount /dev/sdXX /mnt  

Przykład: sudo mount / dev / sda1 / mnt

5) Tylko jeśli masz oddzielną partycję rozruchową: sdYY to oznaczenie partycji / boot (na przykład sdb3)

sudo mount / dev / sdYY / mnt / boot 
6) Zamontuj krytyczne wirtualne systemy plików:
sudo mount --bind / dev / mnt / dev
sudo mount --bind / dev / pts / mnt / dev / pts
sudo mount --bind / proc / mnt / proc
sudo mount --bind / sys / mnt / sys 
7) Chroot na normalnym urządzeniu systemowym:

sudo chroot / mnt 

8) Jeśli nie ma /boot/grub/grub.cfg lub jest niepoprawny, utwórz go za pomocą

update-grub 

9) Zainstaluj ponownie GRUB 2:

Zastąp właściwe urządzenie - sda, sdb itp. Nie podawaj numeru partycji.

grub-install / dev / sdX 

10) Sprawdź instalację (użyj poprawnego urządzenia, na przykład sda. Nie określaj partycji):

sudo grub-install --recheck / dev / sdX 

11) Wyjdź z chroot: CTRL-D na klawiaturze

12) Odmontuj wirtualne systemy plików:

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

13) Jeśli zamontowałeś osobną partycję / boot:

sudo umount / mnt / boot 

14) Odmontuj katalog LiveCD w katalogu / usr:

sudo umount / mnt / usr 

15) Odmontuj ostatnie urządzenie:

sudo umount / mnt 

16) Uruchom ponownie.

sudo restart 

Są też inne sposoby naprawy gruba: Jak mogę naprawić gruba? (Jak odzyskać Ubuntu po zainstalowaniu systemu Windows?)

desgua
źródło
1
Krok 3, 4 i 9 wykonały dla mnie pracę. Dzięki
ezdazuzena
1
naprawa buta nie powiodła się - ale to zadziałało dla mnie bezbłędnie
Jon Skarpeteig
2

Miał ten sam błąd „nie znaleziono symbolu„ grub_term_highlight_color ””, utknął na ratunek Grub. Próbowałem naprawy rozruchu (zalecana opcja), ale nie działała!

Rozwiązanie: Pobrano bootowalny boot-repair.iso ( http://sourceforge.net/projects/boot-repair-cd/ ) i utworzono rozruchowy dysk USB. Uruchomiłem go i połączyłem z Internetem i uruchomiłem „Zalecaną naprawę”, a następnie postępowałem zgodnie z instrukcjami w kilku krokach (usunięto / odinstalowano gruba, a następnie ponownie zainstalowano nową wersję), co zadziałało dla mnie! Myślę, że w twoim przypadku grub powinien zostać odinstalowany, a następnie ponownie zainstalowany na sda8 zamiast sdb1.

użytkownik191413
źródło
to działa dla mnie: Pobrałem obraz płyty CD z naprawą rozruchu - użyłem x64, ponieważ instalacja Ubuntu to x64. Następnie zainstalowany ISO przez unetbootin . Przeprowadzane regularne naprawy i altówka!
Meta
Dysk aktualizacyjny (64 bity 14.04 wersja Desktop) z naprawą rozruchu również działał dla mnie, po aktualizacji z 13.10 do 14.04. Z mojej strony postępowałem zgodnie z instrukcjami tutaj (druga opcja) i kliknąłem „Zalecana naprawa” w narzędziu, a potem grub znowu zadziałało!
Krøllebølle,
2

Miałem ten sam problem. Domyślam się, że skoro mam dwa dyski twarde, system próbuje uruchomić z niewłaściwego dysku, na którym zainstalowana jest stara wersja GRUB-a. Moim rozwiązaniem było uruchomienie Ubuntu z pamięcią USB (nie ma znaczenia, która wersja). Po uruchomieniu te polecenia to zrobią, uruchom jako root:

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

Gdzie sdX1 musi być dyskiem, na którym zainstalowany jest system. Kiedy uruchomisz ostatnie polecenie, powinieneś wybrać dysk sdX, ale myślę, że uruchomienie go wiele razy spowoduje zainstalowanie nowej wersji gruba na każdym dysku i da ci spokój.

freeseek
źródło
Dostaję mount: mount point / tmp / drive / dev nie istnieje
alemur
1
@Akmur zapomniałeś - być może ewentualnie zamontowałeś niewłaściwy dysk? --bind bierze system plików na dysk USB i zastępuje / dex / sdX1 / dev z usedevice / dev
eyoung100
@Akmur prawdopodobnie zamontowałeś niewłaściwą partycję. Kiedy wspomniałem o sdX1, musi to odnosić się do partycji rozruchowej, która powinna już zawierać katalogi dev, proc, sys. Jeśli ich nie ma, najprawdopodobniej instalujesz niewłaściwą partycję. Jeśli uważasz, że masz zainstalowaną odpowiednią partycję, może po prostu idź i utwórz brakujące katalogi za pomocą mkdir.
freeseek
1

Miałem ten sam błąd podczas aktualizacji z 13.10 do 14.04. Te instrukcje wyglądały dla mnie trochę zniechęcająco.

Ostatecznie stworzyłem rozruchowy dysk USB z dyskiem Super Grub Disk. http://www.supergrubdisk.org/

Uruchomiony z tego. Podczas uruchamiania powiedział, aby wykryć zainstalowane systemy operacyjne. Znalazłem moją instalację Ubuntu 14.04, więc kazałem jej to uruchomić. Uruchomiono bez problemu.

Mam już Boot Repair zainstalowany w moim systemie. https://sourceforge.net/p/boot-repair

Uruchomiłem to i zaakceptowałem domyślne zmiany.

Zamknąć. Wyjęłam napęd USB z gniazda, nacisnąłem zasilanie i czekałem z wstrzymanym oddechem.

System uruchomił się normalnie! Problem rozwiązany.

Alan
źródło
OP stwierdził, że naprawa rozruchu nie działała, więc prawdopodobnie nie jest to odpowiedź.
mikewh
1

Domyślam się, że masz nieaktualne pliki EFI na partycji EFI. Istnieje błąd startera specyficzny dla sytuacji EFI, która, jak podejrzewam, dotyczy twojej sprawy. To zadziałało dla mnie po tym, jak inne sugestie się nie sprawdziły. Rozwiązaniem jest ręczna aktualizacja plików EFI . Poniżej znajduje się przewodnik. Pamiętaj, że musisz zastąpić partycję EFI zamiast /dev/sda1.

  1. Uruchom komputer na żywo
  2. Otwórz Xterm
  3. Użyj parted, aby określić partycję EFI: sudo parted -l(zamień na / dev / sda1 w następnym kroku)
  4. Zamontuj partycję EFI: sudo mount /dev/sda1 /mnt
  5. Zaktualizuj plik Boot EFI: sudo cp /mnt/EFI/ubuntu/grubx64.efi /mnt/EFI/Boot/bootx64.efi
jrennie
źródło