Comment démarrer à partir d'un liveusb en utilisant qemu-kvm?

27

J'essaie d'obtenir qemu-kvm pour démarrer à partir de ma clé USB en direct. Est-ce possible?

mikewilliamson
la source

Réponses:

23

qemu-kvm -hdb <device>, où <device>est la clé USB (par exemple /dev/sdb), devrait le faire (testé avec Ubuntu 12.04 sur une clé USB et cela fonctionne).

Vous aurez besoin d'une autorisation d'écriture sur l'appareil (c'est-à-dire être rootou modifier ses autorisations).

Renan
la source
2
Bonne réponse. BTW si vous avez besoin d'une interface simple pour gérer vos machines virtuelles, essayez virt-manager.
wazoox
2
Juste comme un indice: j'ai essayé VirtualBox au lieu de kvm pour tester ma clé USB en direct, et c'est beaucoup plus rapide. Vous devez utiliser cette commande en tant que root pour créer un fichier vmdk à utiliser dans VirtualBox:VBoxManage internalcommands createrawvmdk -filename .VirtualBox/HardDisks/usbdisk.vmdk -rawdisk /dev/sdb
Marc MAURICE
4
Juste une petite note pour moi ici - utilisez le nœud disque / périphérique dans -hdb(par exemple /dev/sdb); PAS la partition (comme dans /dev/sdb4)
sdaau
Afin d'éviter un message d'avertissement AVERTISSEMENT: le format d'image n'a pas été spécifié pour «/ dev / sdb» et le sondage a deviné brut. La détection automatique du format est dangereuse pour les images brutes, les opérations d'écriture sur le bloc 0 seront limitées. Spécifiez explicitement le format «brut» pour supprimer les restrictions. vous pouvez spécifier des options dans ce format: -drive file=/dev/sdb,format=raw,index=0,media=diskVoir cette question
Ashark
26

qemu-kvm a disparu. utilisez l'astuce dans start qemu en lui donnant à la place un chemin vers une racine linux . ça signifie

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

où / dev / sdb est votre périphérique brut (pas la partition) de la clé USB que vous souhaitez démarrer.

(Cependant, à partir de 12/2014, cela a été floconneux pour moi. démarrer ubuntu-gnome 14.10 entraîne finalement une panique du noyau sur un bâton vérifié pour démarrer très bien sur le métal.)

/ iaw

ivo Welch
la source
Merci, j'en avais besoin pour démarrer automatiquement une build bin-x86_64-efi/ipxe.usbpour un démarrage EFI, et cela a fonctionné sans problème jusqu'à présent.
NiKiZe
2
Pouvez-vous mettre à jour votre réponse? J'ai obtenu ce qui suit: qemu-system-x86_64: -usbdevice disk:/dev/sdb: '-usbdevice' is deprecated, please use '-device usb-...' instead
Ashark
8

Je ne sais pas exactement pourquoi, mais la réponse de Renan n'a pas vraiment fonctionné pour moi. KVM m'a dit qu'il ne pouvait pas trouver de disque de démarrage (malgré le fait que la partition USB soit marquée comme telle).

Cependant, j'ai trouvé une autre solution. Obtenez le périphérique USB VendorID: ProductID avec lsusb. Exemple:

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

Passez cela à KVM et demandez le menu de démarrage:

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

Appuyez sur F12 pour le menu, choisissez le périphérique USB, cela fonctionne. Il y a probablement un moyen de commander le démarrage USB sans avoir besoin d'appeler le menu de démarrage, mais je n'en ai trouvé aucun dans man kvm.

dgmorales
la source
Quant à moi, passer la clé USB en tant que disque dur fonctionne correctement pour moi, mais passer la clé USB en tant que périphérique USB avec le menu -boot = sur 1) en mode bios me permet de le choisir, affiche le menu syslinux (j'ai flashé iso archlinux pour clé USB avec dd) et il démarre le chargement, mais échoue avec Attendre 30 secondes pour le périphérique / dev / disque / par étiquette / ARCH_201903 ... sd 2: 0: 0: 0 [sda] En supposant que le cache du lecteur: écrire via print_req_error: Erreur d'E / S, dev sda, secteur 0 Erreur d'E / S de tampon sur dev sda, bloc logique 0, page asynchrone lue ERREUR: '/ dev / disk / by-label / ARCH_201903' le périphérique ne s'est pas affiché après 30 secondes 2) à uefi, il échoue
Ashark
1

Si vous souhaitez utiliser une image d'un liveusb, au lieu d'une clé USB physique, vous pouvez le faire avec

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

Sans "-boot menu = on", kvm préférera toujours le disque dur que vous définissez avec "-drive" ou "-hd [a | b | c | d]".

kaapstorm
la source