web-dev-qa-db-fra.com

Impossible de "Sudo chroot" à Ubuntu

Dans le terminal lorsque j'essaie de Sudo chroot . dans le répertoire personnel, je reçois:

chroot: failed to run command ‘/bin/bash’: No such file or directory

Lorsque j'essaie de Sudo chroot . sur une carte SD externe, je reçois:

chroot: failed to run command ‘/bin/bash’: Permission denied

J'ai découvert qu'il y avait un bogue de chroot rapporté à ce sujet, mais là-bas, le 2016/04/12, ils disent:

"Changed in canonical-devices-system-image:  
status:  
Fix Committed → Fix Released"

Je suis sur un Bq Aquaris m10 HD sous Ubuntu 15.04 (OTA-11). Ce bogue affectait également OTA 10.1, mais j’ai décidé d’attendre le prochain OTA. Est-ce que quelqu'un d'autre a ce comportement?

Je vous pose cette question parce que je voudrais installer des outils CLI sans endommager le système et briser les OTA si nécessaires. Je suis ce guide: https://askubuntu.com/a/623311 .
Existe-t-il un autre moyen d'installer les outils cli sans définir le système de fichiers en écriture?

Toute solution est la bienvenue

Edit: Problème résolu! Comme terdon et Rinzwind ont souligné que l'erreur "Autorisation refusée" était due à l'absence d'autorisations d'exécution sur ma carte SD externe. J'ai téléchargé et extrait l'image Ubuntu dans un dossier de mon répertoire personnel et je peux maintenant y chrooter. Merci!

3
Ciofeca999

Je ne suis pas du tout sûr que le bug que vous avez lié est pertinent ici. Vous ne pouvez pas simplement chroot dans un répertoire arbitraire comme celui-là. Par défaut, chroot définira / dans le répertoire que vous lui avez attribué, puis tentera d'exécuter /bin/sh (ou quel que soit le shell par défaut). Comme il n'y a pas de /bin/sh dans le répertoire cible, le client se plaint. C'est ce que vous voyez dans la première erreur:

chroot: failed to run command ‘/bin/bash’: No such file or directory

La deuxième erreur est probablement due au fait que vous avez monté une partition FAT ou NTFS dans le lecteur externe et que vous ne l'avez pas configurée pour autoriser l'exécution. Il semble que /path/to/external/bin/sh existe mais ne peut pas être exécuté. Essayez de monter la carte SD avec l'exécution activée.

Notez que le guide auquel vous avez accédé vous dit de télécharger une image Ubuntu et de l’utiliser comme cible chroot. Il ne vous dit pas d'utiliser votre répertoire personnel pour cela!

Pour illustrer:

$ Sudo chroot .
chroot: failed to run command ‘/bin/bash’: No such file or directory
$ cp /bin/busybox bin/sh 
$ Sudo chroot /bin/sh   ### works!
# /
2
terdon

Essayez de le faire depuis un dossier qui ne se trouve pas dans/home, comme

chroot path_chroot_folder

Regardez le commentaire dans le lien de rapport de bogue que vous avez partagé à propos de faire "chroot". Plus précisément

Jamie Strandboge (jdstrand) a écrit le 15.01.2016: # 3
La raison pour laquelle cela ne fonctionne pas, c'est parce que cette règle exclut
/domicile: / [^ h] [^ o] [^ m] [^ e] ** pix,
Nous devions le faire pour le pilote automatique faux style tests. Je pense que ce type de test a été abandonné pour d'autres raisons cependant; Si cela est vrai, je peux simplifier les règles de transition exec et supprimer ces règles de pilote automatique. Nicholas, pouvez-vous commenter?
Modifié dans apparmor-easyprof-ubuntu (Ubuntu): cessionnaire: personne → Nicholas Skaggs (nskaggs) statut: Confirmé → Incomplet