J'ai renommé accidentellement le répertoire /usr
en /usr_bak
.
Je veux le changer à nouveau, donc j'ajoute le chemin /usr_bak/bin
à $PATH
pour permettre au système de trouver la commande Sudo
.
Mais maintenant Sudo mv /usr_bak /usr
me donne l'erreur:
Sudo: error while loading shared libraries: libsudo_util.so.0: cannot open shared object file: No such file or directory
Existe-t-il un moyen de renommer le /usr_bak
comme /usr
en plus de réinstaller le système?
Puisque vous avez défini un mot de passe pour root, utilisez su
et busybox
, installés par défaut dans Ubuntu. Toutes les bibliothèques requises de su
sont dans /lib
. Busybox est une collection d'utilitaires liés statiquement, donc les bibliothèques manquantes ne devraient pas être un problème. Faire:
su -c '/bin/busybox mv /usr_bak /usr'
(Alors que Busybox lui-même a également une applet su
, le /bin/busybox
le binaire n'est pas setuid et ne fonctionne donc que s'il est exécuté en tant que root.)
Si vous n'avez pas de mot de passe root, vous pourriez probablement tilisez la solution de Gilles ici en utilisant (Gilles dit que cela ne fonctionnera pas avec les binaires setuid comme Sudo) redémarrez et éditez le menu GRUB pour démarrer avec LD_LIBRARY_PATH
, ouinit=/bin/busybox
comme paramètre du noyau et replacer le dossier.
En plus de réponse de mur :
vous auriez pu utiliser une clé USB de démarrage de secours pour réparer votre système; par exemple. si votre système est un Debian ou Ubuntu, démarrez la clé USB d'installation en mode de secours, et faites les mount
et mv
et umount
appropriés.
pour pouvoir réparer plus facilement de telles erreurs, j'installe généralement aussi un shell statique avec plusieurs commandes intégrées (notamment avec certaines cp
, rm
, mv
- comme les commandes intégrées) telles as sash
(c'est empaqueté dans Debian et Ubuntu, et aussi disponible sous sash-3.8.tar.gz dans la source formulaire) et démarrer avec init=/bin/sash
passé à Grub.
PS: sash
est légèrement bogué, et pas entièrement compatible Posix, mais toujours très utile.
Je pense que le meilleur moyen le plus sûr est de redémarrer à l'aide d'un système d'exploitation démarré par USB, CD ou DVD (Debian, Ubuntu, Suse, etc.). Montez ensuite le lecteur contenant les problèmes et effectuez le changement de nom.
Plus sûr que de démarrer dans un champ de mines avec/usr ou/lib effectivement manquant.
J'ai rencontré un problème similaire où j'ai renommé /usr/bin
à /usr/bin_bkp
pour un test et je n'ai pas pu renommer (car la commande n'a pas trouvé le Sudo
dans le répertoire standard qui est /usr/bin
) puis je suis allé au /usr/bin_bkp
répertoire manuellement (à l'aide du Gestionnaire de fichiers) et la plupart des fonctions (y compris le renommage) sur le clic droit sont désactivées.
Ensuite, j'ai essayé la commande suivante et elle a résolu le problème
$/usr/bin_bkp/Sudo mv /usr/bin_bkp/ /usr/bin/
J'ai invoqué le Sudo du chemin actuel et cela a fonctionné, maintenant tout est revenu à la normale.
Système d'exploitation: Xubuntu 14.04