Reinstalei meu sistema Ubuntu 14.04 e tentei montar minha unidade zfs existente. É uma única unidade com todos os dados nela. O sistema operacional está em uma unidade diferente, a unidade zfs contém apenas dados.
O nome da piscina é crystal
.
Na minha pressa (sim.) eu fizzpool create crystal /dev/disk-by-id/...etc...
A piscina agora está vazia.
Existe alguma maneira de restaurar o pool original e/ou recuperar os dados?
Responder1
Infelizmente:Não, na verdade não.
Existem, de forma um tanto não intuitiva, principalmente duas operações destrutivas no ZFS: zfs destroy
e zpool create
. Especificamente, o comandozpool destroy
énãodestrutivo e, na verdade, é facilmente reversível se você perceber seu erro rapidamente;simplesmente define uma bandeira e, nesse caso, zpool import -D
é seu amigo.
Esses comandos são destrutivos por motivos semelhantes, mas ligeiramente diferentes:
zfs destroy
é destrutivo porque remove as referências ao conjunto de dados que está sendo destruído, portanto não há como encontrá-lo no disco usando ferramentas padrão. (Mas veja tambémessa questão.)zpool create
é destrutivo porque substitui todos os überblocks do pool, o que significa que não há como o código ZFS encontrar o início das estruturas de dados da árvore Merkle no disco. Quando a raiz da árvore não puder ser encontrada, o restante dos dados ficará inacessível.
Ambos são agravados pelo complexo formato em disco do ZFS, o que complica ainda mais qualquer tentativa de recuperação. Com a maioria dos outros sistemas de arquivos, os arquivos serãogeralmenteser contíguos ou em um pequeno número de locais distintos. Com o ZFS, é perfeitamente possível que os dados sejam espalhados literalmente por todo o disco, sem sobrar nada após qualquer um dos comandos acima para indicar quais partes pertencem a onde. Para piorar ainda mais a situação, você certamente está procurando blocos de dados compactados e, possivelmente, também dados desduplicados. (A desduplicação não é provável no seu cenário, mas certamente é uma possibilidade no caso geral.)
Istopoderserá possível contratar alguns especialistas em ZFS para recuperar seus dados, mas é improvável que os serviços comuns de recuperação de dados sejam capazes de ajudá-lo neste ponto, e os softwares de recuperação de sistema de arquivos comumente disponíveis nem sequer entendem o ZFS. Supondo que você encontre pessoas dispostas a trabalhar com você, também serámuitocaro; Eu vi menções de preçosiniciandona faixa de dólares de cinco dígitos para cenários semelhantes.
Sua melhor escolha neste momento é provavelmente restaurar um backup recente de seus dados e seguir em frente com sua vida.
Sinceramente, estou um pouco confuso por que você conseguiu substituir o pool com um comando semelhante ao indicado na sua pergunta. No meu sistema, com ZFS On Linux 0.6.4, tendo construído um cenário semelhante, zpool
recusa a create
operação com um erro de "especificação vdev inválida" informando que o dispositivo de backup is part of exported pool '...'
. Você deveria ter recebido um erro semelhante, a menos que tenha passado explicitamente -f
para zpool para forçar a operação; nesse caso, você está dizendo ao ZFS que sim, você realmente realmentequererpara fazer isso. Qualespecialmenteno caso do ZFS é geralmentenãoO que você quer fazer.