Mój klient korzysta z Lenovo Thinkpad T450 od około roku. Na maszynie działa teraz Debian jessie, z jądrem poza jessie-backports 4.5+73~bpo8+1
. Najnowsza wersja UEFI jest flashowana / instalowana. System operacyjny jest zainstalowany w „trybie UEFI”, z dodatkową EFI
partycją itp. Do około czterech tygodni temu konfiguracja była solidna i stabilna: Lenovo Thinkpad i Debian, co może pójść nie tak?
Od czterech tygodni, przy każdym uruchomieniu, maszyna pokazuje błąd, który popełniłem w temacie. Oto obraz tego:
Naciśnięcie Escspowoduje kontynuację procesu rozruchu, który działał „dobrze” ... jeszcze przez dwa tygodnie. Wiadomość zmieniła się z
Naciśnij Esc, aby kontynuować, lub F1, aby przejść do konfiguracji.
do
Posprzątaj TAK lub NIE
(niestety nie mam tego obrazu).
Mój klient nacisnął „TAK”, co spowodowało, że wyczyściłem pamięć masową, o ile widzę to wszystko, co uniemożliwiło uruchomienie komputera. Potem przywróciłem pozycję rozruchową „debian”, a maszyna znów była szczęśliwa, ładowała się dobrze itp. Trwało to jeszcze kilka dni; od ~ jednego tygodnia komunikat pojawia się ponownie przy każdym uruchomieniu.
Próbowałem skontaktować się z obsługą Lenovo cztery razy w ciągu czterech różnych dni i zrezygnowałem po około 30 minutach w kolejce telefonicznej za każdym razem.
Wykorzystałem wszystkie moje umiejętności $ (twoja ulubiona wyszukiwarka-tutaj) w ostatnich dniach i znalazłem prawie nic: skąd to się bierze, jak debugować i, co najważniejsze, jak to naprawić. Wydaje mi się, że w obecnej sytuacji maszyna nie będzie mogła zostać ponownie uruchomiona.
Wszelkie wskazówki bardzo mile widziane!
df -hT /boot/efi
/boot/EFI
, ale o „coś innego”, prawda?) [Jestem nie ma mowy o czymś w rodzaju „eksperta UEFI”, więc całkiem możliwe, że się w tym mylę.]/sys/firmware/efi/efivars/
. Prawdopodobnie są to zmienne, na które narzeka system UEFI./sys/firmware/efi/vars/
: W środku jest „dużo rzeczy”. Wiesz, co powinienem sprawdzić?ls -lh /sys/firmware/efi/efivars | sort -k5 -h
Odpowiedzi:
Jądro Linux od wersji 3.8 streszczenia UEFI jako zmiennej przechowywania
efivarfs
.Montowanie
efivarfs
Jeśli
mount | grep '^efivarfs'
nic nie zwróci, możesz zamontowaćefivarfs
za pomocą tego polecenia:Teraz możesz przeglądać,
/sys/firmware/efi/efivars
czy jakieś zmienne się wyróżniają.Sortowanie zmiennych UEFI według rozmiaru
efivarfs
nie ma pojęcia użycia dysku, ale zgłasza każdą zmienną według rozmiaru. To polecenie sortuje zmienne według wielkości, rosnąco:Następne kroki
To jest tak dalece, jak mogę zabrać cię za pomocą informacji, które podałeś. Następnie musisz dowiedzieć się, co zajmuje tyle miejsca w zmiennej pamięci NVRAM UEFI.
Arch Linux Wiki sugeruje usuwanie
/sys/firmware/efi/efivars/dump-*
plików / zmiennych jeśli istnieją, choć nie wspomina, co tworzy te zmienne.Jak omówiono na czacie , jednym z podejść byłoby zrobienie migawki zmiennych UEFI, przepłukanie ich zgodnie z propozycją oprogramowania układowego Lenovo, ponowne zainstalowanie rozruchu EFI Debiana, wykonanie migawki ponownie, poczekanie na ponowne wypełnienie zmiennych UEFI i zrobienie jednej więcej migawek. Następnie będziesz mógł porównać migawki, aby zobaczyć, co się zmieniło i, mam nadzieję, zidentyfikować, co powoduje, że problematyczna zmienna lub zmienne zajmują tak dużo miejsca.
Jeśli wszystko inne zawiedzie, możesz wrócić do starszego uruchamiania.
źródło
/sys/firmware/efi/efivars
było rzeczywiście wieledump-*
plików. Na razie usunąłem je, co ponownie uszczęśliwiło oprogramowanie układowe UEFI. Jutro opublikuję kolejne. (Dzięki za ten wskaźnik Deltik, bardzo doceniony, nie znalazłem tego sam.)dump-*
pliki zawierają informacje o awarii jądra. Nie wiem dużo o nich, ale spodziewam się, że powinny je tworzyć tylko jądra skonfigurowane do debugowania, dlatego polecam sprawdzenie opcji kompilacji jądra (jeśli jądra są kompilowane lokalnie) i opcji rozruchu, aby sprawdzić, czy coś może być źle skonfigurowane aby niepotrzebnie utworzyć te pliki.Debian
jądra waniliowe z jessie-backports, nie kompilowane samodzielnie. Masz pomysł na to, co powinienem konkretnie?dump
* plików zadziałało dla mnie.