Esta questão é um derivado do seguinte: Como extrair dados brutos ext3 inode do disco?
Eu tenho um arquivo / tmp / foo, cujo conteúdo é uma simples cadeia de texto "AAA". Eu gostaria de localizar o bloco de disco # em que esses dados residem, extrair os dados neste bloco e certificar-se de que ele realmente contenha "AAA". Então eu faço o seguinte:
stat foo
que me diz que seu número de inode é 318903 debugfs -R 'imap <318903>' /dev/vda3
que me diz que este inode está localizado
no bloco 1277956, offset 0x0600 dumpe2fs /dev/vda3
que informa que o tamanho do bloco é 4096 (bytes)
e o tamanho do inode é 256 (bytes) Referenciando a estrutura do inode, vemos que o byte 25 corresponde a i_gid, portanto, isso confirma que realmente extraímos o bloco de inode correto do disco (o grupo anterior era 0, agora é 1). Também pode realizar testes semelhantes, como alterar a propriedade, alterar o tamanho do arquivo adicionando dados, extrair novamente o inode do disco e esses testes continuam a confirmar que temos o bloco de inode correto.13 217 362 14 225 222 25 1 0
chgrp 1 /tmp/foo; dd if=/dev/sda3 of=/tmp/inode.1 bs=256 count=1 skip=20447302; cmp -l /tmp/inode.1 /tmp/inode.0
25 1 0 27 1 0 29 10 0 41 56 0 42 220 0 43 23 0 101 275 0 102 53 0 103 240 0 104 374 0
"cmp" fornece valores em octal. Então, assumindo que o byte 44 é o byte de alta ordem, então o valor do ponteiro em octal é 23 | 220 | 56. convertendo isso para binário = 10011 | 10010000 | 00101110, ou 100111001000000101110. Convertendo isto para decimal = 1282094
Group 39: (Blocks 1277952-1310719) Inode table at 1277954-1278464 (+2)
cmp -l /tmp/inode.1 /tmp/zero.256
1 333 0 2 335 0 3 4 0 5 14 0 7 1 0 8 2 0 9 56 0 13 221 0 14 335 0 15 4 0 17 364 0 18 17 0 19 2 0 20 2 0 21 56 0 22 56 0
Isto não se parece com o conteúdo de / tmp / foo. Eu estava pensando que talvez estivesse em um bloco, então eu também extraí os blocos ao redor (1282093 e 1282095), mas ainda não encontrei o que estava procurando.
O que está acontecendo aqui? O que é esse material extra e por que não há "AAA"?
11/14. RESOLVIDO Acontece que o sistema de arquivos tinha alguns problemas (inodes órfãos e outros enfeites) que eu corrigi com fsck e agora tudo está se comportando como esperado. Quero agradecer muito a Wumpus e Derobert (ver comentários) que ofereceram muitos insights e sugestões valiosos. Impressionante.
Tags ext3