Jak ponownie zainstalować bootloader grub-efi na Fedorze Linux?

12

Niedawno zainstalowałem Fedorę 18 przy użyciu rozruchu EFI. Podobnie jak inne obecne dystrybucje linuksa, ustawia dla mnie GRUB2.

Mam doświadczenie w ponownej instalacji wersji GRUB BIOS - u, gdy coś pójdzie nie tak. Wiem np. Jak uruchomić dysk ratunkowy, chroot do zainstalowanego systemu, uruchomić grub-installi ewentualnie update-grub/ grubby/ grub-mkconfig.

Jak ponownie zainstalować wersję GRI EFI, gdy coś pójdzie nie tak? (Wiem, że coś pójdzie nie tak: łamię je).

sourcejedi
źródło
Dlaczego zadałeś niejasne pytanie, a następnie natychmiast na nie odpowiedziałeś? Chociaż odpowiedź zawiera przydatne informacje, pytanie naprawdę wymaga wyjaśnienia: wiedza, że coś zmieniłeś, nie jest wystarczająca. Dokładne zrozumienie tego, co zostało zmienione, jest naprawdę konieczne, aby zapewnić dobrą odpowiedź na pytanie.
Rod Smith
@RodSmith dziękuję za odpowiedź na mój e-mail o EFI wcześniej :). I za dodanie komentarza do recenzji. Pytanie, które zacząłem, było dosłownie takie. Mam doświadczenie w ponownej instalacji grub-pc. Chcę mieć taki sam poziom pewności, że wiem, jak odzyskać system EFI. Raz zredagowałem pytanie, aby podkreślić, że chodziło o ponowną instalację gruba ... Myślę, że powinienem spróbować jeszcze raz i wyrazić się jasno na temat mojego motywu.
sourcejedi
Dlaczego używasz gruba, jeśli masz UEFI? Jaką zaletę zapewnia połączenie dwóch modułów ładujących?
Marco,
@Marco UEFI nie jest programem ładującym obsługiwanym przez jakąkolwiek dystrybucję linuksową, którą znam! Fedora automatycznie aktualizuje GRUB, gdy instaluje nowe jądro i instaluje niezbędne opcje uruchamiania, takie jak root =. Nie robi tego w przypadku EFI. I mógłby porzucić wsparcie dystrybucji i używać automatycznego skanowania refind za wagowo opcji / kernel w refind.conf , ale to nadal będzie łańcuchowym ładującym / menedżerów! Microsoft nie podpisuje sterowników GPL, więc Secure Boot musi w każdym razie przejść do SHIM-> boot loader-> Linux, a naprawdę chcesz menu rozruchu po części UEFI-> SHIM.
sourcejedi
Po zainstalowaniu nowego jądra wystarczy jedno wywołanie, efibootmgraby zaktualizować wpis w menu UEFI. Nie wiem o rEFInd ani SHIM. Ja osobiście nie łączę wielu programów ładujących. Wszystkie systemy operacyjne zostały dodane do menu rozruchowego UEFI i działa idealnie dobrze.
Marco

Odpowiedzi:

9

Po pierwsze, będziesz potrzebował systemu Linux uruchamianego przez EFI . Jeśli nadal masz oryginalny nośnik instalacyjny (dysk CD / DVD / USB), zwykle powinien on zawierać odpowiedni system ratunkowy. Może nawet mieć opcję naprawy jednym kliknięciem :).

Alternatywnie społeczność Ubuntu zapewnia obraz automatycznej naprawy rozruchu . Twierdzi, że wspiera Fedorę. Jeśli chcesz wiedzieć, co to właściwie robi, sugeruję przeczytanie wcześniej tego wyjaśnienia strony trzeciej .

Jednak użyłem ogólnego systemu ratunkowego z narzędziami konsoli. Oprócz obsługi rozruchu EFI, upewniłem się, że efibootmgrjest na liście pakietów . To się nazywało GRML i było oparte na Debianie. Oto informacje o narzędziach konsoli i grub-efi, które odkryłem podczas ratowania mojego systemu Fedora:

  1. Podczas uruchamiania systemu Fedora 18 uruchomionego przez EFI, nie uruchamiajgrub2-install . Będzie twierdził, że zakończy się sukcesem, ale psuje system startowy grub-efi Fedory.

    • Plik /boot/EFI/fedora/grub.efijest instalowany przez pakiet grub-efi. Jeśli nie chcesz go ponownie zainstalować, używać yum reinstall grub-efi. (Aby to zrobić od ogólnego systemu ratownictwa, można to zrobić po mounting i chrooting do zainstalowanego systemu Fedora). Grub-efi Fedory używa pliku konfiguracyjnego /boot/EFI/fedora/grub.cfg(prawdopodobnie wygenerowanego przez grubby). Fedora na EFI nie wygeneruje pliku w /boot/grub2/grub.cfg. Uruchomienie grub2-installzastąpi grub.efi obrazem, który próbuje odczytać /boot/grub2/grub.cfg, a zatem zakończy się niepowodzeniem.

    • grub2-installinstaluje pozycję rozruchową EFI dla grub.efi. Jeśli jednak nie wyłączyłeś Bezpiecznego rozruchu w oprogramowaniu układowym z certyfikatem Windows 8, uruchomienie tego wpisu nie powiedzie się. Musisz uruchomić shim.efizamiast tego (zignoruj shim-fedora.efi, nie jestem pewien, co to dokładnie jest). Patrz poniżej.

  2. Możesz utracić wpis uruchamiania EFI dla Fedory, jeśli zresetujesz ustawienia oprogramowania układowego. (Ręcznie lub przez aktualizację oprogramowania wewnętrznego lub z powodu wadliwego oprogramowania - ten ostatni został zgłoszony na wolności). Oto jak ręcznie utworzyć pozycję rozruchową EFI dla Fedory za pomocą bezpiecznego rozruchu:

    $ sudo efibootmgr -c -L Fedora -d /dev/sda -p 100 -l \\EFI\\fedora\\shim.efi
    

    W tym przykładzie użyto partycji o numerze 100 na pierwszym dysku standardowym rozpoznawanym przez system Linux. Powinieneś dostosować opcje -d /dev/sdai -p 100zidentyfikować system plików, w którym montuje Fedora /boot/efi. To jest partycja systemowa EFI. Instalator Fedory utworzy dedykowanego ESP dla instalacji Fedory, który będzie używany, niezależnie od ESP używanych przez jakikolwiek inny system operacyjny. ( Różni się to od Ubuntu i OpenSUSE ).

    Uwaga: efibootmgrpolecenie wymaga uruchomienia go z systemu uruchamianego przez EFI.

