Como extraio a imagem do sistema de arquivos do vmlinux.bin?

4

jor1k envia um vmlinux.bin . Eu acho que há um initrd dentro, porque eu não sei onde mais seria. Eu estou tentando extrair a imagem do sistema de arquivos para que eu possa mudá-la, mas não sei como.

Eu tentei usar o extrair-vmlinux da distribuição de código-fonte do Linux, mas Cannot find vmlinux .

    
por Janus Troelsen 28.04.2013 / 20:47

2 respostas

8

Você pode procurar o cabeçalho cpio newc (começando com 0707010 ):

$ grep -abo 0707010 vmlinux.bin | head -n1
2531404:0707010

Os arquivos -a (para a ll mesmo os binários), -b (para b deslocamento yte), e -o (para o apenas a parte correspondente (e reportar o deslocamento de byte da parte correspondente em vez da linha contendo a parte correspondente)) são extensões GNU não padrão para grep , mas são úteis para descobrir onde uma determinada string é para ser encontrado em um arquivo (ao contrário de muitas outras implementações grep , GNU grep também suporta arquivos não-texto (isto é, que podem conter valores de 0 byte podem ter uma seqüência arbitrariamente longa de bytes entre dois caracteres LF) termina em um caractere LF ou pode conter bytes ou seqüências de bytes que não fazem caracteres válidos no código de idioma atual), o que é um requisito a esse respeito.

$ tail -c +2531405 vmlinux.bin| cpio -t | head
bin
bin/sleep
bin/kill
bin/watch
bin/deluser
bin/getopt
bin/uname
bin/nice
bin/zcat
bin/cpio

( grep -b de compensações começam em 0, enquanto tail -c inicia em 1).

    
por 29.04.2013 / 03:30
-3

O primeiro passo é file vmlinux.bin .

Desculpe, mas "vmlinux.bin: data" geralmente significa muito para isso. Se file não reconhecer um arquivo, os utilitários padrão não poderão ajudá-lo.

Mas a partir da leitura da página de download, parece que esta é a versão OpenRISC 1000 do kernel do Linux. Assim, faz todo o sentido que file não o reconheça.

Eu não conheço o OpenRISC 1000, mas acho que em um caso tão especial não há necessidade de um initrd.

    
por 28.04.2013 / 23:52