Jak mogę uruchomić laptopa HP w celu uruchomienia z GRUB-a z nowego pliku EFI?

28

Mam laptopa HP Pavilion Sleekbook 14, na którym zainstalowałem podwójny rozruch Ubuntu 12.10 z oryginalnym systemem Windows 8. Użyłem naprawy rozruchu, aby skonfigurować rozruch z GRUB-a.

Mój problem polega na tym, że nie udało mi się go uruchomić bezpośrednio z nowego pliku efi, który został utworzony. Rozejrzałem się po opcjach uruchamiania na ekranie bios, ale nie daje mi to wyboru dla Ubuntu. Jedynym sposobem, aby uruchomić system Ubuntu, jest naciśnięcie klawisza F9 po włączeniu systemu, a następnie ręczne przejście do pliku EFI Ubuntu. To działa, ale jeśli nie będę uważnie obserwować, uruchomi się w systemie Windows.

Po zakończeniu uruchamiania naprawy rozruchu, powiedział mi, aby uruchomić z sda2 / EFI / ubuntu / shimx64.efi Widziałem kilka sugestii, że powinienem przenieść ten plik w miejsce okna bootmgfw.efi, ale obawiam się, że będę zepsuć rzeczy i nie być w stanie uruchomić instalacji systemu Windows 8. Chociaż już nie lubię win8 bardziej niż win7, od czasu do czasu potrzebuję go do kilku zadań ...

Szczegóły mojej naprawy rozruchu znajdują się tutaj: http://paste.ubuntu.com/1418009/

maddentim
źródło
shimx64.efi działało dla mnie, chociaż w moim przypadku Ubuntu Gnome nie uruchomił się po instalacji i musiał wybrać plik, tworząc nową opcję rozruchu w BIOS-ie.
timkofu
Istnieje wiele odpowiedzi na temat systemu Windows, czy próbujesz uruchomić system Linux lub Windows?
Evan Carroll
wiele złych odpowiedzi niepotrzebnie skomplikowanych z powodu problemów z oknami wystarczy zmienić nazwę efi sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efigruba z odpowiedzi @Vitor Abella
Evan Carroll

Odpowiedzi:

29

Miałem ten sam problem z HP Pavilion g6 podczas próby podwójnego rozruchu Ubuntu 12.04.3 LTS i Windows 8. Oznacza to, że nawet po „pomyślnym” uruchomieniu Boot-Repair nadal miałem rozruch komputera przenośnego bezpośrednio do Windows 8. Jeśli nacisnąłem F9, zanim pojawił się symbol HP, mogłem dostać się do menu rozruchowego (menu HP? Nie wiem ...), a następnie wybrać pozycję „Ubuntu”, która z kolei zabrała mnie do GRUBA 2 i wreszcie moja instalacja Ubuntu.

Mimo to chciałem mieć możliwość rozruchu komputera bezpośrednio do Linuksa, bez potrzeby interwencji użytkownika.

Ostatecznie powyższa odpowiedź Rod Smitha , w połączeniu z informacjami, które znalazłam na innym forum, załatwiła sprawę. Mam wyłączony bezpieczny rozruch, a także starszy rozruch.

Oto co zrobiłem:

  • Uruchomiłem się w mojej instalacji Ubuntu za pomocą klawisza F9 na starcie, aby móc wybrać moduł ładujący.
  • W Ubuntu otworzyłem terminal.
  • Za pomocą poniższego polecenia sprawdziłem, gdzie znajduje się moduł ładujący Windows:

    $ sudo efibootmgr -v
    
  • W moim przypadku, oryginalny program rozruchowy był tu: /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi. Pamiętaj, że na komputerze może znajdować się w innym miejscu. Jeśli tak, musisz dostosować poniższe polecenia.

  • Zgodnie z zaleceniem Rod w jego odpowiedzi (tym, w jaki sposób ręcznie naprawić program ładujący), zrobiłem kopię zapasową tego pliku, przenosząc go o jeden poziom wyżej:

    $ sudo cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/bootmgfw.efi
    
  • W końcu skopiowałem program ładujący GRUB2 w tym miejscu, „podstępem” systemu do załadowania programu ładującego, którego chciałem, zamiast oryginalnego programu ładującego Windows.

    $ sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
    

Nareszcie miałem mój podwójny boot do pracy z GRUB2. W przypadku, gdy system Windows ponownie zastąpi moduł ładujący po aktualizacji (tak jak to zrobiłem ze mną), już znam kroki, aby przywrócić gruba na jego miejsce.

Mam nadzieję, że to komuś pomoże. Daj mi znać, jeśli są jakieś problemy z moim rozwiązaniem.

