Como recuperar um diretório que foi excluído com o comando "rm -R"?

10

Eu apaguei um diretório importante com o rm -Rcomando. Estes são dados de host muito populares. Foi localizado /var/zpanel/hostdata/ayrintilih Depois de remover o diretório ayrintilih foi tudo.

Eu tentei cancelar a exclusão com o ext4magicprograma. Mas ele precisa de outro volume de disco rígido para recuperação.

Mensagem de erro:

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

Meu provedor acabou de responder meu pedido:

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.
RedLEON
fonte
25
A verdadeira questão é quantas vezes você precisará ler isto: "Também recomendamos sempre ter um backup dos arquivos importantes" antes de levar a sério.
GOLDILOCKS
2
Outro conselho, sempre pensar duas vezes antes de digitar a tecla Enter, especialmente se o comando for rm -R...
jlliagre
9
"Existe alguma maneira de recuperar arquivos facilmente?" Não.
msw
1
@terdon Ei, espere um minuto, isso está em algum tipo de nuvem ??? Você ainda precisa fazer backups? Nossa, que benefício tem esse material na nuvem se você precisar fazer seus próprios backups apenas para poder restaurar arquivos excluídos? Onde está o instantâneo a cada hora e todas as noites em que você pode apenas "gravar"? Os backups devem ser para a situação em que a nuvem desaparece repentinamente, juntamente com os dados, não para esses pequenos contratempos que não envolvem uma catástrofe real.
Kaz
2
O representante de suporte do ISP pode estar mentindo ou simplesmente mal informado. Ou pode ser apenas o BOFH : "Aí, você tem muito espaço agora"
msw 19/09/13

Respostas:

17

Undeletion está se tornando cada vez mais um mito esp. com hardware moderno (SSD), onde tudo o que é excluído também é zerado (TRIM) imediatamente, para que haja zero chance de obter algo de volta.

Sua melhor aposta seria fazer uma imagem do que você tem agora e depois ver se ainda há algo a ser encontrado usando as ferramentas que você deseja. Algo como:

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

É melhor ter a caixa em um sistema de resgate ou congelar a caixa inteira (somente leitura) para esta operação, pois toda e qualquer gravação só causa mais danos neste momento.

Depois que a imagem estiver pronta, você poderá criar um dispositivo de loop somente leitura para ela:

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

E, em seguida, continue usando as ferramentas de resgate de sua escolha nos dispositivos de loop.

frostschutz
fonte
thx @frostschutz. Mas feito está feito. Não consegui recuperar nenhum arquivo.
RedLEON
Me ajudou a recuperar ~ 1 GB de dados. Tipo de unidade do servidor: SSD.
merqlove
Mas, e com as atenções prestadas à forense digital e à espionagem paramilitar? A recuperação se tornaria mais fácil, embora exigisse conhecimento das redundâncias e truques de hardware?
can-ned_food
3

Se você tiver acesso a outra máquina Linux / Unix / OSX etc, talvez seja possível usar sshfspara montar uma pasta remota e fazer backup dela (instruções adaptadas daqui ).

  1. Instale sshfs no servidor

    yum install fuse sshfs
    

    Pode ser necessário ativar o repositório EPEL, se ainda não estiver ativado.

  2. Carregue o módulo FUSE ( no servidor )

    modprobe fuse
    
  3. Escolha um diretório do seu computador doméstico e monte-o no servidor CentOS

    redleon@local$ mkdir /remote_backup
    

    Agora, no servidor remoto , execute este

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

    Você precisará alterar 1.2.3.4para o IP real da sua máquina local .

Uma vez feito isso, você terá um sistema de arquivos remoto montado localmente e poderá tentar executar ext4magice solicitar a cópia de segurança /backup. Não posso garantir que funcione, mas parece que vale a pena tentar.

terdon
fonte
2

Você pode tentar usar um tmpfsramdisk para a recuperação. É claro que isso exige que você tenha memória livre suficiente para a quantidade de dados que deseja recuperar.

Geralmente, porém, acho que a resposta de frostschutz bate na unha da cabeça - "desapegar" raramente funciona. Que isso seja uma lição para você e faça backups.

Martin von Wittich
fonte
E desfazer a exclusão de um diretório inteiro cheio de objetos e estrutura de subdiretórios será ainda mais arriscado do que apenas um punhado de arquivos soltos.
Kaz
-2

Muitos de vocês menosprezaram a vítima aqui em vez de responder à pergunta. A vítima identificou o sistema como baseado na nuvem. Em vez de supor que ele excluiu sem um backup, por que não supor que há um backup e ele precisa recuperar o diretório do backup? Isso é o que você (os menosprezadores) faria se tivesse que desfazer a exclusão, não é?

Se o seu sistema estiver hospedado em um sistema que fornece seu ISP, eles farão backups regularmente. Você precisa fazer a pergunta certa para que eles entendam e respondam corretamente, mas você deve RECUPERAR ou RESTAURAR um diretório a partir do backup. Alguns dados podem ser perdidos, dependendo da hora do último backup.

A resposta aqui depende de como é feito o backup do sistema e com que frequência. Cron e Tar são frequentemente usados ​​por pequenos sistemas e, devido à sua simplicidade, muitos sistemas grandes também o utilizam. Existem outras ferramentas disponíveis, no entanto.

Se esse NÃO for um sistema individual, é provável que exista um departamento de TI e um método de backup em vigor. O departamento de TI pode ajudá-lo e você deve procurá-los em vez de tentar restaurar a pasta / diretório por conta própria.

Se este é um sistema doméstico e você é o departamento de TI e os backups são estritamente locais, você pode fazer backups com CRON e TAR. Verifique sua configuração do CRON para ver onde você coloca seus arquivos TAR. Procure no arquivo tar para obter o caminho e o nome exatos:

 tar -tvf <backup name>.tar

Descompacte.

 tar -xvf <backup name>.tar <directory name>

Faça um tar manual para obter mais informações ou, é claro, outro google para obter informações sobre tar e backup.

Considerações futuras incluem outras opções de backup, e uma lixeira pode digitar exclusão em vez de uma exclusão real. Uma exclusão de tipo de lata de lixo envolve criar um alias para rm que mova itens para um diretório chamado "lixo", em vez de realmente excluir. Você então o esvazia com Cron ou manualmente quando lhe apetecer, ou começa a ficar com pouco espaço.

George Moore
fonte