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.
-
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 de1024*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 usar5K
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 parapartimage
- e é aí que a construção dispositivo de loopback é útil (continue lendo). -
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 parapartimage
em vez da partição real. Você também pode verificar se o dispositivo de loopback está anexado ao seu arquivo executandolosetup -a
- isso é obviamente opcional. -
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: -
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" .