Preinstalowane podwójne uruchamianie systemu Windows 8 i Linux UEFI na laptopie

10

Próbuję skonfigurować system Windows 8 i Arch Linux na nowym Sony Vaio E14 z preinstalowanym Windows 8.

Jak dotąd:

  • zainstalowałem W8 na moim nowym dysku SSD (zamieniono na oryginalny dysk twardy) za pomocą Recovery Media
  • zmniejszono partycję W8, usunięto partycję odzyskiwania, wyłączono wymianę
  • potwierdzone uruchomienie W8 w porządku

On to Arch:

  • wyłączono Bezpieczny rozruch w bios
  • potwierdzone uruchomienie W8 w porządku
  • Uruchomiłem Arch z płyty CD i zainstalowałem wszystko na czwartej i piątej partycji
  • skonfiguruj REFInd dla bootloadera jądra EFIstub

Potem stało się gorzej. Nie byłem w stanie uruchomić niczego innego niż Windows 8 (chociaż cieszyłem się, że przynajmniej działały dobrze).

Wypróbowany:

  • tworzenie EFI \ refind \ i umieszczanie tam .efi (zgodnie z instrukcją Arch
  • nadpisywanie EFI \ boot \ bootx64.efi
  • nadpisywanie EFI \ Microsoft \ Boot \ bootmgr.efi
  • nadpisywanie EFI \ Microsoft \ Boot \ bootmgfw.efi --- YAY rEFI pojawił się!

Na razie w porządku. Trzymałem cały katalog W8 Boot \ w EFI \ Windows8 i skonfigurowałem dla niego menu startowe; i wystartowało dobrze.

Ale po ponownym uruchomieniu wszystko było źle - „Nie znaleziono systemu operacyjnego” zamiast dowolnego programu ładującego (refind lub w8).

Uruchomiono ponownie w Arch przy użyciu płyty CD na żywo, aby dowiedzieć się, że partycja EFI miała błędną tabelę FAT. fsck.vfat naprawił to i stwierdziłem, że EFI \ Microsoft \ Boot powrócił do pierwotnego stanu (wszystkie pliki refind zostały usunięte i zastąpione programami ładującymi W8). Zastąpiłem je ponownie i wróciłem do rEFInd, pokazując się poprawnie i Arch jest doskonale bootowalny.

Potem próbowałem tylko zmienić nazwę EFI \ Microsoft \ Boot \ bootmgfw.efi na bootmgfw.001.efi (następnie skopiowałem refind .efi do bootmgfw.efi i zachowując KAŻDY INNY plik, ale tak jak poprzednio). Próbowałem oznaczyć partycję GPT EFI jako tylko do odczytu, ten sam wynik.

Teraz trochę nie mam szczęścia. Arch uruchamia się dobrze, podobnie jak W8, ale niszczy partycję EFI.

Dzięki za wszelkie pomysły, Googling przyniósł mnie tak daleko i nie mogę znaleźć lepszego.

PS - Windows 8 MAYBE niszczy partycję po wyłączeniu - kiedy zarządzam zamknięcie w W8, trwa to niezwykle długo (około pół minuty zamiast ~ 5 sekund). Teoretycznie więc mogłem rozwiązać ten problem poprzez resetowanie laptopa zamiast normalnego wyłączania, ale to po prostu nie jest miłe.

itchy355
źródło
Obawiam się, że nie mogę tutaj pomóc, nie mam maszyny UEFI do testowania różnych rzeczy. Chociaż może to nie być najbardziej pożądany sposób, możesz spróbować dodać pozycję Linuksa do programu ładującego Windows i uruchomić się tam, ale nie próbowałem tego na maszynie UEFI. Zobacz tutaj procedurę: superuser.com/a/499652/18050 Ponadto, zawsze używam Archboot do instalacji Arch, dajcie mu szansę, jeśli używasz oficjalnych obrazów, ponieważ instalacja bierze pod uwagę systemy UEFI: bbs.archlinux. org / viewtopic.php? id = 150833
Xandy,
To brzmi jak konflikt między Arch Linux i czymś, co robi Windows 8. Czy próbowałeś innej dystrybucji, aby rządzić, że to nie Arch Linux, który ma problem?
Ramhound,
Dzięki za sugestię easyBCD, zdecydowanie spróbuję. Nie obchodzi mnie, jaki menedżer rozruchu jest używany, więc jeśli system Windows może to zrobić, będę więcej niż szczęśliwy. Opublikuję wyniki jutro, kiedy znów będzie czas wolny od pracy, aby coś zepsuć :) @Ramhound byłoby w tym momencie trochę bólu i nie sądzę, że jest to związane z Arch - rEFInd to osobny projekt i mam zainstalowałem to wszystko ręcznie (podążając za mężczyzną).
itchy355

