Page 1 sur 1

[RESCUE CHROOT] failed to run command ‘/bin/bash’ [Résolu]

Publié : mar. 30 janv. 2018, 17:32
par neoxen
Bonjour,

Cet après midi j'ai lançé un

Code : Tout sélectionner

pacman -Syu 
sur mon serveur afin de mettre à jour les différents packet.

Une fois la mise à jour terminer, aucune commande ne semblais réagir.
Lorsque je tapais , le serveur ne reconnaisais pas la commande, lorsque je tapais

Code : Tout sélectionner

pacman
, aucune commande reconnue.
j'ai essayer avec une dizaine de commande et aucun résultat.

Etant chez OVH , j'ai demander un redémarrage de la machine via l'interface web.
Mon serveur n'a pas redémaré et un technicien est donc intervenu dessus.

Je suis donc maintenant en mode rescue, et j'ai vou lu chrooter le système pour voir ce qui n'allais pas.

j'ai donc monté ma racine dans /mnt et j'ai monté mon home dans /mnt home

Code : Tout sélectionner

mount /dev/sda1 /mnt
mount /dev/sda2 /mnt/home
j'ai ensuite monté ces dossiers spéciaux

Code : Tout sélectionner

mount --bind /dev /mnt/dev
mount -t proc /proc /mnt/proc
mount -t sysfs /sys /mnt/sys
Puis j'ai essayer de chrooter avec :

Code : Tout sélectionner

chroot /mnt /bin/bash
j'obtiens alors le message : chroot: failed to run command ‘/bin/bash’: No such file or directory

je fait un ls -l /bin/bash, j'obtiens -rwxr-xr-x 1 root root 1029624 Nov 5 2016 /bin/bash
je fait un ls -l /mnt/bin/bash, j'obtiens -rwxr-xr-x 1 root root 828320 Feb 14 2017 /mnt/usr/bin/bash

d'après ce que j'ai compris, la console rescue de ovh a bash dans /bin/bash et mon systeme a bash dans /usr/bin/bash
j'ai essayé la commande

Code : Tout sélectionner

chroot /mnt /usr/bin/bash
Toujours le message d'erreur d ebash non trouvé

j'ai fait un ldd de /bin/bash

Code : Tout sélectionner

root@rescue:/# ldd /bin/bash 
	linux-vdso.so.1 (0x00007ffcad114000)
	libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007f0f66c0a000)
	libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f0f669e0000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0f667dc000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0f66431000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f0f66e2f000)
et un ldd de /mnt/usr/bin/bash

Code : Tout sélectionner

root@rescue:/# ldd /mnt/usr/bin/bash
	linux-vdso.so.1 (0x00007ffd03952000)
	libreadline.so.7 => not found
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3db9eaf000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3db9b04000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f3dba0b3000)

Donc pour récapituler ; après mon pacman -Syu, aucune commande ne répondé, j'ai donc rebooté. le système a planter et un technicien OVH est venu mettre en mode rescue.
Actuelement je ne sais pas comment réparer le système :/

Re: [RESCUE CHROOT] ailed to run command ‘/bin/bash’

Publié : mar. 30 janv. 2018, 18:56
par FoolEcho
Salut,
neoxen a écrit : mar. 30 janv. 2018, 17:32 et un ldd de /mnt/usr/bin/bash

Code : Tout sélectionner

root@rescue:/# ldd /mnt/usr/bin/bash
	linux-vdso.so.1 (0x00007ffd03952000)
	libreadline.so.7 => not found
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3db9eaf000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3db9b04000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f3dba0b3000)
Il te manque readline depuis ton serveur.
Tu devrais tenter chroot /mnt (sans préciser le bash donc)... :?

Re: [RESCUE CHROOT] ailed to run command ‘/bin/bash’

Publié : mar. 30 janv. 2018, 19:09
par benjarobin
Avoir l'erreur de libreadline manquant est normale, car le ldd est fait en dehors du chroot, et donc les librairies trouvées sont celles du système de rescue.
Malheureusement tu ne nous donnes aucune information intéressante pour trouver l'origine du problème

Tu peux tenter ceci

Code : Tout sélectionner

