montar partições de partição freebsd em linux

7

Eu tenho no Linux:

       Device   Boot      Start         End      Blocks   Id  System
/filename.img      *         63     1007999      503968+  a5  FreeBsd

Sob a partição acima eu tenho duas fatias: sistema de arquivos ufs e swap. Não sei como posso determinar o deslocamento de montagem para montar a partição ufs.

mount -r -t ufs -o loop,offset=32256,ufstype=ufs2 filename.img /test/

saída dmesg

ufs_read_super: bad magic number

Não está funcionando.

    
por user1003182 26.10.2011 / 15:47

2 respostas

2

Eu suspeito que seja

mount -r -o loop,offset=32768,ufstype=ufs2 filename.img /test/

Se bem me lembro, a primeira partição BSD começa em um limite de 32kB em relação ao disco inteiro. São 64 setores de 512B. Em relação à partição PC, o deslocamento da partição BSD é de 63 setores, porque a partição PC começa em um deslocamento de 1 setor em relação ao disco inteiro: o primeiro setor do disco contém a tabela de partições.

Como sugerido por rozcietrzewiacz, você pode confirmar o deslocamento da partição BSD com

partx -l filename.img

Há um patch para que o kernel do Linux suporte o acesso automático a partições de dispositivos de loop. O Debian aplica isso em seus kernels. Se você tiver esse patch, verifique se o driver loop tem um parâmetro max_part suficientemente grande (talvez seja necessário fazer rmmod loop; modprobe max_part=63 ). Então as partições BSD aparecerão como algo como /dev/loop0p5 e /dev/loop0p6 .

    
por 26.10.2011 / 21:53
2

Obrigado por todas as sugestões.

# partx -l filename.iso
HDIO_GETGEO: Inappropriate ioctl for device

Eu adicionei o mapeamento de nome de arquivo que criou o mapeamento lógico no diretório / dev / mapper

# kpartx -a filename.iso

# ls -l /dev/mapper/
control  loop0p1

o último cheque

# partx -l /dev/mapper/loop0p1 
1:         0-       -1 (        0 sectors,      0 MB)
2:         0-       -1 (        0 sectors,      0 MB)
3:         0-       -1 (        0 sectors,      0 MB)
4:         0-    49999 (    50000 sectors,     25 MB)
1:   8388671-142078859 (133690189 sectors,  68449 MB)
2:        63-  8388670 (  8388608 sectors,   4294 MB)

e o último com sucesso

mount -r -t ufs -o loop,offset=$((8388671*512)),ufstype=ufs2 filename.iso /test/

Atenciosamente!

    
por 27.10.2011 / 10:34