Wygląda na to, że laptop nie uruchamia się na partycji EFI - Dual boot Arch obok Win 10

0

Jakiś czas temu zainstalowałem Arch Linux wraz z Windows 10 na moim Dell XPS15, wszystko wydawało się działać dobrze, jednak ostatnio mój laptop nagle uruchamia się bezpośrednio w Windows i pomija menu systemd-boot.

Stworzyłem bootowalny Arch USB i przejrzałem partycje EFI i Arch i wszystko wydawało się niezmienione. Próbowałem szukać opcji sekwencji rozruchowej w ustawieniach systemu BIOS, a jedyną opcją jest dysk SSD jako całość i nie mogę wybrać określonych partycji do uruchomienia .

Czy ktoś wie, co mogło spowodować tę nagłą zmianę? Czy ktoś miał podobny problem i czy ktoś wie, jak mogę to naprawić?

Oto zrzut ekranu mojego menedżera dysków systemu Windows. Zauważyłem, że partycja Windows jest ustawiona flagą Boot, nie jestem pewien, czy tak ma być? Czy to w ogóle pomaga?

screenshot

arch
źródło
Brzmi to podobnie do tego, co się ze mną działo; zobacz komentarz Rod Smith tutaj: superuser.com/q/1200038/247729 ; Używam także Archa, chociaż używam rEFInd, a nie systemd-boot
Shade

Odpowiedzi:

0

Informacje podstawowe

Próbowałem szukać opcji sekwencji rozruchowej w ustawieniach systemu BIOS, a jedyną opcją jest dysk SSD jako całość i nie mogę wybrać określonych partycji do uruchomienia.

Działasz pod błędnym zrozumieniem - wydaje ci się, że EFI uruchamia partycje, ale tak nie jest. W obszarze EFI pozycje rozruchowe są przechowywane w pamięci NVRAM, a te wpisy wskazują pliki. Możesz mieć jeden, dwa, dziesięć, sto lub więcej programów startowych na a pojedynczy partycję lub rozłóż na dowolną liczbę partycji. Jeśli uważasz, że EFI uruchamia dysk lub partycję, najprawdopodobniej wyciągniesz nieprawidłowe wnioski i spróbujesz naprawić rzeczy w zupełnie niewłaściwy sposób.

Jednym z częściowych wyjątków od tej reguły jest zastępcza nazwa pliku, EFI/BOOT/bootx64.efi (lub warianty dla innych typów procesorów). Jest to nazwa pliku, którą EFI spróbuje uruchomić, jeśli nie znajdzie nic innego. Pierwotnie był przeznaczony do użycia na nośnikach wymiennych, ale nowoczesne EFI (prawie?) Zawsze rozpoznają go także na ESPach dysków twardych. Może to być przydatne narzędzie do pracy z problemami z uruchamianiem, na przykład jeśli oprogramowanie układowe zapomina o regularnych wpisach rozruchu - jak się zdarzyło. Zauważ również, że wiele EFI traktuje program ładujący Windows, EFI/Microsoft/Boot/bootmgfw.efi, jako awaryjna nazwa pliku. Dzięki temu uruchamianie systemu Windows może się odbywać nawet wtedy, gdy ustawienia oprogramowania wbudowanego komputera zostały zmienione - ale oczywiście nie pomaga to użytkownikom systemu Linux.

Zauważyłem, że partycja Windows jest ustawiona flagą Boot, nie jestem pewien, czy tak ma być?

AFAIK, Windows ignoruje „flagę startową” na dyskach GPT. Należy również pamiętać, że „flaga rozruchowa” zgłoszona przez narzędzie Windows, którego zrzut ekranu pokazałeś, oraz „flaga rozruchowa” zgłoszona przez parted a GParted w Linuksie to zupełnie inne rzeczy! (W narzędziach Linux ta „flaga” jest synonimem kodu typu ESP na dyskach GPT).

Więcej bezpośredniej odpowiedzi

