Podwójny rozruch UEFI Windows 7 i Ubuntu 12.04 (oba 64 bity). W7 wpis nie pojawia się w GRUB-ie

8

Po próbie zainstalowania obu systemów operacyjnych przez 2 dni jestem zdezorientowany i wściekam się ... Mam pusty dysk SSD 128 GB i dysk twardy 500 GB. Mój laptop to Asus K55VM. Obsługa systemu BIOS UEFI.

Co zrobiłem:

  1. Zainstaluj nowy dysk SSD (Samsung 830 128 GB)

  2. Użyj GParted na liveCD, aby utworzyć nową tabelę partycji (GPT) i utworzyć 3 partycje (na dysku SSD) do różnych celów:

    • Partycja 1: 80 GB (w7);
    • Partycja 2: 30 GB (Ubuntu 12.04-Just / -);
    • Partycja 3: 10 GB nieużywane (do przyszłego rozszerzenia innych partycji)
  3. Zainstaluj system Windows 7 (z UEFI) na partycji 1. Spowoduje to utworzenie:

    • / dev / sda1 -> 100 MB dla systemu (chyba rozruch UEFI) - FAT32
    • / dev / sda2 -> 100 MB ok. dla MSR
    • / dev / sda3 -> 79.800 MB ok. dla danych Windows7

W tym momencie wszystko działa dobrze. Mam W7. Teraz instaluję Ubuntu 12.04 amd64 (z UEFI) w następujący sposób:

  1. Zainstaluj / w partycji 2 -> / dev / sda4 30 GB ext4, a na dysku twardym zainstaluję / home i zamienię.

  2. Wybieram bootloader w / dev / sda1 (gdzie powinien to być boot UEFI).

  3. Instaluję aktualizacje i uruchamiam ponownie.

Problem: Teraz pojawia się menu GRUB z wpisami Ubuntu, a nie Windows 7.

Znaleziono alternatywne rozwiązanie : kiedy włączam laptopa, przed załadowaniem GRUB-a wciskam klawisz ESC i wyświetlam boot BIOS, więc mogę wybrać uruchomienie partycji Windows, partycji Ubuntu, DVD, USB itp., Ale myślę, że nie jest najlepszy sposób na uruchomienie innego systemu operacyjnego.

Próbowałem: sudo update-grub2 bez powodzenia.

Co mogę zrobić??

Joe
źródło

Odpowiedzi:

6

Znajdź lokalizację modułu ładującego system Windows, instalując partycję efi:

sudo mount -t vfat /dev/sdx1 /mnt/efi/

I wyszukaj bootmgfw.efi. Następnie znajdź identyfikator UUID dysku:

sudo grub-probe --target=fs_uuid /mnt/efi/EFI/Microsoft/Boot/bootmgfw.efi

Dodaj ten UUID do /etc/grub.d/40_custom:

menuentry "Windows x86_64 UEFI-GPT" {
    search --fs-uuid --no-floppy --set=root UUID
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

Wreszcie biegnij update-grub.

jarondl
źródło
Jesteś moim cholernym bohaterem !! Wielkie dzięki, które działały całkiem dobrze. Sprawiłeś, że mój dzień =)
Joe
1
Aby uzyskać informacje, Boot-Repair dodałby wpis jednym kliknięciem. help.ubuntu.com/community/Boot-Repair
LovinBuntu
Tyle że naprawa rozruchu nie działa w moim systemie ...
fccoelho,
3

Rozwiązanie jarondl jest całkowicie dobre, ale innym rozwiązaniem jest użycie osobnego programu do zarządzania rozruchem, aby wybrać między GRUB a programem ładującym Windows. Znam trzech menedżerów rozruchowych EFI, które możesz zainstalować:

  • rEFIt , który jest dostępny w repozytoriach Ubuntu. Pamiętaj, że wersja z witryny rEFIt nie będzie działać na komputerach z systemem UEFI, ponieważ używa formatu plików specyficznego dla komputerów Mac. Nawet wersja Ubuntu ma kilka drobnych usterek na komputerach z systemem UEFI. Idealnie, REFIt prezentuje ładne menu rozruchowe GUI (chociaż ma również tryb tekstowy).
  • rEFInd , który jest zaktualizowaną wersją rEFIt z poprawkami dla różnych błędów i rozszerzeń UEFI do pracy z wbudowanym programem ładującym EFI jądra 3.3.0. Zauważ, że rozwidliłem / utrzymałem REFInd.
  • gummiboot, który jest tekstowym menedżerem rozruchu. (Ta strona wciąż zapomina, kim jestem, i dlatego nie pozwala mi publikować więcej niż dwóch hiperłączy, w przeciwnym razie dostarczyłbym jeden).

Zarówno rEFIt, jak i rEFInd automatycznie wykrywają inne programy ładujące, więc po ich skonfigurowaniu powinny one wykryć program ładujący dowolnego systemu operacyjnego i wyświetlić menu. Nie próbowałem jeszcze Gummiboot, więc nie wiem, jak łatwo jest to skonfigurować, ale pod względem koncepcyjnym jest podobny do rEFIt / rEFInd. Użycie dowolnego z tych programów zwiększa złożoność procesu rozruchu, więc jeśli GRUB działa i jesteś z niego zadowolony, nie ma sensu używać żadnego z tych programów. Są najbardziej przydatne, jeśli GRUB jest temperamentny lub po prostu nie działa, jak często zdarza się w przypadku GRUB 2 w systemach UEFI. W takiej sytuacji możesz porzucić GRUB 2 na korzyść ELILO lub czytnika kodów EFI jądra 3.3.0 lub nowszego. Te programy ładujące nie mogą przekierować procesu rozruchu do systemu Windows, dzięki czemu osobny menedżer rozruchu jest bardzo przydatny.

Rod Smith
źródło
Refind nie obsługuje partycji NTFS ...
FCCOELHO
1
Fakt, że rEFInd nie ma sterownika NTFS, nie ma znaczenia. Program ładujący EFI systemu Windows znajduje się na partycji systemowej EFI (ESP), która jest FAT, więc rEFInd nie musi uzyskiwać dostępu do woluminu NTFS. Ponadto niesprawiedliwe jest wyodrębnianie REFInd na podstawie tego wyniku; ani rEFIt, ani gummiboot nie są dostarczane ze sterownikiem NTFS.
Rod Smith
0

UWAGA: tylko dla x64

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

Dodaj to do /etc/grub.d/40_custom:

menuentry "Boot bootx64.efi, generated by Boot-Repair" {
search --fs-uuid --no-floppy --set=root UUID

**chainloader (${root})/EFI/Boot/bootx64.efi**
}

Drugi kod nie działa.

Testowany na ASUS N56V

Cristiano Zanca
źródło