10 votes

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

Je viens de courir (sans le faire exprès !) rm -rf /bin .

J'ai redémarré l'ordinateur et j'utilise Finnix pour essayer de le récupérer. J'ai réussi à monter le disque et j'ai confirmé que, oui, l'ensemble de la /bin est supprimé.

Est-il possible de remédier à cette situation sans réinstaller le système d'exploitation ?

Je pense que je pourrais installer une VM avec le même système d'exploitation et la même architecture (Ubuntu Server 11.10 alpha release, x86) et installer tous les paquets que j'avais installés sur le serveur, puis copier simplement le fichier /bin dossier.

Cela fonctionnera-t-il ? Vaut-il mieux que je recommence à zéro ?

15voto

Ryan Sampson Points 2898

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

  1. Obtenir une liste de tous les paquets installés qui ont des fichiers dans le répertoire /bin :

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

    (Sur mon système Debian Squeeze, cela représente un total de 34 paquets, dont la plupart sont des paquets de base).

  2. Téléchargez chacun de ces paquets (je ne me suis pas donné la peine de script cette partie, donc allez simplement sur packages.ubuntu.com et téléchargez-les quelque part sous le nom de /target ). Si vous avez de la chance, certains de ces paquets peuvent encore flotter dans la base de données des /target/var/cache/apt/archives .

  3. Pour chaque paquet, lancez /target/usr/bin/dpkg -x <package> /target . Je suis à peu près certain que dpkg est tout à fait autonome ces jours-ci, et ne devrait pas faire appel à quoi que ce soit dans l'espace de travail. /bin même.

Une fois que le système est remis sur pied, vous devez vous assurer que vous exécutez un apt-get --reinstall install <all the packages from step 1> Il est donc nécessaire de s'assurer que le système sait exactement de quoi il s'agit (puisque vous utilisez une préversion, ce qui, selon Sysadmin Cat, est à proscrire sur les systèmes de production), que les versions des paquets que vous venez d'extraire sont probablement différentes de celles qui se trouvaient sur le système auparavant.

5voto

hmontoliu Points 3633

Bien que votre stratégie puisse fonctionner (il y a de bonnes chances pour cela, surtout si une fois que vous avez recopié le répertoire bin, vous faites une réinstallation apt-get de tous les paquets de votre système), elle peut entraîner des problèmes à l'avenir parce que vous risquez d'avoir un serveur instable.

Si cela m'était arrivé, j'aurais réinstallé et restauré à 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 vous suggérerais de sauvegarder tous les fichiers de configuration et les données que vous souhaitez conserver et de procéder à une réinstallation. Vous serez ainsi certain de retrouver un serveur stable.

3voto

user9517 Points 113163

J'essaierais de créer une VM puis de copier le contenu de /bin à votre machine endommagée. Cela devrait vous permettre d'être opérationnel. Ensuite, lancez

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

qui devrait réinstaller tous les paquets présents sur votre système.

1voto

lanoxx Points 1081

Le plus simple, si vous avez accès à la machine, est de monter le système de fichiers et de faire une sauvegarde de toutes vos données (par précaution).

Ensuite, vous pouvez réinstaller ubuntu comme une installation normale ; en principe, toutes vos données (home dir, etc et var) devraient toujours être là.

Il existe un moyen de réinstaller tous les paquets afin que /bin soit repeuplé, mais c'est assez compliqué.

0voto

Droopy4096 Points 660

Les fichiers ont disparu. Bien que vous puissiez essayer d'effacer des fichiers, je ne vous le recommande pas.

Note : Je n'utilise pas Ubuntu (et je n'ai pas utilisé les distributions Debian depuis un certain temps). Cependant, j'ai effectué plusieurs récupérations de distros dans le passé, toutes suivant un scénario similaire.

Votre meilleur plan d'action :

  • démarrer à partir d'un liveCD

  • en utilisant liveCD, montez votre système quelque part (disons, /mnt/mint )

  • en utilisant la requête dpkg todos les paquets installés :

    # dpkg --admindir=/mnt/mint/var/lib/dpkg -l

  • installez tous ces paquets dans votre destination /mnt/mint en utilisant apt-get using :

    # apt-get -o RootDir=/mnt/mint ....

  • (alternative n° 1) Il se peut que vous deviez enlever la sangle de levage. /mnt/mint - pas sûr

  • (alternative #2) Vous pouvez copier /bin Le contenu du liveCD est transféré vers /mnt/mint/bin mais je ne sais pas si le liveCD pour mint utilise busybox ce qui pourrait compliquer les choses - l'alternative #1 dans ce cas semble plus sûre.

En général, cela devrait vous permettre de retrouver vos fichiers en procédant à une réinstallation brute de tout ce que vous possédez. Vous pouvez faire des choses un peu plus "intelligentes" et demander tous les paquets qui ont déposé des binaires dans /bin

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X