Nie uruchomi się po wyjęciu i włożeniu karty SD?

15

Zainstalowałem Arch Linux na mojej karcie SD za pomocą Win32DiskImager. Jeśli zamknę RPi, wyjmę kartę, włożę ją i ponownie uruchomię RPi, wszystko działa dobrze. Ale jeśli zrobię pełną aktualizację systemu w Pacman pacman -Syu, to będzie problem. Jeśli zamknę się i uruchomię RPi ponownie, nie ma problemu, ale jeśli zamknę się, wyjmij kartę, włóż, a następnie uruchom RPi, nie będzie można uruchomić ponownie, zawsze czekając na ekranie startowym tęczy. Nie muszę też wyjmować karty SD, wystarczy, aby zatrzymać zasilanie na 30 sekund (do całkowitego rozładowania kondensatorów) i uruchomić RPi, i pojawia się ten sam błąd.

Próbowałem wyłączyć aktualizację pakietów Raspberry Pi-firmware dodając IgnorePgk = raspberrypi-firmwarew /etc/pacman.confpliku, a następnie wykonać pełną aktualizację systemu, a potem wyjąć i włożyć sdcard, i to nie możecie znowu zobaczyć na ekranie tęczy, ale ten komunikat o błędzie:

wprowadź opis zdjęcia tutaj

[  20.217557] Kernel panic - not syncing : VFS: Unable to mount root fs on unknown-block(179,2)

PANIC: VFS: Unable to mount root fs on unknown-block(179,2)

Entering kdb (current=0xcd828ca0, pid 1) due to Keyboard Entry
kdb> _ 

Ten błąd występuje również wtedy, gdy aktualizuję tylko linux-raspberrypipakiet, a następnie tylko rebootnie usuwam karty SD i otrzymuję ten sam komunikat o błędzie błędu jądra.

Mam kartę Samsung SDHC 16 GB Class10 (MB-MPAGA alias MB-MPAGAEU). Próbowałem też z kartą Kingmax SDHC 16 GB Class10 i kartą Kingmax SDHC 8 GB Class6, żadne z nich nie działało.

Jeśli zignoruję pakiet raspberrypi-firmwarei linux-raspberrypipakiet w Pacmanie, a następnie dokonam aktualizacji systemu, nie wystąpi błąd, nawet jeśli usunę kartę SD. Więc to musi być jakiś problem w tych pakietach.

Gergely Fehérvári
źródło
2
Jak zasilasz swoje Pi? Czy wyjmujesz kartę SD, gdy Pi jest włączone?
Steve Robillard,
1
Więc zadziałało tylko raz? Większość problemów z uruchamianiem można przypisać niewystarczającej mocy lub złej karcie SD lub obrazowi
Steve Robillard
1
To już drugi raz. Ponownie zainstalowałem system operacyjny i to nie uruchomi się ponownie. Używam Kingmax C10 Microsd z adapterem. Mam 2 przejściówki, żadna nie działa.
Gergely Fehérvári
1
Sugeruję wypróbowanie karty innej marki. Może możesz pożyczyć lub handlować z przyjacielem, aby uniknąć konieczności kupowania / czekania na kolejnego. Czy sprawdziłeś także listę zweryfikowanych kart ( elinux.org/RPi_VerifiedPeripherals ) i przewodnik rozwiązywania problemów ( elinux.org/R-Pi_Trou Rozwiązywanie problemów )
Steve Robillard
2
Miałbyś dużo większą szansę na uzyskanie pomocnego wyniku, gdybyś zredagował to pytanie z całkowitym ponownym zapisaniem, podając dokładną sekwencję operacji, które powodują awarię.
Chris Stratton,

Odpowiedzi:

8

Publikuję to jako odpowiedź, ponieważ w komentarzach nie ma wystarczająco dużo miejsca. Ze wszystkich zebranych dotychczas informacji wynika, że ​​problem dotyczy tylko zawartości / boot / partition. Teraz problem może być spowodowany dwiema przyczynami: 1. / boot / uszkodzenie systemu plików, które uniemożliwia bootloaderowi ładowanie plików oprogramowania układowego 2. Nowa wersja oprogramowania układowego ma regresję, która uniemożliwia działanie karty SD. Musisz sprawdzić, który z nich jest prawdziwy.

