Como inicializo de um liveusb usando qemu-kvm?

27

Estou tentando obter o qemu-kvm para inicializar a partir do meu stick USB ao vivo. Isso é possível?

mikewilliamson
fonte

Respostas:

23

qemu-kvm -hdb <device>, onde <device>está o pen drive (por exemplo /dev/sdb), deve fazê-lo (testado com o Ubuntu 12.04 em um pen drive e funciona).

Você precisará de permissão de gravação no dispositivo (ou seja, seja rootou altere suas permissões).

Renan
fonte
2
Boa resposta. BTW, se você precisar de uma interface fácil para gerenciar suas VMs, experimente o virt-manager.
wazoox
2
Apenas como uma dica: tentei o VirtualBox em vez do kvm para testar meu stick USB ao vivo, e é MUITO mais rápido. Você precisa usar este comando como root para criar um arquivo vmdk a ser usado no VirtualBox:VBoxManage internalcommands createrawvmdk -filename .VirtualBox/HardDisks/usbdisk.vmdk -rawdisk /dev/sdb
Marc MAURICE
4
Apenas uma pequena nota para você mesmo aqui - use o nó do disco / dispositivo em -hdb(por exemplo /dev/sdb); NÃO a partição (como em /dev/sdb4)
sdaau
Para evitar uma mensagem de aviso AVISO: O formato da imagem não foi especificado para '/ dev / sdb' e a análise foi adivinhada. Detectar automaticamente o formato é perigoso para imagens não processadas, as operações de gravação no bloco 0 serão restritas. Especifique o formato 'bruto' explicitamente para remover as restrições. você pode especificar opções neste formato: -drive file=/dev/sdb,format=raw,index=0,media=diskVeja esta pergunta
Ashark
26

qemu-kvm desapareceu. use a dica no start qemu, fornecendo um caminho para uma raiz linux . isso significa

qemu-system-x86_64 -usb -usbdevice disk:/dev/sdb

onde / dev / sdb é o seu dispositivo bruto (não partição) do pendrive que você deseja inicializar.

(no entanto, a partir de 12/2014, isso tem sido um problema para mim. a inicialização do ubuntu-gnome 14.10 resulta eventualmente em pânico do kernel em um stick verificado para inicializar muito bem no metal.)

/ iaw

ivo Welch
fonte
Obrigado, precisava disso para inicializar automaticamente uma compilação de bin-x86_64-efi/ipxe.usbuma inicialização EFI e funcionou sem problemas até agora.
27417 NiKiZe
11
Você pode atualizar sua resposta? Eu tenho o seguinte: qemu-system-x86_64: -usbdevice disk:/dev/sdb: '-usbdevice' is deprecated, please use '-device usb-...' instead
Ashark
8

Não sei exatamente por que, mas a resposta de Renan não funcionou muito para mim. A KVM me disse que não conseguiu encontrar uma unidade inicializável (apesar da partição usb ser marcada como tal).

No entanto, eu encontrei outra solução. Obtenha o dispositivo USB VendorID: ProductID com lsusb. Exemplo:

$ lsusb
...
Bus 002 Device 007: ID 0781:5406 SanDisk Corp. Cruzer Micro U3

Passe isso para o KVM e solicite o menu de inicialização:

sudo  kvm -m 512 -smp 1 -drive file=/path/to/hardisk/file.img -usb \ 
-usbdevice host:0781:5406 -boot menu=on

Pressione F12 para o menu, escolha o dispositivo USB, ele funciona. Provavelmente existe uma maneira de comandar a inicialização por USB sem precisar chamar o menu de inicialização, mas não encontrei nenhuma no man kvm.

dgmorales
fonte
Quanto a mim, passar o pendrive USB como uma unidade de disco rígido funciona corretamente para mim, mas passar o pendrive como um dispositivo usb com -boot menu = on 1) no modo bios permite que eu escolha, mostra o menu syslinux (mostrei o archlinux iso para pendrive com dd) e começa a carregar, mas falha com Aguardando 30 segundos pelo dispositivo / dev / disk / by-label / ARCH_201903 ... sd 2: 0: 0: 0 [sda] Assumindo o cache da unidade: escreva através de print_req_error: Erro de E / S, dev sda, setor 0 Erro de E / S de buffer no dev sda, bloco lógico 0, leitura assíncrona da página ERRO: '/ dev / disk / by-label / ARCH_201903' o dispositivo não apareceu após 30 segundos 2) em uefi falha
Ashark 08/03
1

Se você quiser usar uma imagem de um liveusb, em vez de um pendrive físico, faça isso com

$ kvm -usbdevice disk:/path/to/liveusb.img -boot menu=on ...

Sem "-boot menu = on", o kvm sempre prefere o disco rígido definido com "-drive" ou "-hd [a | b | c | d]".

kaapstorm
fonte