mairabc
źródło
9
Dzięki, pomogło, ale nie mogłem uruchomić systemu Windows. Podczas uruchamiania uruchamia GRUB, aw GRUB-ie opcja „Windows Boot Manager” ponownie przechodzi do menu GRUB-a (oczekiwane, ponieważ prowadzi to do tego samego pliku .efi). Wyglądało to na ten problem, chociaż nie miałem szczęścia z naprawą rozruchu. Rozwiązałem go, przechodząc do Ubuntu, w /etc/grub.d/ wypełniając plik 40_custom, kopiując wpis Windows Boot, który miałem w mojej wklejce Ubuntu i edytując adres URL pliku .efi, aby wskazał kopię zapasową bootmgfw.efi. Więc menu zawierachainloader /EFI/Microsoft/bootmgfw.efi
Vince
1
to menu nie działa dla mnie
Pierre
@Pierre May: Może użycie następującej pozycji menu będzie dla Ciebie działać: menuentry 'Real Windows' {set root = (hd0, gpt2) chainloader /EFI/Microsoft/bootmgfw.efi} (zakładając, że twoja partycja efi jest na pierwszej dysk twardy na sda 2. Aby się upewnić, możesz wpisać „c”, gdy jesteś w grub, i „ls”, aby zobaczyć dostępne partycje.
tobiasBora
12

Ten sam problem napotkałem na HP ProBook 4340s z oryginalnym Windows 8 już zastąpionym przez nowy Kubuntu 15.04 (wolę brak podwójnego rozruchu). Spośród innych prób próbowałem również Boot-Repair (zarówno z HD po jego instalacji, jak i przez dysk boot-repair-disk ), ale to ćwiczenie było najprawdopodobniej niepotrzebne.

Podstępem były następujące zmiany w konfiguracji BIOS-u (po uruchomieniu komputera naciśnij F10 - przejdź do Konfiguracji systemu - otwórz Opcje uruchamiania ):

  1. Sprawdź Dostosowany rozruch

  2. Sprawdź SecureBoot

  3. Tryb rozruchu : wybierz UEFI Hybrid lub UEFI Native (wybrałem UEFI Native)

  4. Kolejność uruchamiania UEFI : umieść niestandardowy rozruch na górze

  5. Zdefiniuj niestandardową opcję rozruchu : wybierz Dodaj + wprowadź ustawienie:\EFI\ubuntu\grubx64.efi

Znaleźliśmy prawidłowy ciąg ścieżki podczas otwierania GRUB-a za pomocą opcji Uruchom z pliku EFI w Opcjach szybkiego rozruchu (F9). Na początku lista opcji zawierała:

  • Menedżer rozruchu systemu operacyjnego
  • Uruchom z pliku EFI

Po dodaniu opcji niestandardowego rozruchu dodano ją do listy:

  • Dostosowany rozruch
  • Menedżer rozruchu systemu operacyjnego
  • Uruchom z pliku EFI
michal_za
źródło
Zrobiłem dokładnie to tutaj na hp zbook 15, bez powodzenia
cmbarbu
Jeśli używasz systemu uefi i instalujesz UBUNTU 16.10 po Windows 10, ta odpowiedź jest poprawna
leoredi
dzięki, musiałem to zrobićDefine Customized Boot Option: choose Add + put the setting: \EFI\ubuntu\grubx64.efi
m3asmi
6

UEFI firmy Hewlett-Packard od dłuższego czasu mnie boli. Twoja poprawka pomogła mi ponownie uruchomić laptopa HP w GRUB-ie bez uprzedniego naciśnięcia F9.

Miałem jeden problem: po twojej poprawce mogłem wybrać Windows 8 w GRUB, ale Windows 8 następnie odmówił uruchomienia i ponownie pokazano mi menu GRUB.

Moja poprawka:

  1. Kopiowanie oryginalnego pliku efi Microsoft do /boot/efi/EFI/Microsoft/Boot/bootmgf2.efi
  2. Edycja w /boot/grub/grub.cfgcelu rozpoznania pliku EFI Microsoft o zmienionej nazwie

Laptop uruchamia się teraz w GRUB, Ubuntu i Windows 8 zaczynają się OK z GRUB.

Arjen de Bruine
źródło
5

Zwykle uruchomienie Naprawy rozruchu powoduje utworzenie kopii zapasowej oryginalnego pliku modułu ładującego rozruchu firmy Microsoft ( bootmgfw.efi) jako bootmgfw.efi.bkpi zastępuje oryginalny bootmgfw.efiplik kopią GRUB (lub podkładką dystansową), a opublikowane przez niego dane wyjściowe Naprawy rozruchu pokazałyby to; jednak nie widzę takiego pliku kopii zapasowej. Dlatego polecam zrobienie jednej z trzech rzeczy:

  • Uruchom ponownie Boot Boot Repair, ale poszukaj opcji związanych z tworzeniem kopii zapasowej i wymianą modułu ładującego rozruch Microsoft. Aktywuj te opcje, aby kontynuować proces. GRUB może, ale nie musi, uruchomić Windows; wydaje się trafiać lub chybić - i więcej „chybić”, jeśli aktywujesz Bezpieczny rozruch.
  • Wykonaj zadanie ręcznie: z Linuksa, wykonaj kopię zapasową /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi(zalecam przeniesienie go o jeden poziom /boot/efi/EFI/Microsoft/bootmgfw.efiniż do zmiany nazwy bootmgfw.efi.bkp, ponieważ ten ostatni jest niestandardowy i uniemożliwia zlokalizowanie narzędzi innych niż Boot Repair i GRUB Ubuntu). Skopiuj /boot/efi/EFI/ubuntu/grubx64.efina swoje miejsce; lub jeśli zamierzasz nadal działać Bezpieczny rozruch, skopiuj /boot/efi/EFI/ubuntu/shimx64.efina jego miejsce i skopiuj grubx64.efido/boot/efi/EFI/Microsoft/Bootużywając oryginalnej nazwy. Następnie musisz zmodyfikować konfigurację GRUB, aby umożliwić uruchamianie programu ładującego system Windows w nowej lokalizacji lub pod nową nazwą. (Słyszałem, że GRUB nie może jeszcze uruchomić modułu ładującego Windows w trybie Bezpiecznego rozruchu, więc jeśli chcesz uruchomić Windows z GRUB, może być konieczne wyłączenie Bezpiecznego rozruchu. OTOH, nigdy nie próbowałem tego sam , więc mogę się mylić co do możliwości GRUBA.)
  • Wyłącz Bezpieczny rozruch, następnie uruchom system Linux i zainstaluj mój menedżer rozruchu rEFInd przy użyciu pakietu Debian. Po zakończeniu wpisz sudo mvrefind.sh /boot/efi/EFI/refind /boot/efi/EFI/Microsoft/Boot. To ostatnie polecenie przenosi i zmienia nazwy plików w sposób analogiczny do procedury ręcznej, którą właśnie opisałem, lub do tego, co robi Naprawa rozruchu, ale ustawia rEFInd jako domyślny program ładujący, a nie GRUB. Jeśli chcesz użyć Bezpiecznego rozruchu, będziesz mógł to zrobić, żonglując plikami i instalując nową wersję shima (podkładka Ubuntu jest wystarczająco wcześnie, aby nie działała poprawnie z rEFInd). Zainstalowanie rEFInd w ten sposób pozwala na uruchomienie bez GRUB-a, a także kombinację skryptu instalacyjnego (wykonywanego przez system pakietów podczas instalacji pakietu Debian) i mvrefind.shskryptu obejść problemy, które masz.

Dla przypomnienia, problemy, które masz, są związane ze znanymi błędami w implementacji EFI HP. Zasadniczo oprogramowanie wbudowane jest na stałe do rozruchu z programu ładującego Microsoft i utrudnia lub uniemożliwia rozruch z dowolnego innego. Zdecydowanie polecam złożyć skargę na HP; nie naprawią takich problemów, chyba że ludzie narzekają.

Spośród tych trzech rozwiązań najprościej będzie skorzystać z Boot Repair; ale jak zauważyłem, niestandardowe nazewnictwo używane przez Boot Repair może w przyszłości powodować problemy z innymi narzędziami. Ręczne regulacje będą wymagały więcej wysiłku, aby działać, ale na dłuższą metę będą czystsze. Niektóre osoby zgłaszają problemy z pobieraniem GRUB-a z modułu ładującego system Windows, więc każda z tych opcji może sprawić kłopoty z tym wynikiem. rEFInd ma większe szanse na uruchomienie Linuxa lub Windowsa bez problemów, ale jak można zauważyć po tej procedurze, uruchomienie go prawdopodobnie będzie wymagało nieco więcej wysiłku niż ponowne uruchomienie Boot Repair, choć prawdopodobnie mniej niż ręczne żonglowanie plikami. Korzystanie z rEFInd w połączeniu z Secure Boot wymaga w tej chwili więcej skoków do obręczy. (Szczegółowe informacje można znaleźć w dokumentacji rEFInd.

We wszystkich trzech rozwiązaniach występuje ryzyko; Implementacje EFI różnią się znacznie między sobą, co oznacza, że ​​zautomatyzowana lub ręczna procedura, która działa dobrze na jednym komputerze, może zawieść niefortunnie na innym. Aby się zabezpieczyć, zalecamy wykonanie kopii zapasowej ESP (zwykle /boot/efipod Linuksem); po prostu spakuj pliki do archiwum lub skopiuj je do katalogu kopii zapasowej. Jeśli coś pójdzie nie tak, możesz uruchomić dysk awaryjny i przywrócić pliki. Prawdopodobnie spowoduje to ponowne uruchomienie komputera.

Rod Smith
źródło
Dziękuję Ci bardzo! Nie próbowałem jeszcze żadnej z twoich opcji, ale zrobię to w ten weekend.
maddentim
Twój menedżer rozruchu rEFInd wygląda interesująco. Mówisz, że mogę wyłączyć Bezpieczny rozruch i nadal korzystać z Win8? Jedno z moich pytań brzmi: kiedy próbowałem tar / boot / efi, tar dał mi błędy w niektórych plikach w folderze ubuntu. Mają dziwne nazwy, takie jak „ame =" App.lic ". Zobacz wiersze 809 do 817 waste.ubuntu.com/1418009 Ta ostatnia instalacja była właściwie moją trzecią próbą. Myślę, że są śmieciami i można je usunąć. Co robisz pomyślisz?
Odeślemy
Widziałem kilka raportów osób wyłączających Bezpieczny rozruch i nie mających problemów z uruchamianiem systemu Windows, więc to nie jest problem. Jeśli chcesz włączyć tę funkcję ze względu na bezpieczeństwo, jest to zrozumiałe, ale nie powinieneś się martwić, że Windows przestanie się uruchamiać. Jeśli chodzi o twój tarbłąd, brzmi to tak, jakby skrypt miał błąd i tworzył pliki o dziwnych nazwach. Nie zauważyłem wcześniej tych plików w twoich wynikach, ale możliwe jest, że cokolwiek stworzył je błąd, jest również odpowiedzialny za problemy z uruchomieniem. Jeśli tak, użycie rEFInd prawdopodobnie obejdzie problem, ale inne rozwiązania mogą zawieść.
Rod Smith
rEFInd nie został zainstalowany pomyślnie. Myślę, że LovinBuntu zidentyfikował problem. / boot / EFI jest tylko do odczytu. Oto część wyniku: mkdir: nie można utworzyć katalogu /boot/efi//EFI/refind': Read-only file system cp: cannot create regular file /boot/efi//EFI/refind/refind_x64.efi ': Brak takiego pliku lub katalogu Instalowanie sterownika dla ext4 (ext4_x64.efi) mkdir: nie można utworzyć katalogu `/ boot / efi // EFI / refind ': System plików tylko do odczytu Skopiowane pliki binarne
rEFInd
3

Spędziłem dzień na tym samym problemie i w końcu go rozwiązałem. Oto dokładne rozwiązanie. Pełny artykuł na temat rozwiązania problemu znajduje się tutaj, który napisał Rod Smith .

Przydatna informacja

Aby uruchomić z tabeli partycji GPT za pomocą programów ładujących efi. efipliki są tworzone przez systemy operacyjne w czasie instalacji, które muszą zostać dostarczone do systemu BIOS UEFI komputera, aby umożliwić mu rozruch z odpowiednich systemów operacyjnych.

Do przechowywania plików EFI potrzebujemy jednej partycji EFI. Zwykle jest to partycja mniejsza niż 200 MB w fat32formacie z etykietą EFI system. Obejmuje .efipliki i ich zależności (w kształcie .dlllub .efi) potrzebne do rozruchu z dowolnej partycji rozruchowej (zwykle systemów operacyjnych). Na moim komputerze ta partycja ma strukturę pokazaną przez następujący schemat:

\EFI
   |_Boot
     |_fw
   |_Microsoft
     |_Boot
     |_Recovery
   |_Ubuntu
     |_fw

Zwykle .efipliki mogą mieć dowolne nazwy, ale wydaje się, że niektóre komputery szukają konkretnych nazw. Wspominam też o standardowych nazwach.

  1. BootFolder: jest rozpoznawany jako domyślna opcja uruchamiania i jeśli NVRAM zostanie z jakiegoś powodu skasowany. To będzie używane domyślnie. Nazwa modułu ładującego efi to „bootx64.efi”. Aby wybrać domyślny moduł ładujący efi, skopiuj plik efi i wszystkie otaczające go pliki do folderu rozruchowego i zmień nazwę pliku efi źródła na „bootx64.efi”.

  2. MicrosoftFolder: przechowuje pliki rozruchowe efi systemu Windows. Istnieje kilka plików efi, ale głównym jest „efibootmgfw.efi”. Jestem pewien, że system Windows używa go do rozruchu.

  3. UbuntuFolder: przechowuje plik efi Ubuntu lub Mint. Istnieje kilka .efiplików, ale głównym jestgrubx64.efi

co robić?

Istnieją już opcje rozruchu, które są instalowane podczas instalacji systemu operacyjnego. Można je jednak pominąć w opcjach uruchamiania bios z różnych powodów, takich jak usunięcie i ponowna instalacja dysku twardego lub instalacja nowego systemu operacyjnego, a nawet nowej baterii płyty głównej. Istnieją dwa rozwiązania umożliwiające odzyskanie opcji rozruchu.

  1. (Niezalecane) Jak opisano w niektórych odpowiedziach, możemy zastąpić działającą opcję rozruchu tą, która nie działa. Ale problem pozostaje odwrotny.

  2. Zarejestruj ręcznie brakujący plik modułu ładującego efi boot.

Jak zrobić?

  1. Uruchamianie z bootowalnej pamięci flash Linuxa (używam bootowalnej pamięci flash Linux Mint). To musi być EFI USB. (GPT USB, które mogą być tworzone przez programy takie jak Rufus)

  2. Zamontuj partycję EFI, twoja dystrybucja może to zrobić automatycznie. Pomiń ten krok, jeśli /bootjest dostępny i pokazuje strukturę podobną do powyższej. Nowoczesne Ubuntu powinny to zrobić za Ciebie.

    1. Znajdź adres swojej partycji EFI. Można to zrobić za pomocą partedpolecenia lub Disksprogramu. Zwykle jest to pierwsza lub druga partycja na dysku rozruchowym. ( /dev/sda1Lub /dev/sda2) Ta partycja ma zwykle od 100 MB do 200 MB w systemie FAT32 i typ partycji systemu EFI.

    2. Zamontuj partycję EFI. Możesz użyć dfpolecenia, aby sprawdzić, czy partycja została wcześniej zamontowana.

      df  /boot/efi
      

      Jeśli partycja nie była wcześniej zamontowana (nie pokazano w poprzednim poleceniu) Zamontuj partycję za pomocą mountpolecenia:

      mount  /dev/sda1  /boot/efi
      
  3. Teraz, gdy przejrzysz /boot/efi, zobaczysz strukturę plików podobną do mojej opisanej powyżej. Kontroluj, czy możesz znaleźć folder utraconego systemu operacyjnego. W moim przypadku bios komputera widział tylko opcję rozruchu systemu Windows, ale miałem również opcję rozruchu Gruba w Linuksie.

    • (Niezalecane) Moja opcja uruchamiania systemu Windows działała, więc najpierw dla celów testowych utworzyłem kopię zapasową folderu Microsoft, który przechowuje kilka plików wśród pliku rozruchowego systemu Windows. ( bootmgfw.efi) Potem zmieniono nazwę folderu ubuntu do Microsoft, obok I przemianowany grubx64.efina bootmgfw.efi. Po ponownym uruchomieniu zamiast uruchamiania systemu Windows ładowane jest menu GRUB, jednak tym razem uruchamianie systemu Windows było możliwe tylko przy pomocy GRUB-a. Bezpośrednie uruchomienie systemu Windows nie było możliwe.

      sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
      
    • ( Zalecany sposób ) Wystarczy wpisać adres pliku efi, aby jego powiązany system operacyjny był widoczny w opcjach uruchamiania bios. W moim przypadku brakowało Linux Mint na liście rozruchowej systemu BIOS komputera. Adres jego pliku efi był /efi/ubuntu/grubx64.efiwzględny do katalogu głównego partycji EFI. Następnie zarejestrowałem go w pamięci NVRAM za pomocą polecenia efibootmgr .

      efibootmgr -c -d /dev/sda -p 1 -l \\efi\\ubuntu\\grubx64.efi -L nameForBootOption
      

      w p 1części polecenia 1 określa numer partycji efi partycji na danym dysku. nameForBootOptionto niestandardowa nazwa nadana opcji uruchamiania

* Pamiętaj, aby wpisać poprawny adres. Po zamontowaniu partycji w systemie Linux. Montuje partycję w jakimś folderze pod katalogiem głównym, który rozszerza rzeczywisty adres na coś takiego, /media/mint/CC1F-9708/EFI/ubuntujednak musimy tylko podać /EFI/ubuntuczęść.

* Disksprogram jest wspaniałym narzędziem graficznym, które domyślnie znajduje się w bootowalnej pamięci flash Linuksa Mint. Może być używany do sprawdzania i znajdowania partycji EFI, a także może być używany do montowania partycji EFI bez użycia polecenia mount lub parted. Wystarczy go wyszukać w menu, Preferencje, Dyski.

Tekin
źródło
Poszedł niezalecany sposób. Działał idealnie.
Evan Carroll
1

Ten błąd dotyczy Ciebie: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1091477

Rozwiązanie:

  1. za pomocą Gparted utwórz kolejną partycję EFI (FAT32, 200 MB, zlokalizowaną wewnątrz pierwszych 100 GB dysku)
  2. przesuń na nim flagę „boot”
  3. zmusić Ubuntu do korzystania z tego nowego ESP (np. poprzez Boot-Repair -> Zalecana naprawa).
LovinBuntu
źródło
Cóż, utworzenie kolejnego ESP w pierwszych 100 GB oznacza przesunięcie partycji win8 o ponad 200 MB ... Myślę, że uważaj tam. Może przerwać uruchamianie systemu Windows. Może powinienem to po prostu wysadzić. I tak mi się nie podoba. Potrzebuję go tylko do oglądania serwisu Netflix!
maddentim
Zaktualizuj Boot-Repair (pakiety „boot-sav” i „boot-repair”), a następnie uruchom zalecaną naprawę i wskaż nowy adres URL, który się pojawi.
LovinBuntu
gotowy. paste.ubuntu.com/1562554
maddentim
1

Podobny problem napotkałem po zainstalowaniu Cent-OS 7 na Windows 10. Oto proces, który wykonałem.

  • początkowym systemem operacyjnym był Windows 10
  • zainstalowany cent-os 7 przy użyciu uefi usb stworzonego przez rufus

problem: system Windows 10 ładował się, a menu startowe systemu operacyjnego cent nawet się nie wyświetlało.

  1. Jak rozwiązałem:
  2. poszedł do Bios
  3. włączone starsze bootowanie (tylko dodatkowy krok dla przyszłych środków ostrożności)
  4. przejdź do opcji rozruchu
  5. kliknij Menedżer rozruchu systemu operacyjnego
  6. Przenieś CentOS UEFI ponad okna: naciśnij klawisz F10, aby zapisać
  7. kliknij OD bootmanager ponownie i sprawdź to.
  8. naciśnij klawisz F10, aby zapisać i wyjść

Teraz twój system uruchomi się w centos UEFI

ponieważ włączyliśmy starsze uruchamianie, możemy wybrać klawisz esc, aby przejść do bios lub innych opcji rozruchu

abhirathore2006
źródło
1

Znalazłem sposób na to, aby mój HP Pavilion g7-2269wm (UEFI) uruchamiał REFInd (może być również dostępny GRUB) bez wymiany na bootmgfw.efirEFInd lub GRUB

Zainstalowałem REFInd i dodałem rEFInd do listy menedżerów rozruchu, używając sudo efibootmgr -c -d /dev/sda -p 2 -L "rEFInd" -l "\EFI\refind\shimx64.efi"

Zrestartowano za pomocą F9, aby wybrać rEFInd, a następnie wybrano Ubuntu.

Następnie zmieniono nazwę bootmgfw.efina bootmgfwms.efiusing

sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/Boot/bootmgfwms.efi

Potem zrestartowałem się i zrestartowałem do rEFInd bez konieczności używania F9. Brakowało teraz Windows 10, więc wybrałem Ubuntu.

Następnie, aby odzyskać pozycję systemu Windows 10, uruchomiłem

sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfwms.efi /boot/EFI/EFI/Microsoft/Boot/bootmgfw.efi

Następnie zrestartowałem się i rEFInd przychodzi bez naciskania F9, a Windows 10 pojawia się jako wpis.

Suici Doga
źródło
1

To kolejna odpowiedź dla mairabc dla tych, którzy, podobnie jak Vince lub ja, nie mogą uruchomić się w systemie Windows. Będziesz potrzebował fs_uuid:

# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/bootmgfw.efi

i hints_string:

# grub-probe --target=hints_string /boot/efi/EFI/Microsoft/bootmgfw.efi

Następnie musisz edytować plik /etc/grub.d/40_custom w ten sposób:

menuentry "Microsoft Windows x86_64 UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root your_hints_string your_fs_uuid
    chainloader /EFI/Microsoft/bootmgfw.efi
}

Zapisz i zrób

# update-grub

uruchom ponownie w systemie Windows ...

Pierre
źródło
1

Na moim laptopie HP krok po kroku postępowałem w następujący sposób:

1 - Uruchomienie systemu Ubuntu za pomocą F9

2 - Sprawdź, gdzie znajduje się moduł ładujący Windows

sudo efibootmgr -v

W moim przypadku /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

3 - Utwórz kopię zapasową pliku .efi:

sudo cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/bootmgfw.efi

4 - Zastąp oryginalny plik .efi plikiem ubuntu ( sztuczka ):

sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

5 - Dodaj menu Windows 10 na grub. Otwórz /etc/grub.d/40_customi dodaj tę pozycję menu na końcu pliku:

menuentry "Windows 10 click here!" {
    search --set=root --file /EFI/Microsoft/bootmgfw.efi
    chainloader /EFI/Microsoft/bootmgfw.efi
}

6 - Zapisz 40_customi:

sudo update-grub

7 - Włącz bios Wyłącz Bezpieczny rozruch (nie jestem pewien, czy jest potrzebny)

8 - Jeśli wszystko pójdzie dobrze, domyślnie uruchomi się na Ubuntu , a Windows 10 będzie kolejną opcją na Grub.

To było łatwiejsze niż myślałem.

Vitor Abella
źródło
sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efidziałało idealnie.
Evan Carroll
@EvanCarroll, czy uważasz, że powinienem poprawić swoją odpowiedź? To naprawdę kroki, które robię.
Vitor Abella
Cóż, nie jestem pewien, czy ta odpowiedź jest w ogóle potrzebna, aby być szczerym. Jest wiele słów, ale twoja metoda jest taka sama, jak Tekin w niezalecanej sekcji. Ale dla użytkowników tylko dla systemu Linux ta metoda jest świetna ze względu na prostotę.
Evan Carroll
1

Mam laptopa HP 2018, 14 cali z systemem Windows 10 i podwójnym uruchomieniem Ubuntu. Naciskałem F9, aby wybrać system operacyjny, który chciałem i robię to od kilku tygodni.

Rozwiązanie:

  • Zamknij system i naciśnij klawisz F10, aby przejść do systemu BIOS

  • Przejdź do części systemu BIOS, która zawiera kolejność uruchamiania

  • Naciśnij enter w menedżerze rozruchu systemu operacyjnego.

  • użyj F5 lub F6, aby przełączyć Ubuntu z Windows.

  • Zapisz i wyjdź.

Elliot Rushton
źródło
0

To NIE jest problem z systemem Windows! Oprogramowanie układowe HP jest całkowicie błędne, ponieważ nie używa (a nawet nie obsługuje poprawnie) zmiennej firmare UEFI „BootOrder”. Myślę, że jedyną poprawką jest zastąpienie pliku modułu ładującego system Windows (jak już wspomniano) plikiem grub.efi.

Jörg
źródło
0

Mój scenariusz jest podobny do scenariusza Michała Žarnaya z 19 '15 sierpnia o 15:20: Dostałem trochę wież HP Pavillion Slimline 400-314, nie potrzebowałem preinstalowanego systemu Windows 8, więc natychmiast zmieniłem partycję na HDD i zainstalowałem Ubuntu 14.04 i Grub2.

Niestety menu BIOS Pavillion jest bardzo ograniczone w konfiguracji rozruchu. Nie ma w nim większości fantazyjnych wyborów, które opisują tutaj inni. Nawet próba zmiany kolejności rozruchu nie udaje się.

JEDYNYM rozwiązaniem, z którym zacząłem pracować, jest obejście „alternatywnego nazewnictwa” opisane w sekcji „Alternatywne rozwiązania nazewnicze” tego bloga .

syzygy
źródło
1
Witamy w Ask Ubuntu! Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Mark Kirby,
0

Potwierdzam, że kroki @Vitor Abella rozwiązały problem podwójnego rozruchu dla mojego notebooka HP 2000, z tym że będę musiał wykonać jedną z następujących czynności (jak wspomniano w @mairabc):

  • włącz starsze uruchamianie (domyślnie rozruch zabezpieczający jest wyłączony)

lub

  • wyłącz starsze uruchamianie i włącz rozruch zabezpieczający.
VictorL
źródło
0

Jeśli nie chcesz przenosić plików rozruchowych , możesz spróbować ręcznie zmienić sekwencję rozruchową:

Wejdź do Ubuntu ręcznie i sprawdź bieżącą sekwencję rozruchową oraz ich identyfikatory, używając:

sudo efibootmgr -v

następnie zmień sekwencje rozruchowe za pomocą -o i identyfikatorów (w kolejności rozruchu od lewej do prawej):

sudo efibootmgr -o 0000,3000,0001,2001,2002,2003



Przykład :
1. Pokaż bieżące ustawienia rozruchu

$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 2 seconds
BootOrder: 0001,3000,0000,2001,2002,2003
Boot0000* ubuntu    HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC

2.Zmień kolejność rozruchu (najpierw chcemy uruchomić Ubuntu, która wyświetli menu rozruchu podczas uruchamiania):
Zauważ, że przy pierwszej próbie wystąpił błąd, ponieważ nie można znaleźć Boot2003 (napęd dyskietek?), Jak widać, jest to odtworzone po ponownym uruchomieniu.

$ sudo efibootmgr -o 0000,3000,0001,2001,2002,2003
Invalid boot order entry value: 0000,3000,0001,2001,2002,2003
                                                         ^
Boot entry 2003 does not exist

$ sudo efibootmgr -o 0000,3000,0001,2001,2002
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,3000,0001,2001,2002
Boot0000* ubuntu
Boot0001* Windows Boot Manager
Boot2001* USB Drive (UEFI)
Boot2002* Internal CD/DVD ROM Drive (UEFI)
Boot3000* Internal Hard Disk or Solid State Disk
Boot3001* Internal Hard Disk or Solid State Disk
Boot3002* Internal Hard Disk or Solid State Disk
Boot3003* Internal Hard Disk or Solid State Disk

3. Uruchom ponownie. Menu rozruchu powinno się teraz pojawić. (2003 jest dodawany automatycznie):

$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,3000,0001,2001,2002,2003
Boot0000* ubuntu    HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC
Deruijter
źródło
0

Moje rozwiązanie zostało zrealizowane po tym, jak wiedziałem, że ładuje się grub4dos

wprowadź ten wpis w men.lst

title Linux
find --set-root /-name.efi
boot /-name.efi
rustyg8z
źródło
0

Po instalacji 64-bitowej wersji Ubuntu 14.04 na notebooku HP-15-r248nf z zainstalowanym Windows 8 uaktualnionym do 10, co stało się gładko, oprócz problemu z zerwaniem połączenia Wi-Fi ze sterownikiem Realtek Wifi (rozwiązanym za pomocą echo "options rtl8723be fwlps=N ips=N" | sudo tee /etc/modprobe.d/rtl8723be.conf), komputer nadal uruchamia się pod Windows.

Ubuntu przez grub stał się dostępny tylko podczas używania klucza ESC podczas fazy rozruchu. naprawa rozruchu nie pomogła, faktycznie zainstalowała całkiem sporo opcji w grub, ale grub wciąż nie był bezpośrednio dostępny.

W rzeczywistości wystarczyło zmienić kolejność uruchamiania z domyślnej.

  • W kroku uruchamiania po włączeniu komputera typu Esc, a następnie F10, aby przejść do konfiguracji BIOS.
  • Przejdź do zakładki „Konfiguracja systemu”, do „Opcje rozruchu”. Naciśnij enter. Wyłącz „Bezpieczny rozruch”
  • Przejdź do kolejności rozruchu UEFI. Umieściłem za pomocą F5 / F6 menedżera rozruchu systemu operacyjnego na górze (prawdopodobnie nie jest to wymagane).
  • Wybierz „Menedżer rozruchu systemu operacyjnego” za pomocą Enter. Używając F5 / F6 przenieś ubuntu na górę powyżej Menedżera rozruchu systemu Windows.
  • Opuść konfigurację Bios za pomocą F10 Save / exit i potwierdź wprowadzone zmiany.

Teraz zostaniesz przekierowany do gruba, gdzie wybrałeś opcję Ubuntu oznaczoną gwiazdką na górze, która uruchomi się automatycznie po krótkim opóźnieniu.

wpb
źródło
2
Sformatuj to trochę. Nie umiem nawet powiedzieć, czy to odpowiedź.
TheWanderer
0

Rozwiązałem mój problem z uruchomieniem EFI w następujący sposób:

efibootmgr -oOpcja jest nadpisywane po restarcie, więc to nie będzie działać.

Jednak dowiedziałem się, że ta -nopcja działa. Tak więc w live usb-ubuntu uruchom efibootmgri znajdź czterocyfrowy numer dla Ubuntu i załaduj ten numer z -nopcją. Następnie, aby móc zrestartować system, wykonaj skrypt w następujący sposób:

#!/bin/sh
/usr/bin/efibootmgr -n 0000

Zastąpienie 0000wpisem ubuntu. Uruchomienie crontab -epozwoli ci na edycję twojego crona. Dodaj do niego taką linię:

@reboot /home/"user"/"path"/efibootsj

Spowoduje to wykonanie skryptu efibootsj(lub jakiejkolwiek innej nazwy) po uruchomieniu komputera.

Sven
źródło