Jednym ze sposobów jest ręczna aktualizacja plików w / boot / na komputerze. Aby to zrobić, musisz najpierw upewnić się, że system nie uruchamia się bezpośrednio do systemu graficznego (ponieważ nie będziesz mieć modułów działających, a to uniemożliwiłoby używanie klawiatury / myszy w X). Następnie musisz podłączyć kartę SD do komputera, wykonać kopię zapasową jej zawartości, przejść do strony github w celu pobrania plików oprogramowania układowego, wprowadź katalog rozruchowy i pobierz następujące pliki (przesłaniające istniejące) na / boot / partition - bootcode.bin, kernel.img, start.elf, loader.bin. Nie musisz zastępować żadnych innych plików. Aby pobrać każdy plik, musisz kliknąć jego nazwę, a następnie kliknąć „wyświetl raw” i zapisz go na dysku. Po zapisaniu wszystkich plików upewnij się, że bezpiecznie wysunąłeś kartę SD i sprawdź, czy się uruchamia. W ten sposób możesz sprawdzić, czy najnowsze pliki oprogramowania układowego (jądro i bootloader) są w stanie uruchomić się z karty SD. Jeśli to prawda, możemy być pewni, że twój problem jest spowodowany przez uszkodzenie / boot / partition, a nie regresję jądra / bootloadera.

Jak wspomniano wcześniej, należy również sprawdzić, ile zielonych błysków diody można zobaczyć, gdy zobaczysz tęczowy ekran. Jakiś czas temu do programu ładującego dodano kod rozwiązywania problemów, który kilka razy będzie migał na zielono, aby pokazać, co poszło nie tak. Oto lista: 3 mignięcia: loader.bin nie znaleziono 4 mignięcia: loader.bin nie uruchomiono 5 mignięć: start.elf nie znaleziono 6 mignięć: start.elf nie uruchomiono

Jeśli nie widać żadnych błysków, oznacza to, że albo oprogramowanie układowe jest za stare, aby to obsługiwać, albo nie załadowano nawet bootcode.bin. Możesz również sprawdzić, czy partycja rozruchowa nie jest uszkodzona, sprawdzając, czy wszystkie pliki potrzebne do rozruchu (wspomniane wcześniej) są zdrowe (nie ma rozmiaru zero, istnieje itp.). Możesz także sprawdzić, który plik na partycji rozruchowej powoduje problem, przywracając tylko niektóre z nich. Na przykład przywróć tylko plik kernel.bin lub tylko start.elf + loader.bin + bootcode.bin. Dzięki temu dowiesz się, czy jest to problem z oprogramowaniem układowym lub jądrem.

Krzysztof Adamski
źródło
LOL. dzisiaj zaktualizowałem raspberrypi-firmwarei linux-raspberrypi, i problem już nie istnieje. Wygląda na to, że zostało to naprawione. Więc nawet nie musiałem naprawiać ręcznie w bagażniku, jego działanie. Ale zaakceptuję twoją odpowiedź, ponieważ był to najbliższy problem i jestem pewien, że to rozwiąże problem.
Gergely Fehérvári,
5

To musi być problem z kartą SD. Jeśli zainstaluję Raspbian „wheezy”, to w raspi-config rozszerzę partycję, aby wypełnić kartę, a następnie zamknę Raspberry Pi, wyjmij kartę SD, włóż ponownie, nie uruchomi się. Karta Kingmax 16 GB SDHC Class10 nie jest obsługiwana.


Próbowałem również z Kingmax 8 GB i Samsung 16 GB, jak wspomniałem w pytaniu, i żadne nie działało. Może to jakiś inny problem.

Gergely Fehérvári
źródło
1
Możesz dodać go do listy znanych kart problemów, z którymi podłączyłem wcześniej, i zapisać innym problem, który masz.
Steve Robillard
Musisz sprawdzić, co dokładnie sprawia, że ​​twoja karta nie nadaje się do rozruchu. Na przykład, jeśli uruchomisz system, ale nawet się nie zalogujesz, czy uruchomi się po włączeniu / wyłączeniu? Sprawdź także, czy zielona dioda LED miga podczas wyświetlania ekranu tęczy. Jeśli tak, ile razy?
Krzysztof Adamski,
Tak. Tylko nie uruchamiaj ponownie, jeśli wykonam pełną aktualizację systemu. Bez aktualizacji systemu mogę bez problemu wyjąć i włożyć sdcard, a ładnie się ładuje.
Gergely Fehérvári,
2
Wykonaj kopię zapasową zawartości / boot / partition na komputerze, gdy działa. Następnie wykonaj aktualizację, wyłącz system, przywróć / uruchom pliki na komputerze i sprawdź, czy to rozwiąże problem. Może występować problem z nowym jądrem, które otrzymujesz po aktualizacji lub uszkodzenie / boot / system plików.
Krzysztof Adamski,
Wygląda na to, że ta kopia rozruchowa i przywracanie rozwiązały problem, ale czy to dobrze? Czy to prawdziwe rozwiązanie, czy tylko tymczasowe? Interesujące jest również to, że wygląda na to, że nic się nie zmieniło. Jądro jest takie samo i wydaje się, że zmieniona jest tylko wersja Pacmana.
Gergely Fehérvári,
0

