Como faço para recuperar (recuperar) um arquivo excluído em uma partição btrfs?
Ainda não tirei um instantâneo, portanto não posso usar esse recurso. Eu sei que existem algumas ferramentas para outros sistemas de arquivos Linux, mas o google não encontrou nada específico para o btrfs. Me deparei com uma vaga menção de que o btrfs inclui uma ferramenta de exclusão, mas não consigo encontrá-la. Antes de tentar ferramentas para outro sistema de arquivos, estou perguntando aqui.
Mais informações:
- Os (dois) arquivos excluídos foram excluídos por um
rsync
comando remoto que deu errado. - Estes eram pequenos arquivos de texto simples.
- Eu sei os nomes dos arquivos.
- Talvez eu consiga lembrar algumas strings nos arquivos.
- O disco é um disco rígido normal, mas é grande (2 TB).
- Estou executando o Kubuntu 12.04 (beta2) com todas as atualizações mais recentes.
- Não escrevi novos dados na partição em que os arquivos foram excluídos.
- Não tenho um instantâneo ou um backup desses arquivos. (O último backup é apenas algumas horas mais antigo que esses arquivos.)
- Estranhamente, um sistema de arquivos COW parece ter menos opções de exclusão de arquivos que ext3 / 4 ...
fonte
Se a sua unidade btrfs tiver subvolumes, você precisará passar a
-r <subvol-id>
opção adicional parabtrfs restore
. Infelizmente, os scripts existentes, como o postado por user414471 ( http://oelkers.de/tips/undeleteBtrfs.sh ), não têm uma opção para fazer isso, mas provavelmente podem ser adaptados a isso.Se você quiser fazer isso manualmente, precisará obter o subvol-id correto, com:
ou alternativamente com:
Depois, você usa
btrfs-find-root
para obter o número do bloco ao qual deseja reverter (geralmente aquele logo antes do número máximo que é a raiz atual). Para isso, é necessário primeiro definir o subvolume padrão como aquele do qual você deseja reverter arquivos (e reverter essa alteração posteriormente):Você pode finalmente usar
btrfs restore
com-r <subvol-id>
para a recuperação (inicialmente com o--dry-run
argumento, se desejar):Mais informações sobre tudo isso aqui: https://btrfs.wiki.kernel.org/index.php/Restore
fonte
btrfs-find-root
etapa nunca termina (ou seja, roda a 100% da CPU por 3 horas em um FS de <250 GB). Veja também uma história semelhante spinics.net/lists/linux-btrfs/msg61361.html .