Odpowiedzi:

5

Może warto wykonać zimne wyłączenie (naciśnij przycisk zasilania) w systemie Windows, aby sprawdzić, czy możesz później uruchomić komputer, tak jak w teście. Oczywiście nie chcesz tego robić regularnie, ale pomocne może być potwierdzenie, że system Windows zastępuje zmienione dane ESP. Jeśli faktycznie powoduje uszkodzenie systemu plików podczas zamykania systemu Windows, brzmi to jak błąd systemu Windows, który należy zgłosić firmie Microsoft. Jeśli po prostu zastępuje bootmgfw.efiplik, to technicznie leży to w gestii Microsoftu, więc to naprawdę nie jest błąd.

Mówiąc bardziej ogólnie, czy próbowałeś użyć efibootmgrprogramu linux do zarejestrowania rEFInd w EFI pod własną nazwą (powiedzmy EFI/refindna ESP)? Jest to opisane w dokumentacji rEFInd, w rozdziale dotyczącym ręcznej instalacji Linuksa. Alternatywnie można zainstalować za pomocą install.shskryptu. Każda z tych metod będzie wymagać rozruchu w trybie EFI, ale powinieneś być w stanie to zrobić przy użyciu dysku CD rEFInd lub rozruchu z dysku awaryjnego w trybie EFI.

Jeśli efibootmgrnie działa, spróbuj użyć bcfgw programie powłoki EFI, jak opisano na stronie wiki Arch.

Jeśli te zabiegi nie działają, spróbuj użyć efibootmgralbo bcfgdo usunięcia wpisu do bootmgfw.efiz NVRAM, a następnie zainstalować refind jak EFI/BOOT/bootx64.efi. Teoretycznie komputer może następnie uruchomić program rEFInd, który powinien działać normalnie i umożliwiać uruchamianie dowolnego systemu operacyjnego. Istnieją dwa potencjalne pułapek, choć: Firmware może sprzyjać EFI/Microsoft/boot/bootmgfw.efiponad EFI/BOOT/bootx64.efi; a Windows może sprawdzić opcje rozruchu i dodać swój moduł ładujący z powrotem do pamięci NVRAM podczas uruchamiania. Jednak ta metoda jest warta wypróbowania.

Specyfikacja EFI wymaga od komputerów przestrzegania ich ustawień NVRAM (którymi zarządza efibootmgrLinux, bcfgw powłoce EFI lub podobnych programach), więc jeśli te narzędzia nie działają, oprogramowanie układowe jest zepsute i możesz rozważyć zwrócenie komputer do innego modelu. (Pamiętaj jednak, aby powiedzieć Sony, dlaczego zwróciłeś komputer, jeśli to zrobisz!) Ten typ problemu jest w rzeczywistości dość powszechny; Mam kartę Gigabyte z „Hybrid EFI”, która na przykład zapomina o ustawieniach NVRAM. Przynajmniej z tą płytą można ominąć problem, nazywając mojego menedżera rozruchu / moduł ładujący EFI/BOOT/bootx64.efi.