for pkg in $(pacman -r /mnt -Qgq base)  ; do pactree -b /mnt/var/lib/pacman -u $pkg ; done | sort -u > /tmp/list-base-pkg.txt
pacstrap /mnt $(cat /tmp/list-base-pkg.txt | grep -v lib32)

Re: [RESCUE CHROOT] ailed to run command ‘/bin/bash’

Publié : mer. 31 janv. 2018, 08:55
par neoxen
Merci de vos réponse :)

la commande me répond qu'il ne trouve pas pacman
je pense que la version rescue de OVh ne comporte pas pacman (mais je peux me tromper)

Code : Tout sélectionner

bash: pacman: command not found
bash: pacstrap: command not found

Re: [RESCUE CHROOT] failed to run command ‘/bin/bash’

Publié : mer. 31 janv. 2018, 13:33
par Xorg
Le rescue d'OVH ne semble pas être une Arch Linux, et vu que tu as accès à Bash je n'ai pas l'impression que tu sois dans une BusyBox.
Tu peux voir de quelle distro il s'agit en regardant le fichier /etc/os-release.

Tu as pensé à exécuter un fsck avant de monter les partitions ? Car un redémarrage brutal après l'installation de mises à jour, ça fait souvent des dégâts sur les systèmes de fichiers.
Je ne vois pas non plus pourquoi le chroot ne fonctionne pas. Essaye ce que propose FoolEcho. :?

Re: [RESCUE CHROOT] failed to run command ‘/bin/bash’

Publié : mer. 31 janv. 2018, 14:13
par neoxen
Je viens de suivre ton conseil en utilisant la commande fsck. Apparament tout semble correct

Code : Tout sélectionner

root@rescue:/# fsck /dev/sda1
fsck from util-linux 2.25.2
e2fsck 1.42.12 (29-Aug-2014)
/: clean, 106183/655360 files, 1895186/2621440 blocks
root@rescue:/# fsck /dev/sda2
fsck from util-linux 2.25.2
e2fsck 1.42.12 (29-Aug-2014)
/home: clean, 198831/121413632 files, 10135809/485624576 blocks
root@rescue:/# 
j'ai essayer d'executer la commande de foolEcho : chroot /mnt
Mais c'est la même erreur que précédement.

Par contre, après la mise à jour du système , mes binaire n'étais plus disponible ( ls, vim, zsh, bash etc ..) rien ne fonctionnais. ça ne serais pas du a un soucis d'installation ?
C'est possible de réinstaller proprement les packages ?

