GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Probleme, busybox switch_root zum Laufen zu bringen

Der Grund dafür, dass switch_root funktioniert nicht auf der Kommandozeile ist dieser Code in busybox:

    if (st.st_dev == rootdev || getpid() != 1) {
        // Show usage, it says new root must be a mountpoint
        // and we must be PID 1
        bb_show_usage();
    }

Sie sind nicht PID 1, also fallen Sie in diese bb_show_usage durch . Die Implikation ist, dass switch_root Der Befehl in Ihrem initramfs-Init-Skript sollte switch_root ausführen mit exec . d.h.

exec switch_root ...

Das andere Problem mit Ihren „nicht gefunden“-Fehlern liegt wahrscheinlich daran, dass die gemeinsam genutzten Bibliotheken, die von den ausführbaren Dateien benötigt werden, nicht gefunden werden, weil das initramfs-Root-Dateisystem sie nicht hat. Wenn Sie switch_root bekommen können um mit exec zu arbeiten , dann wird der "nicht gefunden"-Fehler wahrscheinlich verschwinden.


Linux
  1. Erste Schritte mit Zsh

  2. 256 Farben in Tmux zum Laufen bringen?

  3. Linux – Funktionen des CD/DVD-Laufwerks abrufen, wenn Wodim-Geräte nicht funktionieren?

  4. Was bedeutet Exec 3?

  5. Die Option -exec in Find zum Laufen bringen?

So verwenden Sie BusyBox unter Linux

Erste Schritte mit GnuCash

Linux-CreateProcess?

sudo und nohup zusammenarbeiten lassen

Warum erhalte ich einen Exec-Formatfehler, wenn ich meinen Linux-Dienst schreibe?

Probleme, Steam Terraria unter Linux zum Laufen zu bringen