Executando o QEMU com um diretório do sistema de arquivos raiz em vez de uma imagem de disco

2

Para testar o sistema de arquivos raiz eu preciso rodar o QEMU com imagem de disco criada como sistema de arquivos raiz, o QEMU aceita -kernel que pode ser usado para especificar o kernel diretamente sem implementá-lo dentro do sistema de arquivos raiz, entretanto eu preciso de recurso para o sistema de arquivos raiz para especificar o caminho do sistema de arquivos raiz extraído, em vez de criar uma imagem de disco e usá-la com as opções -hda ou -usbdisk.

é possível em tudo com o QEMU sozinho ?! Ou com ferramentas de terceiros (como o emulador de imagem de disco virtual)

Meu objetivo é testar um arquivo tar do sistema de arquivos raiz sem criar uma imagem de disco

    
por e.jahandar 21.11.2017 / 16:32

2 respostas

0

Você pode gravar seu sistema de arquivos em uma unidade USB e anexá-lo à máquina virtual QEMU.

De montar isso como seu sistema de arquivos raiz com opções de kernel no GRUB

  1. Ativar o menu de inicialização na virtualmachine
  2. Anexe a unidade externa na qual seu sistema de arquivos, incluindo o kernel, está presente.
  3. Se o seu sistema de arquivos tem kernel e grub, tudo bem. Além disso, conecte qualquer CD ao vivo do linux também com a máquina virtual. Edite a linha de comando do GRUB e use seu kernel e sistema de arquivos raiz.

Digamos que seu pendrive seja /dev/sdB (considerando que você anexou uma imagem de disco rígido também e que é /dev/sdA , de qualquer forma você pode encontrá-la) seu comando grub deve se parecer com

kernel (hd1,gpt0)/location_of-kernel root=/dev/sdB
initramfs mention_if_you_have
boot

Substitua gpt0 pela partição adequada e /dev/sdB com a letra adequada ao vivo /dev/sdb1 ou /dev/sdb (caso o USB não tenha partição)

    
por 21.11.2017 / 18:05
0

Se o seu rootfs não é muito grande, você pode usar um initd. Use a opção -initrd para qemu e forneça um arquivo cpio (compactado) com o rootfs. Portanto, se você tiver um arquivo tar, deverá descompactá-lo e criar um cpio. Você deve usar o formato -H newc para o cpio. Exemplo:

mkdir /tmp/rootfs
cd /tmp/rootfs
tar xf /path/to/rootfs.tar
find | cpio --quiet -o -H newc | bzip2 -c > /tmp/rootfs.cpio

Uma coisa boa é que você não precisa de root ou sudo para isso.

    
por 08.04.2018 / 18:11