Bagaimana cara saya boot dari liveusb menggunakan qemu-kvm?

27

Saya mencoba untuk mendapatkan qemu-kvm untuk boot dari usb stick langsung saya. Apakah ini mungkin?

mikewilliamson
sumber

Jawaban:

23

qemu-kvm -hdb <device>, di mana <device>stik USB (misalnya /dev/sdb), harus melakukannya (diuji dengan Ubuntu 12,04 pada stik USB dan berfungsi).

Anda akan memerlukan izin tertulis untuk perangkat (yaitu menjadi rootatau mengubah izinnya).

Renan
sumber
2
Jawaban yang bagus. BTW jika Anda membutuhkan antarmuka yang mudah untuk mengelola VM Anda, cobalah virt-manager.
wazoox
2
Sama seperti sebuah petunjuk: Saya mencoba VirtualBox daripada kvm untuk menguji tongkat usb langsung saya, dan ini BANYAK lebih cepat. Anda harus menggunakan perintah ini sebagai root untuk membuat file vmdk untuk digunakan dalam VirtualBox:VBoxManage internalcommands createrawvmdk -filename .VirtualBox/HardDisks/usbdisk.vmdk -rawdisk /dev/sdb
Marc MAURICE
4
Hanya catatan kecil untuk diri sendiri di sini - gunakan node disk / perangkat di -hdb(misalnya /dev/sdb); BUKAN partisi (seperti dalam /dev/sdb4)
sdaau
Untuk menghindari pesan peringatan PERINGATAN: Format gambar tidak ditentukan untuk '/ dev / sdb' dan probing guess raw. Secara otomatis mendeteksi format berbahaya untuk gambar mentah, operasi tulis pada blok 0 akan dibatasi. Tentukan format 'mentah' secara eksplisit untuk menghapus pembatasan. Anda dapat menentukan opsi dalam format ini: -drive file=/dev/sdb,format=raw,index=0,media=diskLihat pertanyaan ini
Ashark
26

qemu-kvm telah menghilang. gunakan petunjuk di start qemu dengan memberinya path ke root linux . ini berarti

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

di mana / dev / sdb adalah perangkat mentah Anda (bukan partisi) dari stik usb yang ingin Anda boot.

(Namun, pada 12/2014, sudah tidak bagus bagi saya. mem-booting ubuntu-gnome 14.10 akhirnya menghasilkan kepanikan kernel pada stick yang diverifikasi untuk mem-boot dengan baik pada logam.)

/ iaw

ivo Welch
sumber
Terima kasih, membutuhkan ini untuk membuat boot otomatis bin-x86_64-efi/ipxe.usbuntuk boot EFI, dan sejauh ini tidak ada masalah yang berhasil.
NiKiZe
2
Bisakah Anda memperbarui jawaban Anda? Saya mendapat yang berikut: qemu-system-x86_64: -usbdevice disk:/dev/sdb: '-usbdevice' is deprecated, please use '-device usb-...' instead
Ashark
8

Saya tidak tahu persis mengapa, tetapi jawaban Renan tidak berhasil untuk saya. KVM berkata kepada saya bahwa ia tidak dapat menemukan drive yang dapat di-boot (meskipun partisi usb ditandai seperti itu).

Namun saya telah menemukan solusi lain. Dapatkan VendorID perangkat USB: ProductID dengan lsusb. Contoh:

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

Berikan itu ke KVM, dan minta menu boot:

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

Tekan F12 untuk menu, pilih perangkat usb, itu berfungsi. Mungkin ada cara untuk memerintahkan boot usb tanpa perlu memanggil menu boot, tapi saya tidak menemukan kvm di man.

dgmorales
sumber
Sedangkan bagi saya, mengoper usb stick sebagai drive hdd bekerja dengan benar untuk saya, tetapi mengoper usb stick sebagai perangkat usb dengan -boot menu = on 1) dalam mode bios memungkinkan saya untuk memilihnya, menampilkan menu syslinux (saya mem-flash archlinux iso ke usb stick dengan dd) dan mulai memuat, tetapi gagal dengan Menunggu 30 detik untuk perangkat / dev / disk / oleh-label / ARCH_201903 ... sd 2: 0: 0: 0 [sda] Dengan asumsi cache drive: tulis melalui print_req_error: Kesalahan I / O, dev sda, sektor 0 Buffer Kesalahan I / O pada dev sda, blok logis 0, halaman async baca ERROR: '/ dev / disk / oleh-label / perangkat ARCH_201903' tidak muncul setelah 30 detik 2) di uefi gagal
Ashark
1

Jika Anda ingin menggunakan gambar liveusb, alih-alih stik USB fisik, Anda dapat melakukannya dengan

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

Tanpa "-boot menu = on", kvm akan selalu lebih suka hard drive yang Anda atur dengan "-drive" atau "-hd [a | b | c | d]".

kaapstorm
sumber