rpm consulta na imagem do sistema de arquivos

0

Eu tenho um instantâneo rootfs de um sistema ARM integrado que usa o rpm como gerenciador de pacotes, tanto como uma imagem binária que pode ser montada em loopback no meu host e um tarball.

Gostaria de enviar algumas perguntas sobre o rpm a esse instantâneo, como rpm -qa ou rpm -qf /some/file e assim por diante.

Existe uma maneira de fazer isso no meu host x86?

Por enquanto eu tenho que recorrer à execução da imagem sob o comando qemu-arm e fazer as consultas em um alvo simulado, mas essa não é uma maneira conveniente de fazer as coisas.

Eu tentei jogar com as opções --dbpath e --root de rpm e rpmdb , sem sucesso (elas terminam silenciosamente sem erros).

    
por atzz 25.11.2016 / 17:51

1 resposta

0

No meu sistema debian, o pacote qemu-user-static contém binários estaticamente vinculados de emulação do usuário (por oposição à emulação do sistema), incluindo / usr / bin / qemu-arm-static

Eles são todos registrados com o recurso binfmt (por este pacote com o pacote auxiliar binfmt-support). Então, por exemplo:

# cat /proc/sys/fs/binfmt_misc/qemu-arm
enabled
interpreter /usr/bin/qemu-arm-static
flags: OC
offset 0
magic 7f454c4601010100000000000000000002002800
mask ffffffffffffff00fffffffffffffffffeffffff

Agora apenas monte o sistema de arquivos raiz do braço em / mnt e copie / usr / bin / qemu-arm-static (binário x86) para / mnt / usr / bin / qemu-arm-static

Do seu host x86, apenas chroot:

chroot /mnt

E agora você pode executar a maioria dos comandos e achar que está em um sistema de armar (os documentos do site do qemu não funcionam, incluindo as chamadas ptrace). Não se esqueça de montar outros sistemas de arquivos (/ proc, / var ...), se necessário.

Acho que o LXC pode trabalhar com esse tipo de emulação dentro de um contêiner. Fazer um chroot não irá isolar e instalar pacotes pode dar problemas (armários binários daemons rodando ...)

Você não disse qual é a distribuição do seu host, então não posso dizer muito mais. O método manual para adicionar um interpretador para um executável binário é descrito lá: link

    
por 25.11.2016 / 21:30

Tags