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
):
-
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)
-
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
. -
Pour chaque package, exécutez
/target/usr/bin/dpkg -x <package> /target
. Je suis assez certaindpkg
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.