Ubuntu 12.10 z podwójnym uruchomieniem na UEFI na Windows 8 (GRUB - błąd: nie można znaleźć mapy poleceń)

8

Witaj po udanej instalacji systemu Ubuntu 12.10 amd64, nie mogę teraz uruchomić systemu Windows 8.

Oto moje działania:

  1. Zrobił miejsce (15 GB) dla Ubuntu z zarządzania komputerem w systemie Windows 8
  2. Uruchom Ubuntu 12.10 amd64 LiveUSB z EFI i włączonym Bezpiecznym uruchomieniem
  3. Utworzono 2 nowe partycje na końcu (13 GB Ext4 Root i 2 GB Swap)
  4. Wybrana partycja systemowa EFI systemu Windows 8 do zainstalowania programu ładującego

Grub daje mi przy starcie:

  1. Ubuntu (działa bez problemów)
  2. Środowisko odzyskiwania systemu Windows (wiele błędów)
  3. Windows 8 (2 komunikaty o błędach opisują poniżej)

2 komunikaty o błędach to:

  • error: can't find command drivemap.
  • error: invalid EFI file path
Kouros
źródło
Sprostowanie Wybrałem „nowo utworzoną partycję systemową EFI”, aby zainstalować program ładujący, ale w rzeczywistości zainstalowałem program ładujący w systemie Windows 8 EFS ...
Kouros
Czy wcześniej zrobiłeś kopię zapasową? tzn. partycja start / system Windows 8 to coś takiego jak 150-350 MB, więc może to zrobiłeś dd if=/dev/sda1 of=/media/some_usb_pendrive/backupfile? Jeśli taka kopia zapasowa istnieje, przywrócę system Windows / uruchom partitio, które mogło zostać „uszkodzone”.
humanityANDpeace
Niestety brak kopii zapasowej, ale udało mi się odzyskać system Windows 8 za pomocą środowiska odzyskiwania (naciskając przycisk asystenta zamiast przycisku włączania zasilania)
Kouros
czy poważnie zrobiłeś kopię swojego pytania? Zainstaluj Ubuntu 12.10 na UEFI wraz z Windows 8
duxk.gh
UWAGA: aktualizacja do 13.04 usunęła tę zmianę w mojej instalacji.
gcb

Odpowiedzi:

6

Znalazłem tymczasowe rozwiązanie.

Dodaj niestandardowy wpis do menu rozruchowego GRUB

Dołącz poniższy kod do /etc/grub.d/40_custom.

menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

Możesz użyć Ctrl+ Alt+, Taby otworzyć terminal i uruchomić sudo nano /etc/grub.d/40_custom, a następnie skopiować i wkleić kod. Na koniec naciśnij Ctrl+, Oaby zapisać i Ctrl+, Xaby wyjść.

Heads up: hd0,gpt1 oto identyfikator mojej partycji systemowej EFI (ESP). Jeśli ESP nie jest pierwszą partycją na pierwszym dysku twardym podczas rozruchu , Twoja jest inna! Np. hd1,gpt2Dla drugiej partycji na drugim dysku.

Wymień part_gptsię part_msdosjeśli napęd wykorzystuje partycjonowania MBR i starszych, a także zmienia hd0,gpt1się hd0,msdos1odpowiednio.

Zastosuj zmiany w GRUB

Po prostu uruchom następujące polecenie, które powinno wygenerować nową konfigurację GRUB, w tym nowy wpis niestandardowy:

sudo update-grub

Teraz uruchom ponownie, powinieneś być w stanie uruchomić Windows 8 teraz. Jeśli nie, a system Windows narzeka na uszkodzoną konfigurację BCD, przejdź do superużytkownika: Jak mogę naprawić moduł ładujący EFI systemu Windows 8?


Ostrzeżenie: W niektórych przypadkach, jeśli uruchomisz system Windows 8, GRUB zostanie zastąpiony przez Windows Boot Manager jako domyślny menedżer rozruchu.

