Jak naprawić rozruch systemu Linux w błędzie BIOS?

Opublikowany: 2022-09-28
Laptop na niebieskim tle z wierszem poleceń systemu Linux.
fatmawati achmad zaenuri/Shutterstock.com

Wiadomo, że aktualizacje GRUB powodują uruchamianie komputerów z systemem Linux w ustawieniach BIOS lub UEFI. Rozwiązanie tego problemu wykorzystuje przydatną sztuczkę odzyskiwania systemu, o której naprawdę powinieneś wiedzieć.

Studium przypadku: GRUB 2:2.06.r322

Aktualizacja systemu dla dystrybucji Linuksa opartych na Arch i Arch w lecie 2022 r. zawierała nową wersję GRUB-a. GRUB to skrót od gr i unified bootloader .

Bootloader to aplikacja, która uruchamia proces uruchamiania, gdy komputer jest włączony. Należy uruchomić kilka narzędzi programowych i narzędzi — z odpowiedniej partycji i we właściwej kolejności — aby ostatecznie uzyskać działający i dostępny system operacyjny. GRUB rozpoczyna tę kaskadę wydarzeń.

Jeśli masz więcej niż jeden system operacyjny zainstalowany na swoim komputerze, GRUB udostępnia menu, dzięki któremu możesz wybrać, który system operacyjny ma być używany. Jedna ze zmian w kodzie GRUB 2:2.06.r322 dodała obsługę nowej opcji GRUB, --is-supported . Ta opcja służy do wskazania, czy istnieje możliwość rozruchu do oprogramowania układowego, czy nie. Jeśli tak, GRUB dodaje wpis do menu rozruchu, aby umożliwić rozruch z ustawieniami EUFI.

Nowa opcja została wymieniona w skrypcie o nazwie „30_uefi-firmware.in”. Różnica dla tego pliku pokazuje, że instrukcja if została usunięta i dodano dwie linie.

Jedna z nowych linii była zamiennikiem instrukcji if . Druga nowa linia zawiera fwsetup --is-supported . „fw” w „fwsetup” oznacza oprogramowanie układowe. Ale ponieważ ten wiersz znajduje się powyżej nowej instrukcji if , zawsze będzie działał. Gdyby znajdowała się w treści instrukcji if , zostałaby uruchomiona tylko wtedy, gdy test w instrukcji if okazałby się prawdą.

Co to jest UEFI i czym różni się od BIOS-u?
Czym jest UEFI i czym różni się od BIOS-u?

Spowodowało to problemy na wielu, ale nie na wszystkich komputerach UEFI. Zależało to od tego, czy wersja GRUB-a, którą już zainstalowałeś, obsługuje to polecenie. Dotknięte maszyny zrobiłyby jedną z dwóch rzeczy. Przeszliby do pętli rozruchowej, w której proces rozruchu nigdy nie został ukończony, ale był ciągle uruchamiany ponownie, albo komputer uruchomiłby się bezpośrednio w ustawieniach oprogramowania układowego UEFI. Tak czy inaczej, nie było możliwości zmuszenia komputera do uruchomienia systemu Linux.

Kiedy masz do czynienia z takimi sytuacjami, zawsze istnieje opcja nuklearnej pełnej reinstalacji. To zadziała, ale w zależności od sposobu partycjonowania dysku twardego bez ostatniej kopii zapasowej możesz utracić dane.

Metoda o niskim wpływie wykorzystuje chroot i Live USB lub Live CD/DVD. Jest to dobra technika, aby zrozumieć i mieć w zanadrzu wszelkiego rodzaju awarie systemu, gdy nie możesz uruchomić komputera lub zalogować się do komputera z systemem Linux.

Technika, której użyjemy

Aby skorzystać z tej techniki, musisz mieć bootowalne USB lub CD/DVD z dystrybucją Linuksa, które uruchamiają się do działającej instancji Linuksa. Zazwyczaj są one nazywane Live USB lub Live CD/DVD. Wszystkie główne dystrybucje obsługują tę funkcję.

Jak utworzyć Live Ubuntu USB Drive z trwałym przechowywaniem?
POWIĄZANE Jak utworzyć dysk USB na żywo Ubuntu z trwałą pamięcią masową

Nie będziemy niczego instalować, więc media na żywo nie muszą być tą samą dystrybucją, którą zainstalowałeś na swoim komputerze. Możesz na przykład użyć Ubuntu USB do naprawy komputera EndeavourOS. Jeśli nie masz dostępu do żadnych multimediów na żywo, musisz użyć innego komputera, aby pobrać obraz i zapisać go na pamięci USB lub na płycie CD/DVD.

Po uruchomieniu z nośnika na żywo będziesz mógł zamontować i uzyskać dostęp do istniejącego systemu plików. Zainstalowany system plików pojawi się jako część systemu plików systemu Linux, który został uruchomiony z nośnika na żywo. To wspaniale. Jeśli mamy do niego dostęp, mamy szansę go naprawić. Ale to rodzi problem.

Jak korzystać z polecenia chroot w systemie Linux?
POWIĄZANE Jak korzystać z polecenia chroot w systemie Linux

