Strona główna
» LINUX
»
Jak usunąć uszkodzone wpisy rozruchowe GRUB w systemie Linux
Jak usunąć uszkodzone wpisy rozruchowe GRUB w systemie Linux
Aby usunąć uszkodzony wpis rozruchowy GRUB-a, najpierw zidentyfikuj, co go utworzyło, a następnie zregeneruj menu GRUB-a z plików źródłowych. W Ubuntu i Debianie uruchom polecenie sudo update-grub; Fedora i Arch używają różnych poleceń. Nie usuwaj wiersza bezpośrednio z wygenerowanego polecenia grub.cfg: późniejsza aktualizacja może go odtworzyć, a edycja w niewłaściwym miejscu może utrudnić uruchomienie systemu.
Zidentyfikuj rodzaj wejścia rozruchowego
Menu GRUB może wyświetlać jądra Linuksa, inne wykryte systemy operacyjne, niestandardowe wpisy oraz opcję konfiguracji oprogramowania układowego. Ostatnia pozycja, często oznaczona jako Ustawienia oprogramowania układowego UEFI , nie jest wpisem dotyczącym uszkodzonego systemu operacyjnego. Starsze jądra i opcje odzyskiwania różnią się również od wpisu dotyczącego odinstalowanego systemu operacyjnego. Zachowaj co najmniej jedno znane, sprawne jądro i jego opcję odzyskiwania, dopóki nie upewnisz się, że system uruchamia się prawidłowo.
Sprawdź, czy niechciana etykieta to wpis systemu operacyjnego czy osobna opcja ustawień oprogramowania sprzętowego.
GRUB zazwyczaj buduje swoje menu na podstawie ustawień, takich jak /etc/default/grubskrypty i /etc/grub.d/. Głównym elementem grub.cfgjest wygenerowany wynik. Podręcznik GNU GRUB opisuje ten wygenerowany przepływ konfiguracji.
Regeneruj GRUB po usunięciu systemu operacyjnego
Jeśli właśnie odinstalowałeś inny system operacyjny lub usunąłeś pakiet jądra, najpierw odbuduj menu. Otwórz terminal w instalacji Linuksa, której menu GRUB używasz, a następnie uruchom polecenie dla tej dystrybucji:
Dystrybucja
Wygeneruj ponownie menu
Ubuntu lub Debian
sudo update-grub
Fedora (bieżące wersje)
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Arch Linux
sudo grub-mkconfig -o /boot/grub/grub.cfg
Ubuntu i Debian dokumentują to update-grubjako pomocnika, który uruchamia się grub-mkconfigw celu zapisania pliku menu. Fedora 34 i nowsze używają tego /boot/grub2/grub.cfgjako głównej konfiguracji; należy unikać nadpisywania małego pliku wskaźnika UEFI w /boot/efi/EFI/fedora/grub.cfg. Arch dokumentuje /boot/grub/grub.cfgścieżkę wyjściową. W przypadku innej dystrybucji należy postępować zgodnie z aktualną dokumentacją GRUB i użyć skonfigurowanej ścieżki wyjściowej.
Dokładne komunikaty skanowania i stanu różnią się w zależności od systemu. To polecenie ponownie generuje menu w systemach Ubuntu i Debian.W obecnych wydaniach Fedory zapisz wygenerowaną konfigurację do pliku /boot/grub2/grub.cfg.Arch Linux używa grub-mkconfigścieżki /boot/grub/grub.cfgwyjściowej.
Sprawdź wynik polecenia pod kątem błędów i odniesień do usuniętego systemu operacyjnego. Uruchom ponownie dopiero po pomyślnym zakończeniu polecenia. Jeśli niechciany wpis zniknie, ręczna edycja menu nie będzie konieczna.
Jeśli wpis powróci
Zatrzymaj automatyczne wykrywanie tylko wtedy, gdy nie jest to potrzebne
GRUB może os-proberwyszukiwać inne systemy operacyjne i dodawać je do swojego menu. Jeśli nadal znajduje przestarzałą instalację, sprawdź, czy inna podłączona lub zamontowana partycja nie wyświetla jej. Jeśli nie chcesz, aby GRUB wyświetlał inne wykryte systemy operacyjne, wykonaj kopię zapasową /etc/default/grubpliku , a następnie ustaw w nim tę opcję:
To ustawienie wyłącza automatyczne wykrywanie innych systemów operacyjnych, więc używaj go tylko wtedy, gdy nie potrzebujesz już tych wpisów.
GRUB_DISABLE_OS_PROBER=true
Zapisz plik i zregeneruj GRUB-a za pomocą polecenia dla swojej dystrybucji podanego powyżej. To ustawienie usuwa z menu wszystkie automatycznie wykryte, nieaktualne systemy, w tym instalację systemu Windows, z której nadal możesz korzystać. Jeśli potrzebujesz podwójnego rozruchu, pozostaw włączone wykrywanie systemu operacyjnego i zamiast tego popraw nieaktualną partycję lub źródło wykrywania. Przewodnik po GRUB-ie w systemie Arch Linux wyjaśnia, jak os-proberzamontowane partycje wpływają na wygenerowane wpisy.
Usuń wpis dodany ręcznie
Wpis niestandardowy można zapisać w /etc/grub.d/40_custompliku źródłowym, takim jak /boot/grub/custom.cfg. Sprawdź te pliki pod kątem przestarzałego menuentrybloku. Usuń tylko ten blok; jeśli edytujesz 40_custom, zachowaj istniejący nagłówek i wiersze skryptu wykonywalnego. Następnie ponownie wygeneruj konfigurację główną. Przewodnik Archa dokumentuje obie lokalizacje wpisów niestandardowych.
Wpisy dodane ręcznie powinny znajdować się w pliku źródłowym, takim jak 40_custom, a nie w pliku wygenerowanym grub.cfg.
Aby sprawdzić wygenerowane menu bez wprowadzania zmian, wyszukaj wiersze z jego nazwami. Dostosuj ścieżkę do swojej dystrybucji; główny plik Fedory znajduje się w /boot/grub2/.
To sprawdzenie tylko do odczytu może pomóc dopasować wyświetlaną etykietę menu do wygenerowanej konfiguracji. Nie usuwa wpisów.
grep -n 'menuentry' /boot/grub/grub.cfg
W przypadku przestarzałego wpisu jądra
Wpisy jądra są zazwyczaj tworzone z jąder nadal zainstalowanych w systemie. Usuń niepotrzebne jądro za pomocą menedżera pakietów dystrybucji, a nie ręcznie usuwając tekst menu lub pliki /boot. Zachowaj działające jądro i co najmniej jedno znane, dobre rozwiązanie awaryjne. Następnie zregeneruj GRUB-a i ponownie sprawdź menu.
Gdy wpis znajduje się w menu rozruchowym UEFI
Jeśli etykieta pojawia się w oknie wyboru oprogramowania układowego komputera, a nie w GRUB-ie, jest to rekord menedżera rozruchu UEFI przechowywany oddzielnie od menu GRUB-a. Możesz sprawdzić te rekordy w sudo efibootmgr -vsystemie Linux z systemem UEFI:
Rekordy oprogramowania sprzętowego UEFI są oddzielone od wpisów w menu ekranowym GRUB-a.
W instrukcji obsługi efibootmgr opisano, że narzędzie może usuwać rekordy rozruchowe UEFI. Nie usuwaj wpisu tylko dlatego, że jego etykieta wygląda nieznajomo: najpierw zidentyfikuj jego program ładujący i upewnij się, że nie jest to bieżąca lub jedyna działająca ścieżka rozruchowa Linuksa. Jeśli potwierdzisz, że konkretny rekord jest nieaktualny, format usuwania podany w instrukcji to sudo efibootmgr -b XXXX -B, zastępując XXXXgo dokładnym szesnastkowym numerem rozruchowym. To polecenie zmienia dane oprogramowania układowego; nie edytuje menu GRUB-a.
Sprawdź wynik
Po odbudowaniu menu lub usunięciu niestandardowego wpisu źródłowego, uruchom ponownie komputer i sprawdź, czy zamierzony system Linux uruchamia się prawidłowo. Jeśli nieaktualny wpis systemowy powróci, sprawdź ponownie jego źródło: wykrywanie systemu operacyjnego, plik niestandardowego menu, zainstalowany pakiet jądra lub oddzielny rekord oprogramowania układowego UEFI. Unikaj bezpośredniej edycji wygenerowanej konfiguracji; naprawa źródła i jego ponowne wygenerowanie to trwała naprawa.