Esta dica destina-se as pessoas que, alguma vez, precisaram acessar o conteúdo de uma imagem criada pelo comando
dd.
E não conseguiram montá-la pelo comando habitual (loop):
mount -o loop
Montando dispositivo
Se você, alguma, vez precisar acessar o conteúdo de um arquivo de imagem, que foi criado pelo comando
dd, e
recebeu o aviso de que o sistema de arquivos é desconhecido (pois ele é membro de um sistema em RAID).
Da forma convencional, faríamos:
# mount -o loop sda.img /mount/point
Mas, aparece a mensagem de erro:
mount: unknown filesystem type 'ddf_raid_member'
Isto acontece porque num sistema RAID a controladora envia ao
dd, todas as informações do dispositivo de uma
vez. Devemos então, passar um parâmetro extra ao comando
mount, para ele saber onde está "endereçado" cada
segmento do conjunto (mesmo que tenha outro vazio).
Para saber, usaremos o
fdisk com as opções
-ul:
# fdisk -ul sda.img
O que retorna:
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = setores of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd422d422
Dispositivo Boot Start End Blocks Id System
sda.img1 * 63 623884274 311942106 7 HPFS ou NTFS
A partição 1 possui fins físico/lógico diferentes:
fís. = (1023, 254, 63) lógico = (38834, 254, 63)
Ou, com
sfdisk (variante do
fdisk), temos mais detalhes do arquivo:
# sfdisk -ul sda.img
Resultado:
Disco sda.img: 38913 cilindros, 255 cabeças, 63 setores/trilha
Situação antiga:
Unidades = setores de 512 bytes, contando a partir de 0
Device Boot Start End #sectors Id System
sda.img1 * 63 623884274 623884212 7 HPFS ou NTFS
sda.img2 0 - 0 0 Vazia
sda.img3 0 - 0 0 Vazia
sda.img4 0 - 0 0 Vazia
...
Como vemos no resultado, cada setor tem 512, e a partição inicia-se no setor 63.
Basta então, multiplicarmos: 63 * 512 = 32256 - Refazendo o comando com o parâmetro 'offset'.
Se houvesse mais partições dentro, usaríamos o mesmo conceito: Valor de Start * tamanho do setor
Neste caso, só existe uma partição, então:
# mount -t ntfs -o loop,offset=32256 sda.img /mount/point
Com o comando
df -h, conseguimos constatar que foi montando corretamente!
# df -h
Retornou:
/dev/loop1 298G 216G 82G 73% /mount/point
Espero que seja útil, assim como foi para mim.
Obrigado!
Aguinaldo Retamero
Referência