web-dev-qa-db-fra.com

Comment restaurer un répertoire qui vient d'être supprimé avec la commande "rm -R"?

J'ai supprimé un répertoire important avec rm -R commande. Il s'agit d'une donnée hôte très peuplée. Il était situé /var/zpanel/hostdata/ayrintilih Après avoir supprimé le répertoire ayrintilih, tout est parti.

J'ai essayé d'annuler la suppression de ext4magic programme. Mais il a besoin d'un autre volume de disque dur pour la récupération.

Message d'erreur:

ERROR: can not use "/root/recoveried" for recover directory. It's the same filesystem : "/dev/dm-0"

Mon FAI vient de répondre à ma demande:

Unfortunately there is no way to add another Volume to a virtual Instance. 
If it would be a dedicated Server, we could do it, but not in a Cloudserver. 
You could try to minimize the partition and create another one, that would 
count as another Volume. We also recommend to have allways a 
Backup for your Important files.
10
RedLEON

Undeletion devient de plus en plus un mythe esp. avec un matériel moderne (SSD) où tout ce qui est supprimé est également mis à zéro (TRIM) tout de suite, il n'y a donc aucune chance de récupérer quoi que ce soit.

Votre meilleur pari serait de faire une image de tout ce que vous avez en ce moment et de voir s'il reste quelque chose à trouver en utilisant les outils que vous souhaitez. Quelque chose comme:

ssh -C remoteserver dd if=/dev/theserverdisk bs=1M > local/disk.img

Il est préférable d'avoir la boîte dans un système de sauvetage ou de geler la boîte entière (en lecture seule) pour cette opération, car toutes les écritures ne causent que des dommages supplémentaires à ce stade.

Une fois l'image terminée, vous pouvez créer un périphérique de boucle en lecture seule:

losetup --find --show --partscan --read-only disk.img

Et ensuite, utilisez les outils de sauvetage de votre choix sur le ou les dispositifs en boucle.

17
frostschutz

Si vous avez accès à une autre machine Linux/Unix/OSX, etc., il pourrait être possible d'utiliser sshfs pour monter un dossier distant et sauvegarder à cela (instructions adaptées de ici ).

  1. Installez sshfs sur le serveur

    yum install Fuse sshfs
    

    Vous devrez peut-être activer le repo EPEL s'il n'est pas déjà activé.

  2. Chargez le module Fuse ( sur le serveur )

    modprobe Fuse
    
  3. Choisissez un répertoire depuis votre ordinateur personnel et montez-le sur le serveur CentOS

    redleon@local$ mkdir /remote_backup
    

    Maintenant, sur le serveur distant , exécutez cette

    mkdir /backup
    sshfs [email protected]:/remote_backup /backup
    

    Vous devrez modifier 1.2.3.4à l'IP réelle de votre machine locale .

Une fois cela fait, vous aurez un système de fichiers distant monté localement et vous pouvez essayer d'exécuter ext4magic et lui dire de sauvegarder sur /backup. Je ne peux pas garantir que cela fonctionnera, mais cela semble valoir la peine d'essayer.

3
terdon

Vous pouvez essayer d'utiliser un tmpfs ramdisk pour la récupération. Cela nécessite bien sûr que vous ayez suffisamment de mémoire libre pour la quantité de données que vous souhaitez récupérer.

Cependant, en général, je pense que la réponse de Frostschutz frappe le clou sur la tête - la "suppression de la suppression" fonctionne rarement. Que ce soit une leçon pour vous et faites des sauvegardes.

2
Martin von Wittich

Les systèmes de fichiers de la famille "ext" prennent en charge certaines capacités de suppression, qui fonctionnent même parfois. Des utilitaires comme les suivants peuvent être utiles:

http://www.mynitor.com/2010/01/19/10-tools-to-recover-deleted-files-in-linux/http: //extundelete.sourceforge .net /

(J'ai essayé certains d'entre eux moi-même avec des résultats raisonnables).

0
oakad