Capacidade de usar o dd para executar um backup de imagem parcial?

3

Esta questão está relacionada com um de vários anos ago , onde eu estava procurando uma maneira de fazer um backup de imagem parcial. Essa parte nunca foi respondida, então esta é uma questão dedicada para isso.

O problema

  • Eu planejei reduzir uma partição do Windows e queria primeiro fazer um backup de imagem, como seguro. Se a recuperação fosse necessária, o backup precisaria ser restaurado para a partição reduzida.

  • Como o propósito era o seguro do sistema como está, o backup tinha que ser o conteúdo "virgem", antes de qualquer tipo de modificação que alterasse qualquer coisa ou introduzisse novos riscos.

  • A ferramenta de redução de partições do Windows informa antecipadamente quanto diminuirá a partição. Eu queria uma imagem de apenas a parte da partição que permaneceria após o encolhimento.

  • Eu tinha um backup baseado em arquivo, portanto não estava preocupado com nenhum arquivo que pudesse estar fora da área de redução e possivelmente não capturado pelo backup.

Conceito de solução

A sabedoria convencional diz que esses requisitos não podem ser atendidos usando dd . No entanto, sabendo apenas o suficiente para ser perigoso, existe uma abordagem que parece que deve ser uma solução (estou assumindo que uma solução baseada em dd seria executada dentro do Linux).

A ideia:

  • dd tem parâmetros disponíveis para especificar os locais iniciais e finais.
  • Qualquer ferramenta de gerenciamento de partições irá revelar onde essa partição fica na unidade.
  • A ferramenta de redução de partições do Windows exibe quanto diminuirá a partição do Windows.

Essa parece ser a matéria-prima para calcular os parâmetros dd . Colocar as peças juntas é algo que eu não fiz antes. Então a pergunta é:

  • como determinar os parâmetros dd que refletem a parte reduzida da partição
  • o comando dd para copiar essa parte relevante para uma unidade de backup
  • o comando dd para restaurar a imagem no mesmo local na unidade original

Advertência

Definir e copiar uma seção desejada de uma partição fora do zero parece que deveria ser simples. No entanto, um ponto que não está claro é se o NTFS MFT está vinculado ao tamanho da partição original, de modo que restaurá-lo para a partição reduzida o deixaria corrompido, pelo menos além da capacidade de algo como chkdsk reparar. / p>

Objetivo da pergunta

O objetivo final é criar um backup de imagem parcial de uma partição do Windows, conforme descrito. Esse problema nunca atraiu soluções na questão original, portanto, essa questão pretende oferecer a semente de uma abordagem potencial. No entanto, meu conceito pode não funcionar. Assim, enquanto uma solução dd é o foco desta questão, eu não impediria uma solução alternativa usando ferramentas gratuitas internas ou comumente disponíveis. Então, uma resposta bem sucedida pode ser:

  • Uma solução dd baseada em funcionamento
  • Uma explicação autoritativa e definitiva de por que uma solução baseada em dd não pode funcionar (ou pelo menos não pode ser confiável para trabalhar de forma confiável)
  • Uma solução alternativa que cumpre os objetivos.

Adendo

A resposta de Kamil Maciorowski identifica outra questão, Clone apenas o espaço em uso do disco rígido , que é bastante semelhante, mas eu não acredito que seja uma duplicata. Algumas diferenças importantes:

  • Essa pergunta procura clonar apenas o espaço usado. Este procura clonar uma seção específica de uma partição.
  • Essa pergunta não tem restrições específicas para chegar ao resultado. Este requer que a imagem seja do estado atual puro, sem alteração ou risco ao conteúdo, o que impossibilita qualquer tipo de "preparação".
  • Essa pergunta é sobre uma unidade inteira e um sistema de arquivos Linux. Este é sobre uma seção de uma partição e NTFS.
por fixer1234 20.03.2017 / 04:40

1 resposta

2

Eu posso dizer que é problema XY e a verdadeira questão é: Como clonar apenas o espaço em uso do disco rígido (ou partição)? Eu não quero apontar para outra resposta sem explicação porque ela deveria ser melhor do que a sua proposta de ideia; então aqui está:

Em geral, não é garantido que o espaço livre seja agregado no final do sistema de arquivos, mesmo após a desfragmentação. Não sei se a família NTFS e FAT é boa o suficiente para ter certeza, mas suspeito que possa haver algumas estruturas de dados que ocupam setores distantes de um sistema de arquivos grande, independentemente de quão vazio ele é.

Por isso, sou cético quanto à ideia de salvar apenas uma imagem parcial. Talvez existam sistemas de arquivos que sobreviveriam a isso, talvez o NTFS seja um deles - não sei.

Muitas vezes fiz algo parecido com o que você deseja alcançar, principalmente com o NTFS. Meu caminho funciona independentemente de onde no sistema de arquivos os pedaços livres são. Basicamente:

  • escreva zeros em um arquivo até não restar espaço,
  • sincronização,
  • remova o arquivo de zeros,
  • umount ,
  • leve a imagem para um arquivo esparso ou compactado.

Pode levar muito tempo. Certifique-se de que o sistema de arquivos esteja saudável de antemão. Também não faça isso se você suspeitar que o disco esteja com defeito.

Você pode encontrar mais detalhes em minha resposta à pergunta já mencionada . A diferença importante é que você estará lendo sua única partição com dd , não a unidade inteira.

Infelizmente, essa imagem não pode ser restaurada para a partição reduzida. A imagem será útil se o processo de redução falhar e você perder seus arquivos originais. Eu acho que você precisa de uma ferramenta que possa fazer backup de arquivos (e metadados dentro de um sistema de arquivos) para poder restaurar em uma partição menor. Bem, dd não é essa ferramenta.

    
por 20.03.2017 / 08:27