sourcejedi
źródło
„Uwaga: polecenie efibootmgr wymaga uruchomienia go z systemu uruchamianego przez EFI.” - w tym przypadku w jaki sposób „ładuje się” system uruchamiany przez EFI? (mój obecny USB nie uruchamia się po wybraniu opcji UEFI)
jozxyqk
1
Instalowanie multimediów to obsługiwany sposób na uruchomienie systemu. Myślę, że powinieneś być także w stanie uruchomić system EFI bez instalowania zmiennych oprogramowania EFI, wymaga to utworzenia /EFI/boot/bootx64.efi(przy założeniu 64-bitowego UEFI). Dokładnie tak działa nośnik instalacyjny USB (cokolwiek innego niż CD / DVD). Może tam być wystarczające skopiowanie shim.efi, ale nie jestem pewien, czy jest skonfigurowany do pracy, czy nie.
sourcejedi
5

Jeśli korzystasz z podwójnego uruchamiania systemu Windows z interfejsem UEFI, istnieje inna możliwość. który nie wymaga dysku odzyskiwania.

Możesz uruchomić system Windows, otworzyć wiersz poleceń z uprawnieniami administratora i uruchomić następujące polecenie:

bcdedit /set {bootmgr} path \EFI\fedora\shim.efi

Spowoduje to zastąpienie wpisu rozruchu systemu Windows w UEFI tym, który uruchamia się w GRUB. Zakładając, że menu GRUB-a zawiera działającą pozycję dla systemu Windows, masz teraz działający tryb podwójnego rozruchu :-). Mam nadzieję, że to wszystko powinno działać bez wyłączania Bezpiecznego rozruchu.

Właśnie musiałem to zrobić po aktualizacji systemu Windows i wydaje się, że to załatwiło sprawę.

Źródło i więcej informacji: http://nwrickert2.wordpress.com/2013/05/13/notes-on-uefi-windows-and-linux/ .

ternaryOperator
źródło
Ewentualnie zapoznaj się z dwoma rozwiązaniami opisanymi na stronie askubuntu.com/a/799734/462004 (przy użyciu EasyUEFI lub jak zmienić kolejność rozruchu za pomocą bcdedit.exezamiast pozycji systemu Windows, tak jak robi to Twoje polecenie).
phk
1

https://fedoraproject.org/wiki/GRUB_2?rd=Grub2#Updating_GRUB_2_configuration_on_UEFI_systems :

dnf reinstall grub2-efi grub2-efi-modules shim

(zakładając, że masz już zainstalowane te pakiety i istnieje poprzednia konfiguracja)


źródło
Dzięki! „Utwórz pozycję menu rozruchu: TL; DR: Powinno to nastąpić automatycznie” - yay.
sourcejedi
O tak, działa: grub2-mkconfig -o /boot/grub2/grub.cfg(lub w systemie (U) EFI byłoby to jakoś grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg. Nie działało?
Przepraszam, miałem na myśli, że wiki oznacza, że ​​ponowna instalacja pakietu grub ponownie tworzy zmienne EFI, które są niezbędne do uruchomienia GRUB-a (które mogą wymagać odtworzenia, np. Jeśli z jakiegoś powodu zresetujesz ustawienia „BIOS”). Nie sądzę, żebym próbował dnf reinstall, a jeśli to prawda, brzmi całkiem nieźle.
sourcejedi
0

Po prostu tutaj wszystko jest proste:

yum reinstall grub2-efi

NIE uruchamiaj grub2-install, bo to zepsuje system, pokazując ci puste menu rozruchowe grub (to dlatego, że grub2-install da ci zły / ogólny plik .efi, który próbuje załadować grub.cfg z niewłaściwej lokalizacji.

Ponadto możesz zaktualizować grub-config, jeśli przeprowadziłeś migrację na nowe dyski lub zmieniłeś partycję / układ z:

grub2-mkconfig -o /boot/EFI/fedora/grub.cfg
Areeb Soo Yasir
źródło
Miło przeczytać jakieś potwierdzenie :). Zaproponowałem edycję pokazującą, jak należy używać grub2-mkconfig -o. Nie jestem jednak pewien, jak użyteczna jest prosta odpowiedź - nie, że moja jest bardziej przydatna, ale zakłada to, że nadal możesz w jakiś sposób uruchomić system Fedora, lub zauważyłeś, że popełniłeś błąd przed zamknięciem. (Moja odpowiedź na pytania o ogólne dyski ratunkowe, ale AFAIK musisz chrootować do instalacji, upewniając się, że zamontujesz potrzebne systemy plików ... to miła rzecz w wyspecjalizowanym systemie ratunkowym, takim jak instalator Debiana, robi to mount + chroot dla Ciebie).
sourcejedi