Kouros
źródło
do czego powinienem „dążyć”? myślałem, że to partycja danych systemu Windows (tutaj gpt4), ale działała z gpt1, która jest jedyną partycją EFI, jaką mam. i chociaż instalacja Ubuntu
nadpisałaby
1
To rozwiązanie nie działa dla mnie. Czy postać `pojawia się w set root='(hd0,gpt1)'zamierzonym celu. Daje mi to błąd (próbuję z gpt3) nawet bez tego znaku. Błąd jest jak (hd0,gpt1)nie znaleziono.
iammilind
3

Nieprawidłowe wpisy Windows w GRUB są spowodowane tym błędem: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1024383

Rozwiązanie: uruchomić Boot-Repair „s Recommended Repairz LiveCD (lub liveusb).

LovinBuntu
źródło
1
Musiałem wyłączyć „bezpieczny rozruch” w BIOSie, zanim to zadziała.
Robin Winslow,
@RobinWinslow Tak, Boot-Repair również działał dla mnie (Lenovo Thinkpad S540), ale tylko gdybym wyłączył SecureBootbios, w przeciwnym razie Windows 8 nadal narzeka ... Byłoby miło, gdyby udało się to uruchomić przy zachowaniu SecureBoot
fpghost
0

Znalazłem sposób na zamknięcie systemu Windows 8. Zobacz /superuser/499923/preinstalled-windows-8-and-linux-uefi-dual-boot-on-a-laptop/528581

Pod W8, w oknie poleceń z podwyższonym poziomem uprawnień, wyłącz powercfg / h. Zanim to zrobisz, W8 może już zastąpić partycję EFI. Zajęło mi kilka iteracji zmiany bootmgfw.efi i resetowania aż do zablokowania, ale teraz jestem szczęśliwy.

Nie wiem, czy wystarczy samo uruchomienie W8, czy musisz się zalogować, a następnie uruchomić ponownie. Być może ktoś z większą cierpliwością (pracowałem nad tym przez ponad pół dnia) może powiedzieć.

Lupe
źródło
0

Mam ten sam problem na moim laptopie Asus-x202 (z systemem W8 i Ubuntu 13.04).

Trochę irytujące obejście jest na razie wystarczające: w menu startowym przejdź do systemu (lub uruchom bios od samego początku używając prawdopodobnie f2). Jeśli użyjesz zastępowania do uruchomienia, system Windows uruchomi się jak zwykle.

użytkownik184354
źródło
1
O czym dokładnie mówisz „override to boot”? Nie rozumiem tej części twojej odpowiedzi.
gertvdijk
0

„Override to boot” to menu na karcie „boot” w menu konfiguracji płyt głównych. Pozwala wybrać i od razu uruchomić dowolny moduł ładujący zainstalowany jeszcze na twoim urządzeniu.

ofiara
źródło
1
@edwin Ta odpowiedź może być rozwijana, ale wydaje się, że jest to próba odpowiedzi na zadane pytanie. vic : Witamy w Ask Ubuntu! Zalecam edycję tego, aby dodać więcej informacji na temat korzystania z tej funkcji, a także dokładniejsze wyjaśnienie, dlaczego rozwiązuje ten problem. Dzięki.
Eliah Kagan
0

Mam podobny problem z moim nowym HP Pavillion Sleekbook, Model 15-b142dx. Przyszedł z fabrycznie załadowanym W8. Byłem w stanie zmienić rozmiar partycji Windows z poziomu systemu Windows, a następnie zainstalowałem 64-bitowy system Ubuntu 13.04 z pamięci USB. Jednak po ponownym uruchomieniu W8 uruchomił się normalnie, bez menu rozruchu. Użyłem więc „boot-repair”, co uniemożliwiło uruchomienie systemu. Podczas uruchamiania drukuje:

Failed to open \EFI\Microsoft\Boot\grubx64.efi - 800000000000000E 
Failed to load grub
Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E
Failed to load grub
Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E
Failed to load grub

To by się wtedy zamknęło.

Po kilku próbach i błędach odkryłem, że naciśnięcie klawisza F10 podczas rozruchu spowoduje przejście do systemu BIOS, w którym mogę wyłączyć Bezpieczny rozruch. Przy następnym uruchomieniu dostałem DŁUGIE menu z gruba, z dużą ilością wpisów takich jak:

Windows UEFI bkpbootmgfw.efi
Windows Boot UEFI loader
EFI/HP/BIOSUpdate/CryptRSA32.efi
.
.
.

Wszystkie były zawarte w pliku „/etc/grub.d/25_custom”. Zrobiłem kopię zapasową tego pliku, a następnie usunąłem wszystkie wpisy oprócz modułu ładującego UEFI z Windows Boot. (Jest to jeden z wpisów, który pozwala na uruchomienie W8). Następnie uruchomiłem „update-grub” i skończyłem z dużo ładniejszym menu rozruchowym i mogę uruchomić dowolny system operacyjny.

użytkownik200241
źródło