initrd.img contém muitos arquivos

1

Sou novo aqui, espero que esteja postando na seção certa ...

Bem, eu tenho o initrd.img do debian 3.16.0-4-686-pae (baixado e gravado todo iso). Se eu inicializar do disco ou o lan initrd estiver ok, tudo será inicializado bem.

O problema começa quando quero adicionar um driver ao initrd. Eu pego o arquivo initrd.img e o extraio. Eu só tenho 1 diretório chamado kernel. Depois de procurar por aí eu encontrei um segmento com o mesmo problema aqui e tentei suas soluções (link de thread: Por que meu initrd tem apenas um diretório, a saber, 'kernel'? ).

Eu tentei com o cpio que só extrai 1410 blocos, depois do dd de 1410 até o fim do arquivo eu recebo um arquivo (se for importante, só é legível se eu o nomear nome .tar.gz) que contém todas as pastas e tudo, mas é um pouco danificado, alguns arquivos são dimensionados 0 (sh e bash, por exemplo, que faz qualquer initrd eu vou tentar criar a partir deste inútil e não inicializável com eror: Sh encontrado mas não pode ser executado. O mesmo com o shell).

Se eu usar a solução binwalk no mesmo thread, consegui extrair um arquivo do initrd, mas esse arquivo contém apenas 3 pastas (bin, etc, lib) sem todos os arquivos. (No sh ou bash por exemplo).

Nota - De acordo com binwalk o initrd contém:

1 - arquivo ascii

1 - xz dados compactados

30 - arquivo compactado de dados gzip que, de acordo com a binwalk, é

from NTFS file system (NT) NULL date: Thu jan 1 00:00:00 1970

Todos eles têm menos de 1 MB.

Por isso, não posso adicionar um driver a este arquivo initrd.img por causa do formato ... Qualquer ajuda seria bem-vinda, se mais informações forem necessárias, deixe-me saber que farei o meu melhor para fornecê-lo .

Tl; dr Eu tenho estranho arquivo initrd.img Eu não consigo adicionar um driver para.

Saída do Binwalk: link

Note que eu editei o arquivo, o começo dele são arquivos do arquivo ASCII, todas as outras coisas que eu removi são a data dos arquivos compactados gzip, todos os quais são, como declarado: Qui 1 Jan 00:00:00 1970 (Acredito que desde que esta é a data de época, talvez seja incapaz de ler a data real por algum motivo estranho ...)

Qualquer ajuda seria apreciada, deixe-me saber se mais informações são necessárias eu farei o meu melhor para fornecê-lo, obrigado :)

Esqueci de mencionar - todos os comandos que estou executando e usando estão no ubuntu 3.16.0-30-generic (eu acho que é confiável)

    
por Dan Baruch 26.03.2015 / 16:12

1 resposta

0

Primeiro, se inicializar bem, eu verificaria como você extrai o arquivo img. A imagem está intacta.

Para as imagens initrd Redhat / Fedora eu uso o seguinte método:

# This should confirm it is a gziped image    
file initrd0.img 

# This should leave you with unzipped initrd0 (no .img)
# The -d is decompress, the -S is to expect the .img suffix not the usual .gz
gzip -dS .img 

# This should show confirm it is now a cpio archive
file initrd0

# Create a directory to unpack to
# and unpack inside the new directory
mkdir new-init 
cd new-init
cpio -id < ../initrd0

Adicionei comentários a algumas das linhas "menos que óbvias" acima. A ideia é confirmar que temos o tipo de arquivo adequado antes de tentarmos descompactar. Se a saída de cada comando de arquivo for diferente do esperado (primeiro o arquivo gzip e depois o cpio), você deverá usar a ferramenta apropriada para descompactar.

    
por 26.03.2015 / 16:54

Tags