Montar o arquivo de imagem NTFS criado usando partimage

4

De um disco antigo que não tenho disponível, criei um arquivo chamado winxp.img usando partimage . Como o nome do arquivo sugere, a partição continha o Windows XP e foi formatada com o NTFS.

(O arquivo contém apenas uma partição de 4.6 GiB NTFS, não o disco inteiro.)

Como posso acessar os arquivos dentro dessa imagem sem restaurá-la em um disco físico?

    
por Alois Mahdal 21.05.2012 / 21:20

3 respostas

4

Como mencionado em documentação da partimage 1 ,

(...) It is also impossible to extract a file from an image.

Mas não precisa se desesperar! Com o poder da filosofia Unix ( "Tudo é um arquivo" ), você pode acessar os arquivos sem a necessidade de alocar espaço em disco para uma partição separada. E aqui está como:

.. 0. Você diz que sua imagem criada com partimage é denominada winxp.img e contém o backup de uma partição NTFS 4.6 GiB . Bem. Você tem mais de 4.6 GiB de espaço livre no seu sistema Linux? Perfeito! (Caso contrário, obtenha algum espaço livre.) Você pode restaurar o conteúdo de partimage archive para um arquivo "fictício" que fingirá ser uma partição real.

  1. Primeiro, você precisa criar um arquivo vazio de pelo menos 4,6 GiB:

    dd if=/dev/zero of=dummy_disk.raw bs=1M count=4711
    

    (O valor do parâmetro count vem do arredondamento de 1024*4.6 para atingir um valor acima de 4.6 GiB. Para um valor exato, você precisaria saber o tamanho da partição original - mas se você tiver espaço livre suficiente, você pode simplesmente usar 5K para estar no lado seguro.

    Agora, diga partimage para restaurar seu sistema de arquivos NTFS para esse espaço fictício. O que? Recusa-se a tratar um arquivo normal como partição do disco rígido? Não há problema - se o Unix disser "Tudo é um arquivo" , então um identificador de disco como /dev/sda1 também é um arquivo - então só precisamos reverter essa situação e fornecer um tipo de "dispositivo de bloco" do arquivo para partimage - e é aí que a construção dispositivo de loopback é útil (continue lendo).

  2. Crie um dispositivo de loopback anexado ao seu disco fictício recém-criado (isso requer privilégios de root na maioria dos sistemas, portanto sudo é usado):

    sudo losetup -f --show dummy_disk.raw
    

    O comando emitirá algo como /dev/loop0 - que é o nome do dispositivo de loopback que você precisa fornecer para partimage em vez da partição real. Você também pode verificar se o dispositivo de loopback está anexado ao seu arquivo executando losetup -a - isso é obviamente opcional.

  3. Execute partimage para restaurar o sistema de arquivos arquivado no arquivo fictício (substitua /dev/loop0 pelo nome que você obteve na etapa anterior):

    partimage restore /dev/loop0 winxp.img
    

    Quando terminar, o arquivo dummy_disk.raw conterá o sistema de arquivos NTFS restaurado! Você só precisa montá-lo agora, para acessar os arquivos:

  4. Monte o manequim. Você só precisa de um diretório vazio para isso. Você pode criá-lo com mkdir mountpoint ou usar um já existente. Existem duas maneiras alternativas de montar o arquivo:

    sudo mount -t ntfs-3g /dev/loop0 mountpoint
    

    (substitua /dev/loop0 pelo nome do dispositivo que você recebeu anteriormente)

    OR

    sudo mount -o loop -t ntfs-3g dummy_disk.raw mountpoint
    

    O método anterior usará o dispositivo de loopback existente, enquanto o segundo criará automaticamente um novo (a diferença de uso de recursos é insignificante).

É isso! O conteúdo do seu arquivo agora está acessível no diretório mountpoint .

Nota: Para as tarefas futuras de arquivamento de sistemas de arquivos, considere usar uma ferramenta mais atualizada, como FSAsarchiver . Não estou dizendo que é perfeito, mas pelo menos ainda é mantido. Você pode verificar as diferenças entre essas duas ferramentas em a página wiki do FSArchiver .

1 Isso pode ser um pouco impreciso, já que o software não é mantido e o website lista essa página da documentação como "desatualizada" .

    
por 23.10.2012 / 16:43
0

Eu não acho que você pode fazer isso diretamente, pois não há uma solução "partimagefs" que eu saiba. Você poderia verificar as ferramentas de fusíveis, mas acho que há uma maneira mais fácil ...

Você pode usar um disco virtual (com KVM, qemu, VirtualBox) e deixar a partimage descompactar a imagem lá. Se você usar o formato bruto, poderá montá-lo com segurança.

Os passos necessários são descritos aqui

    
por 21.05.2012 / 21:48
0

Eu não tenho um volume NTFS à mão, mas isso pode ajudar você a encaminhar:

mount -t ntfs -o loop,ro /path/to/winxp.img /mnt

Em que /mnt é um ponto de montagem não utilizado. Muitas distribuições têm /mnt disponível, mas você pode facilmente criar outra quando necessário. ro indica 'somente leitura', o que é um bom plano quando você não quer que sua imagem seja alterada.

    
por 21.05.2012 / 22:48