GNU/Linux >> Znalost Linux >  >> Linux

Problém zprovoznění busybox switch_root

Důvod, proč switch_root nefunguje na příkazovém řádku je tento kód v 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();
    }

Nejste PID 1, takže spadáte do této bb_show_usage . Z toho vyplývá, že switch_root příkaz ve vašem initramfs init skriptu by měl spustit switch_root s exec . tj.

exec switch_root ...

Další problém s chybami „nenalezeno“ je pravděpodobně proto, že sdílené knihovny potřebné pro spustitelné soubory nebyly nalezeny, protože kořenový souborový systém initramfs je nemá. Pokud můžete získat switch_root pracovat s exec , pak je pravděpodobné, že chyba „nenalezeno“ zmizí.


Linux
  1. Linux – Jak získat možnosti jednotky Cd/dvd, když zařízení Wodim nefungují?

  2. Freebsd – Jak správně fungovat Putty s Freebsd?

  3. Linux CreateProcess?

  1. Jak sudo a nohup spolupracovat

  2. Tipy, jak uvést docker do práce, aniž byste museli spouštět `sudo docker -d` na Ubuntu 15.04

  3. proč se mi při psaní linuxové služby zobrazuje chyba formátu Exec?

  1. Jak používat BusyBox na Linuxu

  2. Potíže se spuštěním Steam Terraria v Linuxu

  3. RabbitMQ, problém získat příklad hello world, aby fungoval na čemkoli kromě localhost