Jeśli nie możesz go uruchomić i nie chcesz lub nie możesz wymienić komputera, mam dwie inne sugestie dotyczące obejścia tego problemu:

  • Możesz trzymać bootowalną płytę CD lub dysk flash USB pod ręką z rEFInd i używać go, kiedy chcesz uruchomić Linuksa. Może to jednak wymagać użycia klawisza funkcyjnego, aby poinformować komputer, aby uruchamiał się z nośnika wymiennego zamiast z dysku twardego przy każdym uruchomieniu.
  • Możesz wyczyścić partycje z dysku, podzielić je za pomocą MBR i ponownie zainstalować oba systemy operacyjne w trybie BIOS zamiast w trybie EFI. Spowoduje to usunięcie niestabilności EFI z obrazu i umożliwi korzystanie z GRUB-a w trybie BIOS jako programu ładującego. Prawdopodobnie będzie to jednak wymagać detalicznej kopii instalatora systemu Windows 8; przynajmniej dla Windows 7 kopie OEM były mało elastyczne w kwestii trybu instalacji (BIOS vs. EFI). Alternatywnie może być możliwa konwersja z rozruchu w trybie EFI do rozruchu w trybie BIOS bez ponownej instalacji. Możliwy jest odwrotny przełącznik (zamierzałem zamieścić link do strony, w której jest opisany, ale ta strona nie pozwoli mi na opublikowanie więcej niż dwóch linków; przepraszam), i wydaje mi się, że przypominam sobie przeglądanie opisów robienia EFI- gdzieś konwersja na BIOS, ale nie mam pod ręką adresu URL. Wyszukiwarka Google może coś podnieść.

Natknąłem tej stronie po zaksięgowaniu moją pierwszą odpowiedź i ma inną możliwą przyczynę przynajmniej części swojego problemu: Najwyraźniej Windows 8 wykorzystuje metodę wyłączenia, które jest bardziej zbliżona do pracy zawieszenia na dysk. W rezultacie zamontowane partycje mogą ulec uszkodzeniu, jeśli zamkniesz system Windows, a następnie uruchomisz system Linux. Chociaż ESP nie jest zwykle montowany w Windows 7, AFAIK, może być tak, że Windows 8 robi różne rzeczy, a może ESP jest montowany w Windows 7 i po prostu wydaje się być ukryty. W każdym razie możesz wyłączyć tę funkcję systemu Windows 8, wpisując następujące polecenie w oknie Wiersz polecenia administratora:

powercfg /h off
Rod Smith
źródło
Rzeczywiście, Windows 8 niczego nie psuje, gdy jest zimny. Nie mam ochoty publikować błędu, ponieważ w końcu to ja
popsułem
Próbowałem zadzierać z efibootmgr; pokazało, że istnieje niezwykle duża liczba bootmanagerów (więcej niż 3 spodziewałem się), co doprowadziło mnie do lepszego patrzenia na mój dysk; i odkryłem, że w rzeczywistości mam dwie partycje EFI: -x Tylko druga (/ dev / sda2) została pokazana jako EFI system partitionw GDisk, więc pomyślałem, że jest poprawna. Druga to tylko partycja FAT (sda1) o tym samym rozmiarze i standardowej strukturze plików EFI.
itchy355
Jeśli zmienię kolejność rozruchu, aby najpierw załadować rEFInd, wtedy coś zwane ,, Sony Original ”, a następnie inne, to nadpisuje się z powrotem do domyślnych (Windows, Sony Original, inni (refind)) PS; że wszystko zostało powiedziane, biorąc pod uwagę, że „windows” jest moim nadpisanymbootmgfw.efi
itchy355
1
W międzyczasie wypróbowałem powercfg /h offw w8 i TO NAPRAWIONO W8 PRZERWAĆ PARTYCJĘ EFI .. to święty Graal, którego szukałem, wydaje się :) DZIĘKUJĘ DZIĘKUJĘ DZIĘKUJĘ!
itchy355
Cieszę się, że to powercfg /h offrozwiązało twój główny problem. Być może zainteresuje Cię informacja, że ​​natknąłem się na informacje, że niektóre implementacje UEFI wydają się być zakodowane, aby przenieść moduł ładujący o nazwie „Windows Boot Manager” na szczyt ich list. Dlatego zmiana nazwy efibootmgrprogramów ładujących za pomocą może umożliwić zainstalowanie rEFInd (lub cokolwiek zechcesz) pod bardziej rozsądną nazwą pliku.
Rod Smith