Jak użyć GRUB Rescue do naprawy Linuksa
Opublikowany: 2023-05-14ls
, 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.
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ł.
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.
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
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
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)
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)/
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
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
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
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
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
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