AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 767930
Accepted
melonfsck
melonfsck
Asked: 2024-01-29 05:51:08 +0800 CST2024-01-29 05:51:08 +0800 CST 2024-01-29 05:51:08 +0800 CST

É possível restaurar dados de um instantâneo DM não persistente após uma falha?

  • 772

Costumo usar instantâneos de mapeador de dispositivos não persistentes. Uma tabela de exemplo é semelhante a esta:

0 10485760 snapshot /dev/sdc3 /dev/sdc6 N 16

Em caso de falha, ainda tenho os dois /dev/sdc3e /dev/sdc6porque os discos não são voláteis. Mas é possível recuperar esse snapshotdispositivo ou pelo menos recuperar as alterações de /dev/sdc6alguma forma? Eu sei que existem instantâneos persistentes para o meu propósito, mas ainda estou curioso. Obrigado.

crash
  • 1 1 respostas
  • 33 Views

1 respostas

  • Voted
  1. Best Answer
    frostschutz
    2024-01-29T18:43:08+08:002024-01-29T18:43:08+08:00

    Não é realmente possível. Alguns dados ainda podem estar lá, mas não de uma forma que faça sentido para um sistema de arquivos...


    Um instantâneo considera seu dispositivo de bloco como blocos de dados, com um determinado tamanho de bloco. À medida que as gravações chegam, cada parte afetada é preservada, copiando-a para o dispositivo de instantâneo.

    As gravações do sistema de arquivos geralmente são bastante aleatórias, portanto, isso pode acontecer em qualquer ordem. O pedaço copiado acaba tendo um deslocamento diferente.

    Portanto, o instantâneo armazena metadados, que é a relação entre (deslocamento antigo <-> novo deslocamento).

    Com um instantâneo transitório, esse armazenamento existe apenas na memória. Ele é perdido quando você reinicia ou desativa o snapshot.


    Sem esses metadados, o que você tem?

    Essencialmente, você está olhando para "pedaços aleatórios de dados".

    Para recuperar esse dispositivo de instantâneo, você teria que ser capaz de determinar de alguma forma o deslocamento original de cada pedaço que foi copiado.

    Mas isso geralmente não pode ser feito. Você não sabe de onde vieram esses pedaços originalmente. Você nem sabe se esses são pedaços ou apenas dados antigos que existiam antes da criação do instantâneo.

    E mesmo que você pudesse resolver esse quebra-cabeça, ele só funcionaria se não ocorresse mais nenhuma gravação no dispositivo de origem enquanto o instantâneo não estivesse ativo. Se o dispositivo foi montado para leitura e gravação e partes de dados que não estão no instantâneo foram substituídas, você não estará mais perdendo metadados. Estão faltando dados.

    Portanto, em suma, é considerado irrecuperável.


    Exceções são possíveis.

    Se vários pedaços foram copiados em ordem, ou se os dados que você está procurando forem pequenos o suficiente para caber em um único pedaço, você ainda poderá ter sorte e encontrá-los. Da mesma forma, você pode ter sorte e recuperar algo de um único disco de um conjunto raid5 com falha, se for pequeno o suficiente para caber em um único bloco de dados. Se você estiver satisfeito com a recuperação de bits de dados sem a ajuda de um sistema de arquivos.

    Você poderia ter dados que de alguma forma conhecessem seu próprio deslocamento. Por exemplo, se você gravar a saída hexdump -Cem um dispositivo de bloco e, em seguida, tirar um instantâneo disso. hexdump imprime deslocamentos em cada linha para que você possa derivar deslocamentos dos dados. Isso presumindo que o hexdump não pulou nenhuma linha ...

    Se você estiver usando criptografia completa de disco (LUKS) e fizer um snapshot de todo o dispositivo LUKS. Seu instantâneo terá pedaços de dados completamente aleatórios (criptografados). O LUKS também não conhece o deslocamento desses dados, mas contanto que você ainda tenha o cabeçalho LUKS e conheça a chave, você pode tentar descriptografar cada pedaço para cada deslocamento; e se você encontrar um deslocamento onde ele descriptografa dados não aleatórios, esse deve ser o correto. Mas isso pressupõe que todos os dados criptografados sejam de texto simples. Depois de criptografar dados aleatórios, você não sabe de nenhuma maneira.

    Se você tiver um caso de uso em que as gravações não são aleatórias, mas completamente determinísticas, você poderá reproduzir metadados repetindo as mesmas ações em um novo instantâneo. Se você sabe que usou apenas dd para gravar dados com busca e contagem, e em que ordem, talvez isso possa ser feito.

    Mas estes são casos que você normalmente não encontra na prática. Simplesmente não funciona muito bem. Não existem ferramentas para ajudá-lo nessa empreitada.

    • 0

relate perguntas

  • Kodi travando constantemente ao raspar a TV

  • Falha do sistema Proxmox diariamente

  • Mate-power-manager continua travando (como mantê-lo funcionando / reiniciar automaticamente?)

  • Quais sistemas de arquivos exigem fsync() para segurança contra falhas ao substituir um arquivo existente por rename()?

  • Depurar kernel panic - Watchdog detectou hard LOCKUP na CPU 9?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve