Ups, potrzebuję poziomu uruchamiania 1

10

Więc mam błąd w skrypcie w katalogu init.d i dolnej linii ... Nie mogę całkowicie uruchomić pi.

Jak mogę uruchomić system na poziomie 1 (tryb pojedynczego użytkownika), aby naprawić błąd?

Deac Karns
źródło
1
Sprawdź ten link, aby uzyskać dostęp do kilku opcji raspberrypi.org/phpBB3/viewtopic.php?f=28&t=16185
Steve Robillard

Odpowiedzi:

16

To nie jest dokładnie sposób na wejście na poziom 1, ale w oprogramowaniu Raspberry Pi dostępna jest opcja rozruchu w „trybie awaryjnym”. Aby go włączyć, podczas uruchamiania należy wstawić zworkę między stykami 5 i 6 w nagłówku P1 (GPIO).

Piny trybu bezpiecznego

Jeśli to zrobisz, bootloader zignoruje config.txtplik (oprócz avoid_safe_modeopcji, która może być użyta do wyłączenia tej funkcji) i spróbuje uruchomić kernel_emergency.img(jeśli jest dostępny) zamiast kernel.img.

Domyślnie kernel_emergency.imgma specjalną initramfswbudowaną funkcję awaryjną i uruchomi się do tego systemu operacyjnego opartego na busyboksie, aby można było ręcznie naprawić problemy w systemie operacyjnym (lub zmienić parametry rozruchowe jądra, aby uruchomić poziom 1 przy następnym uruchomieniu). Pamiętaj, aby uruchomić syncprzed wyłączeniem ponieważ rebootlub shutdownpolecenia może nie działać.

Krzysztof Adamski
źródło
Właśnie tego szukałem.
Deac Karns,
5
  • Naciśnij klawisz shift podczas uruchamiania.
  • Naciśnij „e”, aby edytować konfigurację
  • tab do cmdline.txt
  • dodaj na końcu linii

    init=/bin/sh

  • naciśnij OK, a następnie Esc, aby uruchomić ...... uruchomi cię do linii poleceń

    # /etc/init.d/mountall.sh (to coś zrobi)

    # mount -n -o remount,rw / (spowoduje to ponowne zamontowanie / umożliwianie wprowadzania zmian)

  • teraz powinieneś być w stanie edytować init.d config ......

  • kiedy ponownie uruchomisz ponownie .... przytrzymaj Shift i usuń init = / bin / sh
Mike Sandler
źródło
Świetny! Znalazłem instrukcje dotyczące inicjowania sh, ale brakowało mi rzeczy do ponownego zamontowania, których potrzebowałem. Dzięki!
Richard Turner
3

Kilka innych odpowiedzi tutaj jest teraz niepoprawnych:

  • Metoda zworki GPIO została usunięta z wcześniejszego systemu operacyjnego, więc działa tylko teraz, jeśli używasz obrazu NOOBS

  • Przejście Raspbian Jessie na systemd przerywa init=/bin/shwłamanie. Kiedy to robisz, narzeka,can't access tty: job control turned off

Na szczęście istnieje rozwiązanie, które działa, co faktycznie zapewnia dostęp dla pojedynczego użytkownika: dodaj spację i znak 1na końcu cmdline.txt, zaraz po rootwaitparametrze.

Menu rozruchowe Hold-Shift nie istnieje w przypadku standardowego obrazu Raspbian Jessie OS, więc musisz to zrobić, edytując /boot/cmdline.txtz innego komputera, jeśli nie używasz obrazu NOOBS.

Warren Young
źródło
2

Nie mogłem znaleźć sposobu, aby zmusić pi do uruchomienia na poziomie 1, więc uruchomiłem dysk Live Fedory, który leżałem i użyłem terminala do usunięcia skryptu z katalogu /etc/init.d

Deac Karns
źródło
1

Jeśli chcesz uzyskać dostęp do plików partycji Linuksa na karcie SD i zmienić je z systemu Windows, możesz to zrobić za pomocą jednego z tych narzędzi .

avra
źródło
Witamy! Proszę wziąć wycieczkę i odwiedzić HelpCenter . Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej jest zawrzeć tutaj istotne części odpowiedzi i podać odnośnik. W rzeczywistości egzekwujemy tę zasadę : edytuj, aby odpowiedź była samodzielna, gdyby w przyszłości zerwał link. Jeśli nie zostanie edytowany w ciągu 48 godzin, zostanie przekonwertowany na Wiki Wiki.
Jacobm001
1
  1. Uruchom system na poziomie 1

    $ sudo init 1
    
  2. Po uruchomieniu na poziomie uruchamiania 1

    $ passwd
    

UWAGA: aby uruchomić poziom 1, zmień plik /etc/inittabz id:2:initdefault:na podobny:id:1:initdefault:

Lowreno
źródło
2
Czy to naprawdę uruchamia się na poziomie 1? Mam na myśli, że nie da się tego zrobić, jeśli maszyna nie zostanie uruchomiona w pierwszej kolejności, prawda?
Bex
Nie, z pewnością nie jest. Co to jest, zmiana poziomu uruchamiania w działającym systemie.
Crusty Barnacle