Strona główna
» Porady PC
»
Napraw błąd „Nie znaleziono urządzenia startowego” po zainstalowaniu Debiana na UEFI
Napraw błąd „Nie znaleziono urządzenia startowego” po zainstalowaniu Debiana na UEFI
Gdy komputer wyświetla komunikat „Nie znaleziono urządzenia startowego” bezpośrednio po instalacji Debiana, pliki mogą być nadal nienaruszone. Oprogramowanie sprzętowe może uruchamiać się w niewłaściwym trybie, partycja systemowa EFI (ESP) może nie być zamontowana tam, gdzie oczekuje tego GRUB, lub oprogramowanie sprzętowe mogło utracić lub obniżyć priorytet wpisu rozruchowego UEFI Debiana. Przed zmianą partycji należy wykonać te sprawdzenia w odpowiedniej kolejności.
W tym przewodniku założono, że korzystasz z typowego 64-bitowego komputera x86 z systemem UEFI i Debianem z GRUB-em. Polecenia, które nadają nazwy dyskom lub partycjom, są jedynie przykładami: zidentyfikuj własne urządzenia za pomocą lsblk -f. Nie formatuj ESP ani nie reinstaluj Debiana jako pierwszej odpowiedzi.
1. Sprawdź, czy komputer próbuje uruchomić się w trybie UEFI
Oprogramowanie układowe UEFI odczytuje program EFI z pamięci ESP sformatowanej w systemie FAT i może użyć zapisanego wpisu rozruchowego NVRAM, aby go odnaleźć. Rozruch w trybie Legacy BIOS/CSM przebiega inną ścieżką. Instalator USB uruchomiony w trybie Legacy może zatem skonfigurować ścieżkę rozruchową, która nie odpowiada konfiguracji UEFI zainstalowanego komputera.
Przetestuj wpis Debiana za pomocą jednorazowego menu rozruchowego i wybierz wpis instalatora wyraźnie oznaczony jako UEFI podczas uruchamiania nośnika ratunkowego.
Otwórz jednorazowe menu startowe lub konfigurację oprogramowania sprzętowego podczas uruchamiania. Najpierw wybierz pozycję o nazwie Debian , jeśli jest obecna. Jeśli się uruchomi, otwórz konfigurację oprogramowania sprzętowego i umieść Debiana nad dyskiem wewnętrznym lub innymi systemami operacyjnymi w kolejności rozruchu. Nazwy menu różnią się w zależności od producenta, dlatego zapoznaj się z instrukcją obsługi komputera, aby uzyskać prawidłowy klucz startowy i etykiety menu.
Jeśli potrzebujesz nośnika ratunkowego, wybierz opcję USB zaczynającą się od „UEFI”. Po uruchomieniu Debian Live lub powłoki ratunkowej instalatora sprawdź jego tryb:
test -d /sys/firmware/efi && echo "Booted in UEFI mode" || echo "Booted in Legacy mode"
Jeśli wynik wskazuje na „Legacy”, uruchom ponownie i wybierz pozycję „UEFI USB”. Narzędzia takie jak „ efibootmgrUEFI USB” nie mogą zarządzać zmiennymi oprogramowania sprzętowego w środowisku z rozruchem ze starszej wersji. Jeśli nie pojawi się opcja „UEFI USB”, sprawdź, czy rozruch UEFI jest włączony w oprogramowaniu sprzętowym; unikaj zmiany ustawień Secure Boot lub kontrolera pamięci masowej, chyba że znasz konsekwencje dla istniejącej instalacji.
2. Zidentyfikuj zainstalowany system i jego partycję systemową EFI
Z poziomu środowiska uruchomionego za pomocą UEFI przeprowadź inspekcję urządzeń i systemów plików:
lsblk -f
Poszukaj głównego systemu plików Debiana, często ext4lub btrfs, oraz małej partycji FAT32 z typem GPT „EFI System”. ESP może być współdzielony z systemem Windows; to normalne. Przykładowe etykiety /dev/sda1i /dev/sda2poniższe są symbolami zastępczymi, a nie domyślnymi. Dyski NVMe często używają nazw takich jak /dev/nvme0n1p1.
Użyj informacji o systemie plików i partycjach z lsblk, aby zidentyfikować istniejący katalog główny ESP i Debiana; nie polegaj na przykładowych nazwach urządzeń w ilustracji.
Najpierw zamontuj partycję główną w trybie tylko do odczytu, jeśli potrzebujesz jej tylko sprawdzić, lub zamontuj ją normalnie w celu naprawy po zidentyfikowaniu prawidłowej partycji. Jeśli instalacja korzysta z osobnej /bootpartycji, zamontuj ją poniżej /mnt/bootprzed zamontowaniem ESP. Nie twórz ani nie formatuj zastępczego ESP tylko dlatego, że nie jest on widoczny na liście.
W przypadku typowego układu z włączonym elementem root /dev/sda2i włączonym ESP /dev/sda1, mocowanie naprawcze wygląda następująco:
mount /dev/sda2 /mnt
mkdir -p /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
cat /mnt/etc/fstab
Porównaj UUID ESP zgłoszony przez lsblk -fz wpisem dla /boot/efiin /mnt/etc/fstab. Jeśli jest inny, zatrzymaj się i sprawdź, która partycja należy do tej instalacji Debiana. Niektóre systemy montują ESP w innym punkcie montowania /bootlub używają innego układu; odtwórz układ zainstalowanego systemu, zamiast bezmyślnie korzystać z przykładowego punktu montowania.
3. Naprawa GRUB-a ze środowiska ratunkowego UEFI
Gdy katalog główny, wszelkie oddzielne pliki .NET /booti ESP zostaną zamontowane w przeznaczonych dla nich lokalizacjach /mnt, należy powiązać katalogi systemowe i uruchomić instalację:
for i in /dev /dev/pts /proc /sys /run; do mount --bind "$i" "/mnt$i"; done
chroot /mnt
W chroot sprawdź, czy to /boot/efijest ESP i czy zainstalowany system to ten, który zamierzasz naprawić. W przypadku standardowej instalacji GRUB Debiana amd64 z wyłączonym Bezpiecznym Rozruchem, zainstaluj ponownie program ładujący EFI i odbuduj menu:
Polecenia naprawy należy uruchamiać dopiero po zamontowaniu prawidłowego katalogu głównego Debiana i ESP. Wyświetlane nazwy partycji są przykładami, a nie nazwami przetestowanej maszyny.
Powyższa wartość --targetdotyczy komputerów z procesorem amd64. Systemy Debian ARM64 używają innego celu. Oficjalna strona podręcznika GRUB definiuje go --efi-directoryjako katalog główny ESP i dokumentuje opcje bezpiecznego rozruchu UEFI. Jeśli bezpieczny rozruch jest włączony, należy nadal korzystać z podpisanego łańcucha rozruchowego Debiana: nie należy wymuszać niepodpisanego programu ładującego na ESP. Podpisane pakiety GRUB i shim Debiana zapewniają odpowiednią ścieżkę; należy postępować zgodnie z dokumentacją bezpiecznego rozruchu Debiana dla swojej wersji i architektury.
Jeśli grub-installpojawi się komunikat o niedostępności zmiennych EFI, sprawdź ponownie, czy aktywny dysk USB został uruchomiony w trybie UEFI i czy /sys/firmware/efiistnieje taka możliwość. Jeśli zmienne oprogramowania układowego pozostają niedostępne, możliwe, że uda się umieścić moduł ładujący na urządzeniu ESP, ale nie zarejestrować jego wpisu w pamięci NVRAM z tej sesji; użyj opcji oprogramowania układowego „Rozruch z pliku EFI” lub powtórz naprawę z poprawnie uruchomionego środowiska UEFI. Nie traktuj ostrzeżenia jako potwierdzenia utworzenia wpisu oprogramowania układowego.
4. Sprawdź wpis oprogramowania układowego Debiana i kolejność rozruchu
Wyjdź z chroot, a następnie sprawdź zmienne rozruchowe UEFI:
exit
efibootmgr -v
Poszukaj wpisu dotyczącego Debiana i zanotuj BootOrder. Jeśli Debian jest wymieniony, ale inne urządzenie pojawia się jako pierwsze, użyj konfiguracji oprogramowania układowego, aby umieścić Debiana na pierwszym miejscu. Często jest to łatwiejsze i bezpieczniejsze niż przepisywanie pełnej kolejności rozruchu w poleceniu. Strona efibootmgrpodręcznika opisuje, jak nazywane są wpisy i jak BootOrderokreśla, który aktywny wpis oprogramowania układowego jest uruchamiany jako pierwszy.
Po naprawie sprawdź, czy wpis Debian istnieje i pojawia się przed innymi opcjami rozruchu w kolejności rozruchu oprogramowania sprzętowego.
Jeśli brakuje wpisu Debian, ale ESP zawiera EFI/debian, użyj przeglądarki plików oprogramowania układowego (jeśli jest dostępna), aby wybrać program ładujący EFI Debiana. Po włączeniu funkcji Secure Boot jest to zazwyczaj podpisany plik shim, np. EFI/debian/shimx64.efina platformie amd64; po wyłączeniu funkcji Secure Boot plik EFI GRUB może być dostępny. Dokładne nazwy plików różnią się w zależności od architektury i stanu pakietu. Jeśli oprogramowanie układowe nie oferuje przeglądarki plików, uruchom ponownie naprawę GRUB z dostępem do pamięci NVRAM.
Niektóre aktualizacje oprogramowania układowego lub resety ustawień usuwają wpisy Linuksa, a niektóre implementacje oprogramowania układowego nie zachowują nowo utworzonych wpisów. Dokumentacja UEFI Debiana opisuje również ścieżkę zapasową dla nośników wymiennych, ale powinno to być celowe obejście problemu kompatybilności, a nie powód do kopiowania plików EFI nad istniejącymi plikami bez ich sprawdzenia.
5. Dopasuj objaw do prawdopodobnego rozwiązania
Debian uruchamia się od jednorazowego menu: napraw kolejność rozruchu w oprogramowaniu układowym.
Interfejs UEFI USB działa, ale brakuje Debiana: sprawdź mocowanie ESP i zainstaluj ponownie właściwy program ładujący EFI.
efibootmgrbrak dostępu do zmiennych: uruchom ponownie nośnik ratunkowy w trybie UEFI.
Debian pojawia się, ale wraca do oprogramowania sprzętowego: sprawdź zgodność z Secure Boot, ścieżkę programu ładującego i czy ESP należy do tej instalacji.
Istnieje kilka instalacji Linuksa: przed uruchomieniem programu zidentyfikuj, który katalog główny i para ESP są ze sobą powiązane grub-install.
Debian 13 (Trixie) wprowadził opcjonalny systemd-boot z konfiguracją shim, udokumentowaną przez Debiana. Jeśli celowo zainstalowałeś ten menedżer rozruchu zamiast GRUB-a, skorzystaj z odpowiednich instrukcji odzyskiwania systemd-boot; uruchomienie poleceń naprawy GRUB-a nie naprawi wpisów systemd-boot. W przypadku typowego systemu Debian GRUB wybranego przez instalator, powyższe sprawdzenia pozostają istotną ścieżką.
6. Uruchom ponownie i sprawdź
Pozostaw chroot, odmontuj systemy plików w odwrotnej kolejności, odłącz dysk USB i uruchom ponownie. Jeśli odmontowanie zgłosi, że system docelowy jest zajęty, zamknij powłoki używając tego montowania i spróbuj ponownie, zamiast wymuszać zamknięcie systemu, gdy systemy plików są aktywne. Upewnij się, że oprogramowanie układowe uruchamia Debiana bez podłączonego USB. Następnie sprawdź, czy oczekiwane jądro i pulpit ładują się prawidłowo i czy drugi restart nadal działa. Jeśli problem się powtórzy, zapisz dokładny komunikat oprogramowania układowego, wynik polecenia lsblk -f, a także informację, czy efibootmgr -vpojawia się wpis Debiana; te szczegóły odróżniają brak wpisu od problemu z programem ładującym lub systemem plików.