(au passage je viens de vérifier, ma console de rescue et une debian avec aptitude XD, donc c'est mort pour pacman)

Re: [RESCUE CHROOT] failed to run command ‘/bin/bash’

Publié : mer. 31 janv. 2018, 14:47
par Xorg
On dirait qu'il y a un soucis avec une bibliothèque dynamique qu'utilise Bash. Tu peux nous donner la sortie de cette commande :

Code : Tout sélectionner

for i in $(ldd /mnt/usr/bin/bash | cut -d' ' -f1); do find /mnt/usr/lib -name $i; done
Ce n'est pas très raffiné comme commande, l'erreur à propos de /lib64/ld-linux-x86-64.so.2 est normale. S'il y en a d'autres, là on aura une piste.

Re: [RESCUE CHROOT] failed to run command ‘/bin/bash’

Publié : mer. 31 janv. 2018, 14:59
par neoxen
Voila le retour de la commande

Code : Tout sélectionner

root@rescue:~# for i in $(ldd /mnt/usr/bin/bash | cut -d' ' -f1); do find /mnt/usr/lib -name $i; done
/mnt/usr/lib/libreadline.so.7
/mnt/usr/lib/libdl.so.2
/mnt/usr/lib/libc.so.6
find: warning: Unix filenames usually don't contain slashes (though pathnames do).  That means that '-name `/lib64/ld-linux-x86-64.so.2'' will probably evaluate to false all the time on this system.  You might find the '-wholename' test more useful, or perhaps '-samefile'.  Alternatively, if you are using GNU grep, you could use 'find ... -print0 | grep -FzZ `/lib64/ld-linux-x86-64.so.2''.


Re: [RESCUE CHROOT] failed to run command ‘/bin/bash’

Publié : mer. 31 janv. 2018, 19:10
par avi3000
Bonsoir,

Vérifie le lien /mnt/bin => usr/bin ( vu tes messages précédents il devrait être bon)

Avant de lancer un chroot, vérifie ton path.
si /usr/bin n'est pas dans le path, l'ajouter : export PATH=$PATH:/usr/bin

essaye des commandes simples dans le chroot :
chroot /mnt /usr/bin/which touch
chroot /mnt touch /tmp/toto
chroot /mnt echo 'zzzzz'
chroot /mnt cat /etc/fstab

avec ces exemples which, touch, cat et echo doivent exister dans /mnt/usr/bin.
Si aucune ne fonctionne, tu es très mal.

Re: [RESCUE CHROOT] failed to run command ‘/bin/bash’

Publié : jeu. 01 févr. 2018, 08:43
par neoxen
Bonjour avi300,

J'ai essayer les commande que tu ma écrite mais rien ne semble fonctionner.
Le dossier /bin et /usr/bin existe , le dossier /mnt/bin n'existe pas, mais le dossier /mnt/usr/bin existe

un echo $PATH me retourne ceci :

Code : Tout sélectionner

root@rescue:/usr/bin# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin
et voici le retour de chacune de tes commande :

Code : Tout sélectionner

root@rescue:/usr/bin#  chroot /mnt /usr/bin/which touch
chroot: failed to run command ‘/usr/bin/which’: No such file or directory
root@rescue:/usr/bin#  chroot /mnt touch /tmp/toto
chroot: failed to run command ‘touch’: No such file or directory
root@rescue:/usr/bin#  chroot /mnt echo 'zzzzz'
chroot: failed to run command ‘echo’: No such file or directory
root@rescue:/usr/bin#  chroot /mnt cat /etc/fstab
chroot: failed to run command ‘cat’: No such file or directory

Re: [RESCUE CHROOT] failed to run command ‘/bin/bash’

Publié : jeu. 01 févr. 2018, 18:33
par avi3000
neoxen a écrit : jeu. 01 févr. 2018, 08:43 le dossier /mnt/bin n'existe pas.
Ce n'est pas un dossier, c'est un lien symbolique qui pointe vers usr/bin. /bin appartient au paquet filesystem et fait partie de l'installation standard d'archlinux.
tu peux le créer manuellement ( ln -s /mnt/bin usr/bin), mais je doute que ça suffise car ton système est apparemment bien cassé.

vérifie également les liens /mnt/lib, /mnt/lib64, /mnt/sbin

Re: [RESCUE CHROOT] failed to run command ‘/bin/bash’

Publié : ven. 02 févr. 2018, 08:52
par neoxen
les 3 liens /mnt/lib , /mnt/lib64 et /mnt/sbin n'existe pas apparament :s
j'ai essayer ta commande ln-s /mnt/bin usr/bin mais vu que mon lien /mnt/bin n'existe pas, le lien n'a pas voulu se créer. j'ai donc fait un ln -s /mnt/usr/bin /mnt/bin.

Je crois que je vais être bon pour une reinstalation complete :s

Re: [RESCUE CHROOT] failed to run command ‘/bin/bash’

Publié : ven. 02 févr. 2018, 19:05
par avi3000
neoxen a écrit : ven. 02 févr. 2018, 08:52 l'ai essayer ta commande ln-s /mnt/bin usr/bin mais vu que mon lien /mnt/bin n'existe pas, le lien n'a pas voulu se créer. j'ai donc fait un ln -s /mnt/usr/bin /mnt/bin.
Erreur de ma part, j'ai inversé la commande !!.

Code : Tout sélectionner

cd /mnt
ln -s usr/bin
ln -s usr/lib
ln -s usr/lib lib64
Mais le mieux, c'est de décompresser l'archive filesystem à la racine de /mnt.
Si c'est le seul paquet cassé, ton système fonctionnera.

Re: [RESCUE CHROOT] failed to run command ‘/bin/bash’

Publié : lun. 05 févr. 2018, 11:36
par neoxen
Merci pour ta réponse avi3000

J'ai décompresser l'archive du filesystem dans mon dossier /mnt et le chroot fonctionne a merveille :).
je vais pouvoir identifier l'origine su problème maintenant :)
Merci à tous pour votre aide :)