Problema ao visualizar o super bloco no sistema de arquivos ext3

1

Eu tentei ver o superbloco pelo comando "dd" no sistema de arquivos ext3.

dd if=/dev/sda3 bs=4096 skip=1 count=1 of=superblock

Mas o resultado no arquivo superblock não está correto (eu comparo o valor da contagem de Inodes que recebi de dumpe2fs). O arquivo do dispositivo / dev / sda3 é iniciado no bloco de inicialização e depois no superbloco do grupo0? E outra pergunta é o bloco de inicialização e o tamanho do superblock são ambos BLOCKSIZE (aqui é 4096)? O formato de disco de ext2 / ext3 (acho que eles são os mesmos) são mostrados abaixo:

    
por user29218 23.02.2010 / 10:51

2 respostas

2

O bloco de inicialização do sistema de arquivos ext2 / ext3 tem 1024 bytes, não 4096. Use

  $ sudo tune2fs -l /dev/sda3

para ver os parâmetros do sistema de arquivos como tamanho de bloco e

  $ sudo dumpe2fs -hx /dev/sda3

para obter o superbloco. Também

  $ sudo dd if=/dev/sda3 bs=1k skip=1 count=4

receberá o superbloco.

    
por 23.02.2010 / 17:51
0

Obrigado pela resposta de dtmilano. Eu já tinha tentado antes de fazer a pergunta. Mas acho que o resultado está errado. O problema é que eu esqueço de converter o little endian !!

Abaixo, escrevo meus passos para sua referência:

$ sudo dd se = / dev / sda3 bs = 1k omitir = 1 contar = 4

A primeira linha no superbloco é: 0000000: 0000 3a04 fdc4 3904 a616 3600 45f6 fc00 ..: ... 9 ... 6.E ...

Então, de acordo com a declaração struct ext3_super_block em ext3_fs.h: / 00 / __le32 s_inodes_count; / * Contagem de inodes /         __le32 s_blocks_count; / Blocos contam * /

A contagem de inodes é 043a0000 = 70909952 (0000 3a04 deve ser convertida para 043a0000) A contagem de blocos é 0439c4fd = 70894845

É o mesmo que o resultado de dumpe2fs: Contagem de inodes: 70909952 Contagem de blocos: 70894845

    
por 24.02.2010 / 03:02