Katalogiem głównym tego hybrydowego systemu plików jest katalog główny systemu plików multimediów na żywo, a nie katalog główny zainstalowanego systemu plików. Aby ścieżki plików skonfigurowane w systemie Linux odwoływały się do ich poprawnych lokalizacji docelowych — gdzieś w systemie plików, a nie gdzieś w stosunku do katalogu głównego działającego systemu Linux — musimy użyć chroot , aby ustawić nowy katalog główny, który wskazuje na katalog główny zainstalowany system plików. Innymi słowy, ścieżki zaczynające się od „/” będą używać katalogu głównego systemu plików jako punktu początkowego.

Komputer testowy, którego użyliśmy do tego, używa systemu plików ext4 , ale możesz użyć tej techniki również w innych systemach plików. Musisz tylko określić, które partycje lub woluminy chcesz zamontować i gdzie je zamontować. Zasady są takie same.

Wprowadzanie go w praktykę

Stworzyliśmy bootowalny dysk USB i uruchomiliśmy z niego nasz dotknięty komputer. Dystrybucja, z której korzystaliśmy, to EndeavourOS. Media na żywo EndeavourOS uruchamiają się w środowisku graficznym XFCE 4.

Media na żywo EndeavourOS uruchomione w środowisku graficznym XFCE

Aby określić, które partycje zawierają katalog główny systemu plików, a która jest partycją rozruchową, otwórz okno terminala i użyj polecenia fdisk . Używamy opcji -l (lista partycji). Musisz też użyć sudo .

 sudo fdisk -l 

Używanie polecenia sudo fdisk -l do wyświetlania partycji i urządzeń

Przewiń dane wyjściowe, aż zobaczysz wpisy oznaczone "System EFI" i "System plików Linux".

Dane wyjściowe polecenia sudo fdisk -l z podświetlonymi partycjami rozruchowymi i głównymi

Na tym komputerze oba są na dysku twardym sda . Znajdują się one w partycjach pierwszej i drugiej, jak wskazują etykiety partycji /dev/sda1 i /dev/sda2 .

Na twoim komputerze mogą znajdować się na różnych dyskach twardych i partycjach. Zwróć uwagę na partycje, na których się znajdują, będziemy musieli ich użyć w następnych poleceniach.

Musimy zamontować systemy plików na tych partycjach, dołączając je do działającego systemu plików. Polecenie mount zrobi to za nas. Pamiętaj, że etykiety twoich partycji mogą się różnić, więc upewnij się, że używasz tych z wyników polecenia fdisk .

 sudo mount /dev/sda2 /mnt
 sudo mount /dev/sda1 /mnt/boot/efi 

Montowanie systemu plików rozruchowych i głównego systemu plików

Aby efektywny katalog główny systemu plików zaczynał się od katalogu głównego aktualnie zainstalowanego systemu plików, użyjemy chroot , aby ustawić katalog główny jako punkt montowania „/mnt”. W tym miejscu katalog główny zainstalowanego systemu plików jest dołączany do działającego systemu plików.

 sudo chroot / mnt 

Używanie polecenia chroot do tworzenia nowego efektywnego roota

Zauważ, że wiersz polecenia zmienia się, aby pokazać, że jesteś teraz skutecznie zalogowany jako root i jesteś w katalogu głównym „/” systemu plików twojego komputera.

Możemy to łatwo przetestować, przechodząc do katalogu „/home” i sprawdzając, jakie katalogi w nim znajdują się.

 cd /home
 ls 

Używanie ls do wyświetlania kont użytkowników

Powinieneś zobaczyć katalog dla każdego użytkownika skonfigurowanego na twoim komputerze, w tym dla twojego własnego konta użytkownika. Ten komputer ma jednego użytkownika, zwanego „dave”. Gdybyśmy użyli cd /home przed użyciem polecenia chroot , weszlibyśmy do katalogu „/home” w systemie plików live.

Żeby było jasne, teraz uzyskujesz dostęp do swojego prawdziwego systemu plików jako użytkownik root , więc bądź ostrożny.

Aby naprawić problem z GRUB 2:2.06.r322, wystarczyło uruchomić polecenie grub-install .

 grub-zainstaluj 

Uruchamianie polecenia grub-install, aby naprawić błąd rozruchu GRUB z błędem BIOS

Uruchamianie grub-install ślepo w ten sposób zwykle nie jest zalecane. W tym przypadku to właśnie było wymagane.

Napraw lub wymień

Jeśli próbujesz rozwiązać inny problem, musisz zajrzeć na fora swojej dystrybucji, aby znaleźć odpowiednią poprawkę dla swojego problemu. Jeśli jest to powszechna skarga, wkrótce znajdziesz rozwiązanie.

Przynajmniej teraz, gdy masz dostęp do swojego systemu plików, możesz skopiować swoje dane na jakiś nośnik wymienny. Jeśli zdecydujesz się na pełną ponowną instalację, nie stracisz danych.

POWIĄZANE: Jak kopiować pliki za pomocą polecenia „zainstaluj” w systemie Linux