Kupiłem nowy laptop Sony Vaio z serii S. Używa Insyde H2O BIOS EFI, a próba instalacji Linuksa doprowadza mnie do szału.
root@kubuntu:~# parted /dev/sda print
Model: ATA Hitachi HTS72756 (scsi)
Disk /dev/sda: 640GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 274MB 273MB fat32 EFI system partition hidden
2 274MB 20.8GB 20.6GB ntfs Basic data partition hidden, diag
3 20.8GB 21.1GB 273MB fat32 EFI system partition boot
4 21.1GB 21.3GB 134MB Microsoft reserved partition msftres
5 21.3GB 342GB 320GB ntfs Basic data partition
6 342GB 358GB 16.1GB ext4 Basic data partition
7 358GB 374GB 16.1GB ntfs Basic data partition
8 374GB 640GB 266GB ntfs Basic data partition
Zaskakujące jest to, że na dysku znajdują się 2 partycje systemowe EFI. Partycja sda2 to partycja odzyskiwania o pojemności 20 GB, która ładuje system Windows z podstawowym interfejsem odzyskiwania. Jest to dostępne po naciśnięciu przycisku „ASSIST” w przeciwieństwie do normalnego przycisku zasilania. Zakładam, że partycja systemowa EFI sda1 ładuje się do tego odzyskiwania.
Sda3 ESP ma więcej rozwiniętych wpisów dla systemu Microsoft Windows, który faktycznie wchodzi w system Windows 7 (co potwierdza bcdedit.exe w systemie Windows). Ubuntu jest zainstalowany na sda6, a podczas instalacji wybrałem sda3 jako moją partycję rozruchową. Instalator poprawnie utworzył aplikację sda3 / EFI / ubuntu / grubx64.efi.
Prawdziwy problem: przez całe życie nie mogę ustawić go jako domyślnego! Próbowałem utworzyć plik sda3 / startup.nsh, który nazywał się grubx64.efi, ale to nie pomogło - po ponownym uruchomieniu system nadal uruchamia się w systemie Windows. Próbowałem użyć efibootmgr, a to pokazuje, jak to działało:
root@kubuntu:~# efibootmgr
BootCurrent: 0000
BootOrder: 0000,0001
Boot0000* EFI USB Device
Boot0001* Windows Boot Manager
root@kubuntu:~# efibootmgr --create --gpt --disk /dev/sda --part 3 --write-signature --label "GRUB2" --loader "\\EFI\\ubuntu\\grubx64.efi"
BootCurrent: 0000
BootOrder: 0002,0000,0001
Boot0000* EFI USB Device
Boot0001* Windows Boot Manager
Boot0002* GRUB2
root@kubuntu:~# efibootmgr
BootCurrent: 0000
BootOrder: 0002,0000,0001
Boot0000* EFI USB Device
Boot0001* Windows Boot Manager
Boot0002* GRUB2
Jednak po ponownym uruchomieniu komputera, jak się domyślałeś, komputer uruchomił się ponownie bezpośrednio w systemie Windows.
Jedyne rzeczy, o których mogę myśleć to:
- Partycja sda1 jest w jakiś sposób używana
- Zastąp /EFI/Boot/bootx64.efi i /EFI/Microsoft/Boot/bootmgfw.efi za pomocą grubx64.efi [ale to wydaje się naprawdę radykalne].
Czy ktoś może mi pomóc? Dzięki - każda pomoc jest mile widziana, ponieważ ten problem doprowadza mnie do szału!
Odpowiedzi:
W końcu udało mi się to rozwiązać. Plik EFI / Microsoft / boot / bootmgfw.efi zastąpiłem grub64.efi. Zmieniłem nazwę tego pierwszego na bootmgfw.efi.old i użyłem grub, aby dodać opcję menu, aby załadować do niego łańcuch.
Oznacza to, że oprogramowanie wbudowane jest na stałe w poszukiwaniu programu ładującego system Windows dla systemu Microsoft Windows i nie przestrzega ustawień efibootmgr ani startup.nsh. To naprawdę okropne.
Dowiedziałem się, jak działa proces rozruchu Sony EFI:
W systemie Linux narzędzie efibootmgr działa, ale wyświetla wiele automatycznie generowanych bzdur, w tym ostatnio używany dysk USB.
Oto jak nauczyłem się tego wszystkiego:
Jedynym sposobem, aby uzyskać rEFInd, aby zrobić to, co chciałem, było:
Przenieś plik fwbootmgr.efi do jego katalogu nadrzędnego; rEFInd nadal go znajdzie, a Windows nie będzie narzekał, że zmieniłeś jego nazwę.
(Być może można to zrobić za pomocą Menedżera rozruchu systemu Windows, ale obsługa EFI w EeasyBCD nadal jest nieprzyjemna z mojego doświadczenia. Przez chwilę nie chcę jej dotykać.)
źródło
Po pierwsze, nie masz dwóch ESP. ESP to partycja z kodem typu partycji C12A7328-F81F-11D2-BA4B-00A0C93EC93B, która rozstaje się jako partycja z ustawioną „flagą rozruchową”. Twoje dane wyjściowe wskazują, że tylko / dev / sda3 ma ustawioną „flagę rozruchową”, więc masz tylko jeden ESP - / dev / sda3. W GPT partycje mogą mieć nazwy, a ty masz dwie partycje o nazwie „partycja systemowa EFI”, ale nazwy te są używane wyłącznie do celów identyfikacji człowieka. Tak więc, zgaduję, że ty (lub jakieś automatyczne narzędzie) stworzyłeś / dev / sda1 z zamiarem uczynienia go ESP, ale albo wystąpił błąd podczas ustawiania kodu typu partycji, albo jakieś inne narzędzie nieprawidłowo zmieniło kod typu z C12A7328-F81F-11D2-BA4B-00A0C93EC93B na coś innego.
Istnieje wiele sposobów na poprawienie tego. Najprościej jest po prostu zmienić nazwę / dev / sda1, aby uniknąć nieporozumień. Jeśli uważasz, że / dev / sda1 nie ma żadnego sensu, możesz wykonać kopię zapasową i usunąć. To usunie to z drogi i pozwoli uniknąć nieporozumień, ale oczywiście będziesz mieć 273 MB nieużywanego miejsca na dysku. Alternatywnie możesz poświęcić miejsce na inny cel, w razie potrzeby zmieniając nazwę i kod typu, aby uniknąć nieporozumień. EFI wyraźnie zezwala na wiele ESP, więc możesz zmienić kod typu (ustawiając na przykład „flagę rozruchową” używając parted) i używać obu ESP; ale może to być mylące.
Istnieje prawdopodobieństwo, że problem ten nie jest związany z niemożnością uruchomienia systemu Linux, ponieważ wygląda na to, że wszystkie odpowiednie pliki znajdują się w katalogu / dev / sda3. Przyszło mi do głowy kilka możliwych przyczyn tego problemu:
Możesz spróbować dostosować polecenie efibootmgr, zlokalizować nowy plik binarny lub co innego, aby przetestować te możliwości. Jeśli wszystko inne zawiedzie, zalecamy wykonanie następujących czynności:
Powinno to spowodować uruchomienie GRUB-a przy użyciu domyślnej nazwy modułu ładującego (EFI / Boot / bootx64.efi). Jednym z problemów jest to, że GRUB może nie mieć działającego wpisu dla systemu Windows. Prawdopodobnie możesz utworzyć go ręcznie; taki wpis powinien działać:
Alternatywnie, możesz zainstalować rEFIt lub rEFInd jako EFI / Boot / bootx64.efi. Należy pamiętać, że pliki binarne rEFIt dostępne z jego strony nie będą działać na komputerach z systemem UEFI; musisz użyć wersji z repozytoriów Ubuntu. rEFInd to rozwidlenie rEFIt z licznymi poprawkami i aktualizacjami błędów, w tym lepszą obsługą UEFI. (REFI Wydaje się, że został porzucony około dwa lata temu.) Dlatego zalecam raczej użycie rEFInd zamiast rEFIt - ale jestem jego opiekunem, więc nie jestem niezależnym obserwatorem tego wyniku. Niestety, AFAIK rEFInd nie jest (jeszcze) zawarty w repozytoriach Ubuntu, więc będziesz musiał go pobrać i zainstalować ręcznie.
źródło
Ta sama pozycja początkowa w nowej serii Sony Vaio e. Dziękuję Rod za twoją odpowiedź.
Na wypadek, gdyby ktoś potrzebował instrukcji, oto, co dla mnie zadziałało:
Zainstalowano Ubuntu 12.04 z USB wraz z Win7.
mocowanie / dev / sda3 z sesji na żywo
teraz uruchomił się bezpośrednio w grub2, ale bez wpisu win7
po załadowaniu ubuntu edytowałem
/etc/grub.d/40_custom
dodawanie
oraz po
wszystko dziala
źródło
Proponuję dwie różne alternatywy:
Nie nadpisuj Windows mbr, ale używaj go do uruchamiania grub
zmień ustawienia bios ( f2lub f3przy uruchomieniu) w opcjach rozruchu z UEFI na LEGACY, wtedy normalnie uruchomi ostatni zainstalowany system jak zawsze
źródło
Recommended Repair
przycisk. (spowoduje to automatyczne zainstalowanie poprawnych parametrów dla grub-efi, w tym parametrów SecureBoot, jeśli to konieczne, i zmianę nazwy plików EFI w przypadku zablokowania oprogramowania układowego UEFI w plikach Windows). Wskaż adres URL, który pojawi się w przypadku problemów.źródło