GNU/Linux >> Tutoriels Linux >  >> Linux

Problème pour faire fonctionner le switch_root de busybox

La raison pour laquelle switch_root ne fonctionne pas sur la ligne de commande est ce code dans 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();
    }

Vous n'êtes pas PID 1, donc vous tombez dans ce bb_show_usage . L'implication est que le switch_root La commande dans votre script d'initialisation initramfs doit exécuter switch_root avec exec . c'est-à-dire

exec switch_root ...

L'autre problème avec vos erreurs "introuvables" est probablement dû au fait que les bibliothèques partagées nécessaires aux exécutables ne sont pas trouvées, car le système de fichiers racine initramfs ne les a pas. Si vous pouvez obtenir switch_root travailler avec exec , il est alors probable que l'erreur "introuvable" disparaisse.


Linux
  1. Premiers pas avec Zsh

  2. Faire fonctionner 256 couleurs dans Tmux ?

  3. Freebsd - Faire en sorte que Putty fonctionne correctement avec Freebsd?

  4. Créer un processus Linux ?

  5. Pourquoi est-ce que j'obtiens une erreur de format Exec lorsque j'écris mon service Linux ?

Démarrer avec GnuCash

Conseils pour faire fonctionner docker sans avoir à exécuter `sudo docker -d` sur Ubuntu 15.04

Pipes, dup2 et exec()

Obtenir des clés de macro d'un Razer BlackWidow pour fonctionner sous Linux

RabbitMQ, problème pour que l'exemple hello world fonctionne sur autre chose que localhost

Busybox, netstat, pas de -p