Navegue .img sem montagem

13

Existe alguma maneira de procurar um arquivo .img sem montá-lo? Eu tenho um arquivo .img que eu gerei a partir de um instantâneo da partição clonezilla. Eu de alguma forma tem problemas montando o arquivo com o comando mount -o loop sda5.img /mnt/.

dmesg | tail mostra o seguinte erro:

[1325.395286] EXT4-fs (loop0): geometria ruim: a contagem de blocos 11221248 excede o tamanho do dispositivo (11218432 blocos)

Alguém teve uma idéia de como navegar sem montar ou o que pode estar causando esse erro?

Ahatius
fonte
Isso parece ruim .
Uri Herrera
relacionado: unix.stackexchange.com/questions/32008/…
Ciro Santilli escreveu:

Respostas:

18

Se esta é uma imagem de um disco rígido inteiro ou, como no seu caso, pode ser uma imagem de uma partição estendida, você precisará conhecer o layout da partição e os deslocamentos de cada partição no arquivo para poder montá-los.

Para fazer isso, você precisará da partedferramenta, você pode instalá-la com o seguinte comando:

apt-get install parted

Após a instalação parted, inicie-o com o caminho para o seu arquivo de imagem. Um partedprompt será mostrado:

$ parted /path/to/image/file/sda5.img
GNU Parted 2.3
.....
(parted)

Nesse prompt (prefixado com (parted)), digite os seguintes comandos:

(parted) unit B
(parted) print
.....
Number  Start          End            Size           Type     File system  Flags
 1      1048576B       1573912575B    1572864000B    primary  ntfs         boot
 2      1573912576B    156774694911B  155200782336B  primary  ntfs
 3      156774694912B  171454758911B  14680064000B   primary  ntfs
 4      171454758912B  180044693503B  8589934592B    primary

(parted) q

A tabela na saída informará os deslocamentos de cada partição no arquivo e o tipo de sistema de arquivos em cada partição. Por exemplo, para montar a primeira partição na saída exemplar acima, você precisará inserir o seguinte comando:

sudo mount -o loop,ro,offset=1048576 /path/to/image/file/sda5.img /mnt/partition

Verifique se /mnt/partitionexiste primeiro.

dobrador
fonte
1
Ok, acho que o problema pode ser que recebo um erro ao executar o comando print, porque diz tabela de partições desconhecida. Acho que a imagem está quebrada?
Ahatius
Parece muito quebrado. Mas tente buscar seu erro no Google primeiro.
bender
Can't have a partition outside the disk!Erro com reparte como com GParted ...
Philippe Gachoud
8

Eu tive esse mesmo problema com uma imagem ext4 gerada a partir de um instantâneo do Clonezilla.

O que realmente funcionou para mim foi estender o arquivo para o tamanho que a tabela de partições relata, usando truncado. O erro dmesg relatado no meu caso foi:

[15687.653868] EXT4-fs (loop0): bad geometry: block count 18482176 exceeds size
  of device (18352672 blocks)

Então eu ajustei o comprimento do arquivo com:

truncate -o -s 18482176 /path/to/partition.img

(^ note que esse é o primeiro e maior dos dois números no log)

Depois que a montagem ficou feliz e eu pude acessar meus dados.

Anthony Lenton
fonte
Isso funcionou para mim, embora o tamanho estivesse errado, acho que os tamanhos dos blocos eram diferentes, então tive que especificar o tamanho em bytes. Tenha cuidado, pois poderá perder dados se você truncar o arquivo de imagem para um tamanho menor que o tamanho original.
golimar
1
Como você sabe o tamanho correto? por favor, adicione os comandos aqui.
Hunsu 19/07/2014
@Hunsu O tamanho é relatado na mensagem de erro (dmesg).
Melebius 5/10