Krótko mówiąc, spotykasz to, co nazywam zamach w butach. Widzieć ta moja strona więcej na ten temat. Możesz poprawić to w systemie Windows, używając EasyUEFI narzędzie do przywrócenia wpisu Arch Linux na górę kolejności rozruchu; jednak mówi się, że menedżer rozruchu oprogramowania układowego nie wyświetla żadnych wpisów specyficznych dla systemu operacyjnego. (Wspomniany wpis całego dysku może uruchomić awaryjny program ładujący lub może uruchomić system w trybie BIOS / CSM / legacy; nie mogę być pewien, co bez wyświetlenia wpisu i być może wypróbowanie go, aby zobaczyć, co się dzieje, gdy jest używany. ) To sugeruje mi, że twój zamach w rozruchu został spowodowany tym, że oprogramowanie układowe „zapomniało” całkowicie swoje wpisy NVRAM. Może się tak zdarzyć z powodu błędu w systemie operacyjnym, błędu w oprogramowaniu sprzętowym, błędu użytkownika, awarii sprzętu itp. Najlepszym rozwiązaniem jest utworzenie nowego wpisu EFI NVRAM za pomocą efibootmgr. Zobacz efibootmgr wpis w wiki Arch więcej na ten temat. W skrócie, użyłbyś polecenia takiego jak to (wziętego z wiki Arch):

# efibootmgr --create --disk /dev/sda --part 1 --loader /EFI/refind/refind_x64.efi --label "rEFInd Boot Manager"

Musisz zmienić identyfikator dysku, numer partycji, nazwę pliku i etykietę własnego systemu. Możesz wpisać to polecenie w dowolnym awaryjnym systemie Linux uruchomiony w trybie EFI; lub jeśli możesz uruchomić główną instalację (na przykład przy użyciu my rEFInd menedżer rozruchu na dysku wymiennym), możesz wpisać go z głównej instalacji. Alternatywnie można użyć EasyUEFI do utworzenia równoważnego wpisu.

Jeśli twój system regularnie zapomina o swoich wpisach NVRAM, może być lepiej użyć zastępczej nazwy pliku; jednak, ponieważ masz podwójny rozruch systemu Linux i Windows, może to być niewygodne - jeśli oprogramowanie układowe preferuje wpis programu ładującego Windows nad oficjalną nazwą pliku zastępczego, jedynym sposobem na niezawodne działanie będzie „przejęcie” Program ładujący systemu Windows, umieszczając na swoim komputerze program ładujący lub menedżer rozruchu systemu Linux, a następnie uruchamiając narzędzie systemu Windows z innej lokalizacji. System Windows może w końcu ponownie zainstalować swój własny program ładujący w tej lokalizacji, przywracając Cię tam, gdzie jesteś. Jest to jeden z powodów, dla których stanowczo radzę zwracać wadliwe komputery, które zapominają lub ignorują wpisy startowe NVRAM do sklepu w celu uzyskania zwrotu pieniędzy, gdy tylko jest to możliwe. Niestety, często nie jest to możliwe, ponieważ ta wada jest często wykrywana wiele miesięcy po zakupie komputera.

Rod Smith
źródło
0

Odkryłem problem, wybrałem domyślny program ładujący EFI w menu systemd-boot iz jakiegoś powodu zmieniłem plik efi, który ładuje się na moje obciążenie SSD. Naprawiłem to, wykonując następujące kroki:

  1. Booted to Arch na bootowalnym USB
  2. Zainstalowałem moją partycję EFI
  3. Użył bootctl, aby zobaczyć każdy z bieżących wpisów rozruchowych
    • potwierdziło to to, co myślałem: był wpis dla mojego dysku SSD, który został ustawiony na ładowanie pliku EFI systemu Windows
  4. Z powrotem do menu na rozruchowym Arch USB
  5. Wybrano UEFI Shell v2
  6. Użyłem bcfg, aby dodać nowy wpis rozruchowy wskazujący na mój plik efi systemud-boot
  7. Ustaw nowy wpis rozruchowy na górze sekwencji rozruchowej w moim BIOS-ie.

Gotowe.

arch
źródło