¿Cómo inicio desde un liveusb usando qemu-kvm?


Respuestas:


23

qemu-kvm -hdb <device>, donde <device>está el dispositivo USB (por ejemplo /dev/sdb), debería hacerlo (probado con Ubuntu 12.04 en un dispositivo USB y funciona).

Necesitará permiso de escritura en el dispositivo (es decir, sea rooto cambie sus permisos).


2
Buena respuesta. Por cierto, si necesita una interfaz fácil para administrar sus máquinas virtuales, pruebe virt-manager.
wazoox

2
Solo como una pista: probé VirtualBox en lugar de kvm para probar mi memoria USB en vivo, y es MUCHO más rápido. Debe usar este comando como root para crear un archivo vmdk para usar en VirtualBox:VBoxManage internalcommands createrawvmdk -filename .VirtualBox/HardDisks/usbdisk.vmdk -rawdisk /dev/sdb
Marc MAURICE

44
Solo una pequeña nota para mí mismo aquí: use el nodo de disco / dispositivo en -hdb(por ejemplo /dev/sdb); NO la partición (como en /dev/sdb4)
sdaau

Para evitar un mensaje de advertencia ADVERTENCIA: El formato de imagen no se especificó para '/ dev / sdb' y el sondeo adivinado en bruto. Detectar automáticamente el formato es peligroso para las imágenes en bruto, las operaciones de escritura en el bloque 0 estarán restringidas. Especifique el formato 'crudo' explícitamente para eliminar las restricciones. puede especificar opciones en este formato: -drive file=/dev/sdb,format=raw,index=0,media=diskVea esta pregunta
Ashark

26

qemu-kvm ha desaparecido. use la sugerencia en start qemu dándole una ruta a una raíz de Linux en su lugar. esto significa

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

donde / dev / sdb es su dispositivo sin formato (no partición) del dispositivo USB que desea arrancar.

(Sin embargo, a partir del 12/2014, ha sido escaso para mí. Arrancar ubuntu-gnome 14.10 finalmente provoca un pánico en el núcleo en un palo verificado para arrancar bien en el metal).

/ iaw


Gracias, necesitaba esto para iniciar automáticamente una compilación de bin-x86_64-efi/ipxe.usbun arranque EFI, y funcionó sin problemas hasta ahora.
NiKiZe

2
¿Puedes por favor actualizar tu respuesta? Tengo lo siguiente: qemu-system-x86_64: -usbdevice disk:/dev/sdb: '-usbdevice' is deprecated, please use '-device usb-...' instead
Ashark

8

No sé por qué exactamente, pero la respuesta de Renan no funcionó para mí. KVM me dijo que no podía encontrar una unidad de arranque (a pesar de que la partición usb estaba marcada como tal).

Sin embargo, he encontrado otra solución. Obtenga el dispositivo USB VendorID: ProductID con lsusb. Ejemplo:

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

Pase eso a KVM y solicite el menú de arranque:

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

Presione F12 para el menú, elija el dispositivo usb, funciona. Probablemente haya una manera de ordenar el arranque usb sin necesidad de llamar al menú de arranque, pero no encontré ninguno en man kvm.


En cuanto a mí, pasar el dispositivo USB como unidad de disco duro funciona correctamente para mí, pero pasar el dispositivo USB como dispositivo USB con -boot menu = on 1) en modo bios me permite elegirlo, muestra el menú syslinux (flasheé archlinux iso para memoria USB con dd) y comienza a cargarse, pero falla Esperando 30 segundos para dispositivo / dev / disk / by-label / ARCH_201903 ... sd 2: 0: 0: 0 [sda] Suponiendo caché de unidad: escriba a través de print_req_error: Error de E / S, dev sda, sector 0 Error de E / S de búfer en dev sda, bloque lógico 0, página asíncrona leída ERROR: el dispositivo '/ dev / disk / by-label / ARCH_201903' no apareció después de 30 segundos 2) en uefi falla
Ashark

1

Si desea utilizar una imagen de un liveusb, en lugar de una memoria USB física, puede hacerlo con

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

Sin "-boot menu = on", kvm siempre preferirá el disco duro que establezca con "-drive" o "-hd [a | b | c | d]".

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.