Raspberry PI - PANIC: VFS Nie można zamontować roota na nieznanym bloku (179,2) Otrzymałem ten komunikat po aktualizacji i ponownym uruchomieniu.

PANIKA: VFS Nie można zamontować root fs na nieznanym bloku (179,2) Wprowadzanie kdb (current = 0xcb846c80, pid 1) z powodu wpisu z klawiatury

Problem jest dla mnie łatwy do rozwiązania, przynajmniej dla mnie.

Więc uruchamiam się na RescueCD - każdy Linux jest OK na innym komputerze

Następnie uruchamiam naprawę systemu plików (użyj poprawnej nazwy urządzenia)

fsck / dev / sdb2

Musiałem uruchomić go wiele razy, a następnie wymusiłem sprawdzenie fsck -f / dev / sdb2

System plików został naprawiony.

Może jest tymczasowe rozwiązanie. To, co robię, to synchronizowanie pliku przed ponownym uruchomieniem. Tak więc uruchamiam synchronizację poleceń około 2 lub 3 razy przed ponownym uruchomieniem sudo. Od tego czasu nie widziałem ponownie błędu.

Aktualizacja 1: Prawdopodobnie podkręcenie ma wpływ na wygląd uszkodzenia systemu plików. Ponieważ widziałem poblems zawsze po wyższym obciążeniu, jak na przykład aktualizacja i aktualizacja.

Aktualizacja 2: Tak, jeśli nie jest to podkręcanie, nie ma problemów. Być może z inną kartą SD może również podkręcać.

Update3: Po kilku badaniach i testach dowiedziałem się, że oryginalne pudełko, którego użyłem do Pi, ma otwory wentylacyjne tylko od dołu i dlatego sterownik IO może się przegrzać i spowodował problemy z siecią Ethernet, USB i kartą SD. Ponieważ uruchomiłem go, mogłem bez problemu wykonać nawet średni przetaktowanie.

Aktualizacja 4: Malina nie powiodła się Zostało wysłane do wymiany do dostawcy, zobacz więcej informacji tutaj.

Aktualizacja 5: Malina została wymieniona przez dostawcę. Nowy kawałek wygląda OK. Miejmy nadzieję.

Aktualizacja 6: Nowy kawałek ma około 12 dni pracy 7/24 bez żadnego problemu. Jest nawet cały czas podkręcany (średni). Podejrzewam, że jeśli ktoś nadal ma problem ze stabilnością, powinien poprosić o wymianę w ramach kwarantanny. Po prostu uruchamiam go teraz z zakupionego oryginalnego plastikowego etui bez dodatkowego chłodzenia z kartą SD i zasilaczem jako pierwszym. Nie użyłem żadnych tweeków do oryginalnego systemu Raspbian.

user8624
źródło
0

Miałem podobny problem z paniką jądra po aktualizacji do wersji Linux-Raspberrypi 3.18.3 (BRAK WIĘCEJ najnowszej wersji Linux-Raspberrypi).

W moim przypadku nie były to uszkodzone systemy plików, bootloader ani oprogramowanie układowe. To był pakiet jądra.

Komunikat o błędzie to

Error: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)

Na początku myślałem, że biedna karta SDHC umarła, ale okazało się, że jest w porządku. vfat /bootPartycji i ext4 /i /homebyły dobrze.

Spędzam trochę czasu, a na koniec sprawą jest linux-raspberrypi-3.18.3-3paczka.

Z jakiegoś powodu pakiet aktualizuje plik /boot/cmdline.txt, który wskazuje /niewłaściwą partycję, /dev/mmcblk0p2która powinna być /dev/mmcblk0p5.

UWAGA: pacman -Qo /boot/cmdline.txtpowie Ci, z których pakietów pochodzi.

Po podłączeniu karty SD do netbooka i przywróceniu do dobrej wersji cmdline.txt, podłącz ją z powrotem do Pi, system jest gotowy do pracy.

Terry Wang
źródło