J'ai accidentellement exécuté en rm /*
étant connecté en tant que root sur un serveur Ubuntu distant et supprimé à peu près tous les binaires et actuellement je ne peux ni me connecter via ssh ou ftp pour restaurer les fichiers (et j'espère que ce sera le meilleur).
Existe-t-il un moyen de corriger ce désordre, ou devrais-je appeler le centre de données et demander un format?
rm
data-recovery
Fourmi
la source
la source
-r
argumentrm
ou si vous avez simplement exécuté la commande que vous montrez. Votre hébergeur propose-t-il un moyen d'accéder aux images de disque en dehors de cette machine particulière?Réponses:
rm /*
devrait supprimer très peu. Il n'y a aucun-r
indicateur qui supprimerait récursivement quoi que ce soit, et sans lui, les répertoires ne seront pas supprimés (et même si les répertoires ont été supprimés, seuls les vides peuvent être supprimés). Cette réponse repose sur l'hypothèse que vous n'avez pas exécutérm -rf /*
.Les seuls fichiers du système de fichiers racine qui en découlent peuvent être les liens symboliques vers le noyau et initrd (bien que sur un système Ubuntu que j'examine, ils n'existent pas) ou un
/lib64
lien symbolique sur les systèmes 64 bits.Le problème peut simplement être que le
/lib64 -> /lib
lien symbolique a été supprimé. C'est plutôt méchant, car à peu près tous les programmes s'appuieront sur ce lien symbolique:Il
ld-linux
s'agit du chargeur dynamique et s'il n'est pas disponible, vous ne pouvez exécuter aucun exécutable dynamique. Cela rendra la connexion extrêmement difficile, et vous ne pourrez peut-être pas du tout.Un sauveur peut être
busybox
. Exécutez ceci pour vérifier:Dans ce cas, busybox devrait être exécutable, mais la question est de savoir comment l'exécuter?
Si vous avez accès à l'invite du chargeur de démarrage, vous pourrez peut-être démarrer avec
init=/bin/static-sh
, où static-sh est un lien symbolique versbusybox
(vérifiez que cela/bin/static-sh
existe - c'est le cas sur mon système, mais ce n'est pas Ubuntu standard. Ce bogue suggère qu'il est disponible .)Une fois que vous avez un shell racine, vous pouvez recréer le
/lib64
lien symbolique. Vous devrez peut-être d'abord remonter le système de fichiers racine en lecture / écriture. busybox devrait avoir ces outils intégrés, que vous pouvez exécuter comme suit:Si bash fonctionne, le problème devrait être résolu.
la source
Si vous devez récupérer des fichiers à partir de l'installation actuelle, demandez à votre hôte de vous aider. En supposant qu'il s'agit d'une machine virtuelle, il faut environ cinq minutes par jour pour créer une image de votre disque, réinstaller votre hôte à partir de zéro et vider l'ancienne image disque dans votre nouveau système de fichiers.
Si vous n'avez besoin de rien, faites-les simplement réinstaller. Presque toujours l'option la plus rapide lorsque vous osez dur.
la source
Si vous venez de supprimer le lien symbolique / lib64 vers / lib et que la console est toujours ouverte, faites simplement:
et vous devriez pouvoir exécuter à nouveau les commandes normalement. Ajustez le chemin vers votre bibliothèque ld réelle. Vous pouvez également exécuter toute autre commande de votre choix en la faisant simplement précéder du chemin complet de la bibliothèque ld.
la source
Sans avoir accès au serveur physique, vous ne pouvez pas faire grand-chose.
la source