qemu não pode executar o kernel do linux

0

Eu vi esta pergunta e fiz praticamente o mesmo, mas habilitei initrd na configuração para usar o sistema de arquivos raiz temporário e nenhuma outra modificação, mas ainda recebo esse erro:

qemu -kernel linux-3.16.1/arch/x86/boot/bzImage

alguma sugestão sobre o que causa este erro ou como posso corrigi-lo?

    
por abolmabol 18.08.2014 / 13:04

1 resposta

3

A inicialização falha pela mesma razão que na questão mencionada - apenas inicializar um kernel sem qualquer outra coisa não faz muito bem . Você deve fornecer um disco. Ou uma imagem initrd. Mas apenas habilitar o initrd não dá a você uma imagem initrd magicamente. Você precisa preparar um e fornecer ao qemu da seguinte forma:

qemu-system-i386 -kernel <your kernel> -initrd <your initrd image>

É bem provável que você também precise fornecer um disco.

Existem cerca de uma dúzia de maneiras de criar e usar discos para o qemu, então aqui eu explico apenas uma abordagem muito simples (veja aqui para mais).

Primeiro, crie um arquivo, por exemplo,

qemu-img create -f raw mydisk.img 1G

que criará um disco de 1 GiB.

Você pode usar isto da seguinte forma:

qemu <other options> -hda mydisk.img

Se o seu initrd espera algo (como um sistema utilizável) no seu disco, você precisa preenchê-lo primeiro montando-o no host local, por exemplo:

losetup /dev/loop0 mydisk.img

você pode tratar /dev/loop0 como qualquer outro dispositivo de bloco, ou seja, você pode executar fdisk etc. Depois de criar partições e sistemas de arquivos, você pode montá-los e colocar o que precisa.

Uma abordagem alternativa é usar uma imagem ISO de instalação e anexá-la a um CD-ROM, por exemplo

qemu <other options> -hda mydisk.img -hdb myiso.img -boot d

Isto irá inicializar você no sistema no CD-ROM virtual, a partir daí você pode modificar seu disco como quiser.

    
por 18.08.2014 / 13:39