Após a catástrofe que aconteceu comigo recentemente, decidi começar a fazer backups dos meus dados. Eu estava procurando as melhores maneiras de clonar partições e discos e me deparei com uma pergunta em outro site na rede stackexchange.
A segunda resposta parece interessante, no entanto, na segunda parte, sugere o seguinte:
Para economizar ainda mais espaço, desfragmente a unidade/partição que deseja clonar com antecedência (se apropriado) e, em seguida, zere todo o espaço não utilizado restante, facilitando a compactação do gzip
Este parece ser um processo demorado e pode reduzir a vida útil de um disco rígido, então eu estava pensando: por que zerar o espaço não utilizado do disco rígido? por que não reduzir a partição para perto do tamanho que ela ocupa no disco e usar dd em conjunto com gzip?
Por exemplo, se a partição que hospeda minha instalação do Windows tiver 450 GB e o tamanho dos dados usados for 80 GB, eu poderia usar o "Gerenciamento de disco" no Windows para reduzir a partição em '450 - 80 + 0,5' GB. O 0,5 GB é para evitar problemas com processos em segundo plano tentando gravar no disco.
Eu posso então usar a distribuição linux ao vivo para executar o comando:
dd if=/dev/hdb | gzip -c > /image.img.gz
Posso então voltar ao Windows e estender a partição para reivindicar o espaço não alocado.
Como não tentei essa abordagem, quero perguntar:
Estou faltando alguma coisa / há algo de errado com isso?
A razão pela qual estou perguntando é que não encontrei uma única resposta ou artigo que mencione essa abordagem.
Minha segunda pergunta é: existe hoje uma ferramenta de compactação melhor que o gzip para esse fim?
Encolher a partição também é um processo demorado, pois precisa mover uma grande quantidade de dados – que normalmente são espalhados por toda a partição (para evitar a fragmentação) em vez de todos os arquivos serem compactados no início, então quanto mais você quiser reduzir uma partição, mais dados precisam ser movidos fisicamente para um local diferente.
Acima de uma certa porcentagem "usada", pode até ser mais lento do que zerar o espaço vazio, pois a ferramenta de redução precisa ler os dados antes de gravá-los em outro lugar, trabalhando com menos da metade da velocidade do disco rígido como resultado.
(Além disso, muitas vezes o Windows se recusará a reduzir um sistema de arquivos online além de um certo ponto - por exemplo, se você começar com um sistema de arquivos de ~ 1 TB, geralmente o mínimo será de ~ 450 GB, mesmo que o sistema de arquivos esteja quase vazio. Uma redução offline do Windows PE ou mesmo do Linux usando ntfsresize, pode ser necessário reduzi-lo ainda mais.)
Duas opções muito melhores são:
Clone a partição usando
ntfsclone
, que se comporta comodd
exceto que entende o bitmap de alocação de espaço NTFS, para evitar a leitura de todos os setores que o NTFS considera não utilizados. O resultado é semelhante a pré-zerar um sistema de arquivos, mas muito mais rápido, pois os setores vazios não são escritos nem lidos.partclone
é uma ferramenta semelhante que suporta mais sistemas de arquivos, mas infelizmente só pode produzir seu formato de imagem proprietário (que precisa de uma segunda invocação de partclone para restaurar de volta a uma partição física), enquanto o ntfsclone apenas gera uma imagem "raw" que pode ser gravada diretamente no nova partição.Em algumas situações, você pode usar
Disk2vhd.exe
, que é executado no Windows e sempre gera um arquivo de imagem VHD ou VHDX (destinado a converter instalações físicas do Windows em Hyper-V). As imagens VHD(X) são alocadas dinamicamente, portanto, ocupam apenas o espaço necessário – e podem ser anexadas como discos virtuais em qualquer sistema Windows 10. No entanto, Disk2vhd não possui uma ferramenta complementar para restaurar de VHD para um disco físico (embora isso possa ser feito usando qemu-img).Crie uma imagem em nível de arquivo usando
dism.exe /capture-image
, que gera um arquivo WIM (o mesmo tipo que o processo de instalação do Windows usa) – que pode ser extraído para uma nova partição NTFS usando/apply-image
, preservando [quase] todos os metadados específicos do Windows.Você pode fazer isso no Windows PE, por exemplo, inicializando o instalador do Windows ou um ambiente de recuperação e pressionando Shift+F10 para o prompt de comando.
Este método evita problemas relacionados ao redimensionamento (por exemplo, você pode capturar uma imagem de um disco de 1 TB e extraí-la para um de 256 GB), mas é mais lento que o ntfsclone, pois você precisa de um local intermediário para armazenar a imagem e não está claro se realmente captura todos os metadados. (Por exemplo, acontece que você precisa usar a
/EA
opção para incluir atributos estendidos usados pelo WSL1.)