Usando o diretório como initrd no QEMU

6

Existe uma maneira de usar um diretório como initrd ao inicializar o QEMU?

Eu sei usar os sinalizadores -kernel e -initrd para o QEMU inicializar um kernel e initrd sem precisar criar primeiro um dispositivo inicializável contendo esses dois arquivos. Agora eu estou querendo saber se existe uma maneira de pular a etapa de usar cpio para criar o arquivo initrd também.

Geralmente ao fazer alterações no diretório que contém todos os arquivos do meu initrd. Gostaria de testá-los executando

(cd initrd ; find . | cpio --quiet -R 0:0 -o -H newc) | gzip >initrd.gz
qemu-system-i386 -kernel /boot/vmlinuz -initrd initrd.gz

Posso de alguma forma alcançar o mesmo sem ter que criar o arquivo initrd no sistema de arquivos?

O que eu tentei até agora foi o seguinte:

qemu-system-i386 -kernel /boot/vmlinuz -initrd initrd

resultando no início do kernel, mas panicing ao tentar montar o sistema de arquivos raiz.

qemu-system-i386 -kernel /boot/vmlinuz -initrd <(
   cd initrd ; find . | cpio --quiet -R 0:0 -o -H newc)

resultando em QEMU morrendo com:

qemu: error reading initrd /dev/fd/63: Illegal seek
    
por kasperd 21.12.2014 / 15:05

1 resposta

0

Eu suspeito que não - tanto quanto eu posso dizer na documentação do QEMU, ele não suporta leitura de kernel ou initrd de stdin, que é essencialmente o que você estava tentando fazer com o redirecionamento. Eu acredito que o Qemu espera um descritor de arquivo real (baseado no erro / dev / fd / 63), então você provavelmente está sem sorte. Você poderia perguntar na lista de discussão do Qemu ou no canal de IRC e ver se há algum conhecimento específico para realizar o que você está tentando fazer, mas acredito que você terá que reconstruí-lo toda vez.

    
por 12.12.2016 / 21:18