O que é um número “mágico” de um sistema de arquivos em um super bloco?

9

Estou trabalhando em um sistema NAS de médio porte basicamente rodando em Linux e hoje tenho que fazer ótimos testes. O passo-a-passo me leva a usar o fsdb para corromper o número mágico em um sistema de arquivos para corrompê-lo / testar o script que deve consertá-lo.

Eu pesquisei um pouco e não encontrei uma explicação sólida. Pode alguma luz lançar alguma luz intermediária?

    
por mbb 28.01.2011 / 22:08

1 resposta

15

Um número mágico é uma sequência de bytes usada em todos os arquivos de um determinado formato, geralmente em uma determinada posição (geralmente no início). Como todos os arquivos nesse formato específico têm essa sequência de bytes específica nessa posição específica, e a maioria dos arquivos em outros formatos não o possui, o número mágico é uma maneira de reconhecer em que formato um arquivo se encontra.

Aqui, este conceito é aplicado a um formato de sistema de arquivos. Por exemplo, um sistema de arquivos ext2 / ext3 / ext4 sempre possui os bytes 0x53 0xEF nas posições 1080–1081. Um sistema de arquivos reiserfs sempre tem ReIsErFs começando na posição 65588 (ou ReIsEr2Fs , etc., em versões mais recentes). Outros sistemas de arquivos têm números mágicos semelhantes. As ferramentas do sistema de arquivos verificam a presença do número mágico (e possivelmente outras pistas) para garantir que você não as tenha lançado acidentalmente em dados organizados em um formato com o qual não possam lidar e que possam ser danificados. Se você alterar o número mágico em um sistema de arquivos, é provável que as ferramentas comuns se recusem a tocá-lo; as ferramentas de reparo podem ser mais inteligentes e tratar um número mágico ruim como apenas uma das coisas que podem ser quebradas.

O comando file reconhece os arquivos com base em seus números mágicos. Você pode executar file -s /dev/sda1 para ver o que pensa estar na partição /dev/sda1 . Suas decisões são baseadas em um banco de dados normalmente encontrado em /etc/magic ou /usr/share/misc/magic . Comandos específicos podem usar diferentes números mágicos para reconhecer os formatos de arquivo com os quais eles podem lidar.

    
por 28.01.2011 / 23:01