Jak użyć GRUB Rescue do naprawy Linuksa

Opublikowany: 2023-05-14
Ekran startowy Ubuntu Linux na laptopie
Jordan Gloor / How-To Geek
Jeśli twoje powłoki GRUB wyświetlają monit „grub>”, możesz użyć poleceń ls , set , linux i initrd , aby naprawić system Linux. Jeśli zamiast tego zobaczysz monit „grub rescue>”, użyj poleceń set , insmod , linux i initrd , aby uruchomić komputer.

Jeśli twój komputer z systemem Linux nie może uruchomić swojego systemu operacyjnego, prawdopodobnie będziesz wpatrywać się w monit w powłoce GRUB. Wykonaj poniższe kroki, aby naprawić uszkodzone procesy rozruchowe.

Spis treści

Gdy Twój program ładujący nie uruchamia się
Korzystanie z powłoki GRUB
Korzystanie z powłoki ratunkowej GRUB
Inne możliwe środki zaradcze

Gdy Twój program ładujący nie uruchamia się

Istnieje bardzo niewiele problemów z komputerem, które sprawiają, że serce zapada się tak głęboko i szybko, jak awaria uruchamiania. Bez działającego systemu operacyjnego komputer nie jest tak naprawdę komputerem.

Może to być bardzo nieprzejrzysty problem, bez łatwego sposobu na zagłębienie się w pierwotną przyczynę. Bez dostępu do Linuksa nie możesz użyć żadnych zwykłych narzędzi diagnostycznych i procesów, których użyłbyś do zbadania problemu. I bez określenia, na czym polega problem, jak możesz to naprawić?

W systemie Linux GRUB to oprogramowanie kontrolujące proces uruchamiania. Jeśli masz zainstalowanych wiele systemów operacyjnych, możesz wybrać ten, z którego chcesz się uruchomić.

GRUB jest kontrolowany przez swoją konfigurację. Opiera się również na innych plikach pomocniczych, aby wykonywać swoje funkcje. Jeśli któregoś z nich brakuje lub jest uszkodzony, GRUB nie będzie działać. Zmiany na dyskach twardych i partycjach komputera muszą zostać odzwierciedlone w konfiguracji GRUB-a. Jeśli tak nie jest, instrukcje GRUB-a nie będą miały sensu, a proces uruchamiania nie będzie działał.

Jak nagrać plik ISO na dysk USB w systemie Linux
POWIĄZANE Jak nagrać plik ISO na dysk USB w systemie Linux

Na marginesie, to, co wszyscy nazywamy GRUB, to w rzeczywistości GRUB 2. Jest to zaawansowana wersja GRUB, która została wydana w 2012 roku. Wśród innych zmian zmieniła sposób tworzenia pliku „grub.cfg” i pozwoliła ci rozruch z nośnika wymiennego.

Jeśli GRUB nie może załadować systemu operacyjnego, zostaniesz wpatrzony w monit w powłoce GRUB. To minimalistyczne środowisko, które pozwoli ci wykonać kilka czynności. Wykonane poprawnie, jednak te kroki mogą przywrócić komputer do życia.

Istnieją dwie różne powłoki GRUB. W zależności od pierwotnej przyczyny problemu, możesz znaleźć się w wierszu polecenia powłoki GRUB:

 grub>

lub w wierszu polecenia powłoki ratunkowej GRUB:

 ratowanie gruba>

Powłoka ratunkowa GRUB jest jeszcze bardziej ograniczona niż powłoka GRUB, ale wciąż ma wystarczającą moc, aby uruchomić komputer. Po uruchomieniu komputera jesteś w znacznie lepszej sytuacji, aby wyleczyć pierwotną przyczynę.

Korzystanie z powłoki GRUB

Powłoka GRUB to interfejs wiersza poleceń, który umożliwia korzystanie z niewielkiego podzbioru poleceń Linuksa. Jeśli znajdziesz się tutaj zamiast na zwykłym ekranie logowania, oznacza to, że proces uruchamiania jest pomieszany.

Monit powłoki GRUB

Polecenia, do których masz dostęp, różnią się od zwykłych wersji Linuksa. Na przykład polecenie ls powłoki GRUB nie jest poleceniem Bash ls . Ma z nim bardzo mało wspólnego. Możemy to zobaczyć za pomocą opcji --help .

 ls --pomoc 

Używanie opcji --help z wersją ls w powłoce GRUB

Zawiera tylko pięć opcji. To bardzo daleko od dziesiątek opcji obsługiwanych przez ls w Bash. Niemniej jednak, nawet z naszą nieco wyciszoną paletą poleceń, nadal możemy naprawić sytuację.

Po znaku zachęty wpisz ls i naciśnij „Enter”.

 ls 

Dane wyjściowe ls w powłoce GRUB, pokazujące dyski i partycje

Na tym komputerze wyświetla trzy elementy.

  • (hd0) to pierwszy dysk twardy.
  • (hd0,gpt1) to pierwsza partycja na pierwszym dysku twardym.
  • (hd0,gpt2) to druga partycja na pierwszym dysku twardym.

Etykieta „gpt” oznacza tablicę partycji GUID. Musimy dołączyć nawiasy „ () ”, gdy odwołujemy się do partycji, ale możemy pominąć etykietę.

Aby po kolei spojrzeć na partycje, użyjemy ls .

 ls (hd0,1)
 ls (hd0,2) 

Używanie ls w powłoce GRUB do identyfikacji partycji Linux

Odkryliśmy, że na drugiej partycji znajduje się system plików Linux. Zbadamy trochę dalej, patrząc na katalog główny tej partycji.

 ls (hd0,2)/ 

