Como inspecionar a imagem do disco

5

Eu tenho um despejo de um disco rígido. Uma empresa de recuperação de disco rígido fez isso por mim. Eu não sei qual software eles usaram para fazer o despejo, tudo que eu tenho é um arquivo disk.img .

Minha única ideia para começar foi usar file :

$ file disk.img 
12693A.img: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, stage2 address 0x2000, stage2 segment 0x200; partition 1: ID=0xc, starthead 1, startsector 63, 312576642 sectors, code offset 0x48

Eu acho que, se este é um despejo de um disco rígido, ele contém, na seguinte ordem a) setor de inicialização b) partição tabela c) partições. Então eu acho que a ferramenta file apenas lê a primeira parte de (qualquer) arquivo, e neste caso a primeira parte é um setor de inicialização, embora o arquivo contenha muito mais.

Como faço para:

1) Veja a tabela de partições. Não os códigos hexadecimais, mas sim legíveis sobre quais partições estão lá.

2) Como vejo o conteúdo de cada uma das partições? Eu acho que isso é chamado de 'montagem' mesmo que não seja um disco físico e mesmo que eu não esteja interessado em alterar nenhum arquivo, apenas vendo o conteúdo.

    
por Mads Skjern 29.12.2013 / 09:56

1 resposta

10

Como é um arquivo que contém uma cópia de todo o disco, você pode simplesmente tratá-lo como qualquer outro dispositivo de bloco e executar fdisk nele. Dado que a imagem do disco é chamada disk.img , o seguinte comando será suficiente:

fdisk -l disk.img

Isso gerará uma saída semelhante à seguinte:

Disk /home/yjwong/disk.img: 250.1 GB, 250058268160 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488395055 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device              Boot      Start         End      Blocks   Id  System
/home/yjwong/disk.img1            2048     3905535     1951744   82  Linux swap / Solaris
/home/yjwong/disk.img2   *     3905536   488394751   242244608   83  Linux

Para montar as partições, o kernel do Linux permite que você especifique um deslocamento (em bytes) para a imagem do disco no comando mount. Você precisa montar em loop as partições dentro da imagem do disco. No entanto, como fdisk especifica o deslocamento inicial em setores, você precisará multiplicar o deslocamento fornecido pelo tamanho do setor (normalmente 512).

Para montar a segunda partição no exemplo acima, o deslocamento é 3905536 * 512 = 1999634432 .

O comando a seguir fará o truque, supondo que o tipo de partição seja ext4 e /mnt seja o ponto de montagem pretendido:

sudo mount -t ext4 /home/yjwong/disk.img /mnt -o loop,offset=1999634432

Se você quiser visualizar o conteúdo de maneira somente leitura, adicione ro às opções de montagem:

sudo mount -t ext4 /home/yjwong/disk.img /mnt -o loop,offset=1999634432,ro
    
por 29.12.2013 / 10:43