Nach Initialisierung und Mounten des Root-Dateisystems startet Linux /sbin/init
die mit den Initialisierungen des Benutzerbereichs fortfährt, einschließlich des Mountens von /proc
Höchstwahrscheinlich Ihre rcS
oder welche Konfiguration auch immer init
reads tut das nicht, und Sie müssen es ihm mitteilen.
Wenn Sie einen Shell-Prompt haben, können Sie /proc
einhängen manuell mit:
mount -t proc p /proc
Beachten Sie, dass der /proc
Verzeichnis muss existieren, bevor Sie dort etwas einhängen können. Sie sollten es in Ihr Root-Image aufnehmen.
2) ist sehr wahrscheinlich wegen 1) - ps
verwendet /proc
um Informationen über laufende Prozesse zu erhalten.
1) liegt entweder daran, dass die Initialisierung dies nicht erwartet, oder daran, dass sie dies nicht tut. Überprüfen Sie, was die Verteilung angenommen ist to do on boot - wie das System hochgefahren werden soll.
Dinge, die Sie ausprobieren können:
-
Mounten Sie
läuft/proc
, z. B.:mount -t proc proc /proc
- Das zweite Argument ist willkürlich (es wird als Quelle des Mounts angezeigt). Überprüfen Sie, was mit PID=1 -
/proc/cmdline
einchecken welche Parameter Ihr Kernel beim Booten erhält. Wenn esinit=...
enthält Sie müssen es möglicherweise ändern, z./sbin/init
oder entfernen Sie es, damit der Kernel versuchen kann, die selbst auszuführende Init aufzulösen. Sie müssen dies in der Bootloader-Konfiguration tun (für R-Pi befindet sich dies in einer Textdatei auf der SD-Karte IIRC). -
Überprüfen Sie, ob die gewünschte ausführbare Init-Datei existiert - Busybox hat normalerweise Tonnen von symbolischen Links, die auf seine Binärdatei zeigen, so dass man
command [args]
verwenden kann stattbusybox command [args]
. Diese fehlen Ihnen möglicherweise.