Używanie ls w wersji powłoki GRUB do zbadania określonej partycji

Najwyraźniej jest to partycja Linux z katalogiem rozruchowym. Tutaj przechowywane są pliki GRUB, obrazy rozruchowe systemu Linux i inne pliki rozruchowe.

Na tym komputerze będziemy musieli odwoływać się do partycji (hd0,2) , gdy wydamy nasze polecenia. Na swoim komputerze użyłbyś dowolnej partycji, na której znajduje się instalacja Linuksa.

Możemy użyć polecenia cat , aby przeszukać pliki tekstowe, dodając ścieżkę katalogu i nazwę pliku do nazwy partycji, na przykład:

 kot (hd0,2)/etc/problem 

Patrząc na wersję Linuksa za pomocą polecenia cat w powłoce GRUB

W przypadku instalacji z wieloma rozruchami jest to przydatny sposób sprawdzenia, czy znajdujesz się na właściwej partycji. Świetnie nadaje się również do przeglądania plików konfiguracyjnych.

Tutaj używamy polecenia ls z opcjami -l (długie) i -h (rozmiary czytelne dla człowieka), aby wyświetlić listę plików w katalogu „/ boot”.

 ls -lh (hd0,2)/boot 

Wyświetlanie listy plików w katalogu /boot przy użyciu ls w wersji GURB

Aby uruchomić ten komputer, musimy powiedzieć GRUB-owi, że nasza nowo odkryta partycja Linuksa zawiera pliki rozruchowe.

 ustaw root=(hd0,2)

Musimy określić, z którego jądra systemu Linux ma zostać uruchomione. Robimy to za pomocą polecenia linux . Zauważ, że musimy również podać katalog główny przy użyciu zwykłego schematu nazewnictwa dysków twardych i partycji systemu Linux.

 linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2

Na naszym przykładowym komputerze używamy (hd0) , który jest pierwszym dyskiem twardym. Nazywa się to sda w zwykłej nomenklaturze Linuksa. Odkryliśmy, że druga partycja to partycja Linux, więc musimy określić sda2 .

Twoja maszyna może być inna. Na przykład, jeśli twoja partycja Linux jest zgłoszona jako (hd2,1) , oznacza to partycję pierwszą na trzecim dysku twardym lub sdc1 .

Musimy również określić, który obraz systemu plików oparty na pamięci RAM ma być używany podczas uruchamiania komputera. To musi używać tego samego komponentu liczbowego, co jądro Linuksa, którego używamy.

 initrd /boot/initrd.img-6.2.0-20-generic 

Ustawianie parametrów rozruchu w powłoce GRUB

Teraz, aby uruchomić nasz system, wpisz „boot” i naciśnij „Enter”.

To powinno uruchomić komputer w systemie Linux. To sprawiło, że znowu działamy, ale nadal musimy naprawić GRUB, więc nie musimy tego robić za każdym razem, gdy uruchamiamy nasz komputer.

Uruchomimy update-grub . To przeskanuje nasz system, zidentyfikuje systemy operacyjne i utworzy nową konfigurację GRUB. Musimy uruchomić to jako użytkownik root.

 sudo update-grub 

Uruchamianie update-grub w celu odbudowania pliku grub.cfg

Rzadko może być konieczna ponowna instalacja programu ładującego GRUB, używając grub-install .

 sudo grub-install /dev/sda

Zauważ, że nie musisz określać, na której partycji chcesz zainstalować, tylko na którym dysku. W normalnych instalacjach jest to ten sam dysk, na którym znajduje się twój Linux.

Dowód puddingu pojawia się wraz z następnym restartem. Komputer powinien normalnie się zrestartować.

POWIĄZANE: Jak skonfigurować ustawienia programu ładującego GRUB2

Korzystanie z powłoki ratunkowej GRUB

W zależności od natury problemu z rozruchem, możesz nie zostać wrzucony do powłoki GRUB. Możesz pozostać w trybie ratunkowym GRUB. W takim przypadku monit będzie wyglądał następująco:

 ratowanie gruba>

Polecenia, które musimy wydać w tej powłoce, są inne. Musimy użyć ls , aby znaleźć partycję Linux, tak jakbyś używał powłoki GRUB. Po zidentyfikowaniu partycji Linux możesz śmiało wprowadzić te polecenia.

Pamiętaj, aby używać identyfikatorów dysków i numerów wersji jądra, które są poprawne dla twojego komputera. Polecenie insmod ładuje moduły jądra.

 ustaw prefiks=(hd0,2)/boot/grub
 ustaw root=(hd0,2)
 insmod normalnie
 insmod linux
 linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2
 initrd /boot/initrd.img-6.2.0-20-generic 

Ustawianie parametrów rozruchu w powłoce ratunkowej GRUB

Następnie możesz wpisać „boot” i nacisnąć „Enter”, aby ponownie uruchomić komputer. Po ponownym uruchomieniu i zalogowaniu zaktualizuj GRUB za pomocą polecenia update-grub .

Inne możliwe środki zaradcze

Jeśli okaże się, że problemem są brakujące pliki rozruchowe, takie jak „vmlinuz” i „initrd.img”, możesz uruchomić komputer z dysku Live DVD lub rozruchowego dysku flash USB z systemem Linux i skopiować brakujące pliki na miejsce.

Zwróć uwagę, że pliki „vmlinuz” i „initrd.img” muszą mieć te same numery wersji, ponieważ działają jako dopasowana para.

POWIĄZANE: Jak utworzyć rozruchowy Linux Live USB na komputerze Mac