GNU/Linux >> Tutoriels Linux >  >> Linux

Je viens de supprimer /bin. Quelle est la meilleure façon de récupérer ?

En général, je pencherais pour une réinstallation (à partir des sauvegardes que vous êtes absolument censé avoir). Mais je me sens bidouilleur, alors voici un autre moyen (en supposant que votre système est monté sous /target ):

  1. Obtenez une liste de tous les packages installés qui ont des fichiers en /bin :

    grep ^/bin/ /target/var/lib/dpkg/info/*.list | sed 's%^.*/\([^/\.]*\).list%\1%' >/tmp/pkglist
    

    (Sur mon système Debian Squeeze, c'est un total de 34 paquets, qui sont pratiquement tous de base)

  2. Téléchargez chacun de ces packages (je ne pouvais pas prendre la peine de scripter ce bit, alors appuyez simplement sur packages.ubuntu.com et téléchargez-les quelque part sous /target ). Si vous avez de la chance, certains paquets pourraient encore flotter dans /target/var/cache/apt/archives .

  3. Pour chaque package, exécutez /target/usr/bin/dpkg -x <package> /target . Je suis assez certain dpkg est tout autonome ces jours-ci, et ne devrait pas appeler quoi que ce soit en /bin lui-même.

Une fois que vous avez remis le système sur pied, vous devez vous assurer et exécuter un apt-get --reinstall install <all the packages from step 1> , car (puisque vous exécutez une pré-version, ce que Sysadmin Cat dit être un non-non sur les systèmes de production) les versions des packages que vous venez d'extraire sont susceptibles d'être différentes de celles qui étaient sur le système avant, et vous voudront vous assurer que le système sait exactement de quoi il s'agit.


Bien que votre stratégie puisse fonctionner (il y a de bonnes chances pour cela, plus si une fois que vous avez copié le répertoire bin, vous effectuez une réinstallation apt-get de tous les packages de votre système), cela peut entraîner des problèmes à l'avenir car vous pouvez obtenir un serveur instable.

Si cela m'était arrivé, je réinstallerais et restaurerais à partir de la sauvegarde quotidienne. Vous avez une sauvegarde quotidienne - un plan de reprise après sinistre - n'est-ce pas ?

Au cas où vous n'auriez pas de plan de reprise après sinistre, je suggérerais de sauvegarder tous les fichiers de configuration et les données que vous souhaitez conserver et de procéder à une réinstallation. De cette façon, vous serez sûr de retrouver un serveur stable.


J'essaierais de créer une VM puis de copier le contenu de /bin à votre machine endommagée. Cela devrait vous permettre de démarrer. Puis lancez

dpkg --get-selections  | awk '{print $1}' | xargs -l1 aptitude reinstall

qui devrait réinstaller tous les packages qui se trouvaient sur votre système.


Linux
  1. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  2. Linux – Fusionner /usr/bin et /usr/sbin dans /bin (gnu/linux) ?

  3. Que fait la ligne '!/bin/sh -e' ?

  4. Installer les binaires dans /bin, /sbin, /usr/bin et /usr/sbin, interactions avec --prefix et DESTDIR

  5. Quelle est la signification de /usr/sbin, /usr/local/sbin et /usr/local/bin ?

Quelle est la meilleure façon d'apprendre SELinux ?

Déplacement du contenu de /bin vers /usr/bin, possible d'annuler ?

Quelle est la meilleure façon de définir une variable d'environnement dans .bashrc ?

Quelle est la meilleure façon de gérer les autorisations pour les données www de l'utilisateur d'Apache 2 dans /var/www ?

Quelle est la meilleure façon de vérifier si un volume est monté dans un script Bash ?

#!/bin/sh vs #!/bin/bash pour une portabilité maximale