OK, d'abord la conférence :
-
NE PAS TOUCHER AUX BINAIRES DU SYSTÈME
Tout ce qui est /bin
, /sbin
y /rescue
sur FreeBSD devrait être laissée en l'état. Même si vous savez ce que vous faites (si vous savez ce que vous faites, vous savez aussi qu'il faut les laisser tranquilles. Ils sont vraiment importants -- tous !)
-
NE PAS supprimer /bin/sh
. EVER. Sur tous *NIX qui le possède.
Vraiment. Ne le faites pas. A LOT des scripts s'appuient sur des /bin/sh
étant un Bourne Shell. Il brise l'univers.
Si vous le voulez VRAIMENT, vous pouvez probablement le remplacer en toute sécurité par un copie de bash
comme l'a suggéré Adam Z., mais si vous voulez faire cela, vous devriez peut-être lier statiquement cette copie de bash
-- Il fait appel à de nombreuses bibliothèques, et il se peut que vous ne disposiez pas de ces bibliothèques avant que le système ne soit opérationnel. /usr/local
est monté.
Maintenant, comment réparer ce gâchis ? Deux possibilités :
Option 1 : quelque peu douloureuse
Rendez-vous sur le site http://www.freesbie.org/ (ou le LiveCD FreeBSD de votre choix - Vous pouvez probablement même utiliser le CD de récupération de http://www.freebsd.org pour cela). Prenez le LiveCD, gravez-le et démarrez-le.
Une fois que vous êtes dans l'environnement LiveCD, montez la partition racine de votre système défectueux, copiez le fichier /bin/sh
du LiveCD sur votre machine, puis redémarrez.
Le présent なければならない Vous pouvez suivre les instructions pour la mise en place d'un système de gestion de l'information. Reconstruire le "monde ou au moins recompiler /bin/sh
à partir d'une arborescence de sources correspondant à votre système d'exploitation.
Option 2 : moins douloureuse, pas de LiveCD
Si vous avez une autre machine FreeBSD sur laquelle vous pouvez vous brancher (ou si vous avez un autre moyen de mettre la main sur une copie de /bin/sh
pour mettre votre machine FreeBSD en mode mono-utilisateur. Configurez le réseau (ou montez n'importe quel support contenant le remplacement Shell), et copiez-le à l'endroit où il est censé se trouver.
Redémarrez et vous devriez être OK -- mêmes mises en garde que pour le LiveCD si le /bin/sh
vous saisissez qu'il ne provient pas d'une machine raisonnablement proche de l'identique.