Як запустити завантаження з liveusb за допомогою qemu-kvm?


27

Я намагаюся отримати qemu-kvm для завантаження зі своєї живої USB-палки. Чи можливо це?

Відповіді:


23

qemu-kvm -hdb <device>, де <device>знаходиться USB-накопичувач (наприклад /dev/sdb), це слід робити (протестовано Ubuntu 12.04 на USB-накопичувачі, і він працює).

Вам знадобиться дозвіл на запис на пристрій (тобто бути rootабо змінити його дозволи).


2
Гарна відповідь. BTW, якщо вам потрібен простий інтерфейс для управління вашими VM, спробуйте virt-manager спробувати.
wazoox

2
Як натяк: я спробував VirtualBox замість kvm протестувати свою живу USB-палку, і це НЕ МНОГО швидше. Ви повинні використовувати цю команду як root, щоб створити файл vmdk, який буде використовуватися у VirtualBox:VBoxManage internalcommands createrawvmdk -filename .VirtualBox/HardDisks/usbdisk.vmdk -rawdisk /dev/sdb
Marc MAURICE

4
Тут лише невелика примітка - використовувати вузол диска / пристрою в -hdb(наприклад /dev/sdb); НЕ розділ (як в /dev/sdb4)
sdaau

Щоб уникнути попереджувального повідомлення ПОПЕРЕДЖЕННЯ: Формат зображення не був визначений для '/ dev / sdb' та пробування здогаданого сировини. Автоматичне виявлення формату небезпечно для необроблених зображень, операції запису на блоці 0 будуть обмежені. Вкажіть чітко "необроблений" формат, щоб зняти обмеження. Ви можете вказати варіанти в такому форматі: -drive file=/dev/sdb,format=raw,index=0,media=diskДивіться це запитання
Ашарк

26

qemu-kvm зник. використовуйте підказку при запуску qemu, надаючи їй шлях до кореня Linux . це означає

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

де / dev / sdb - ваш необроблений пристрій (не розділ) USB-палички, яку ви хочете завантажувати.

(однак, станом на 12/2014, для мене це було невміло. Завантажуючи результати ubuntu-gnome 14.10, врешті-решт ядра панікує на палиці, перевіреній на завантаження на металі.)

/ iaw


Дякую, знадобилося це для автоматичного завантаження збірки bin-x86_64-efi/ipxe.usbдля завантаження EFI, і воно працювало без проблем досі.
NiKiZe

2
Чи можете ви оновити відповідь? Я отримав наступне: qemu-system-x86_64: -usbdevice disk:/dev/sdb: '-usbdevice' is deprecated, please use '-device usb-...' instead
Ашарк

8

Я не знаю чому саме, але відповідь Ренана не дуже спрацювала для мене. KVM сказав мені, що не може знайти завантажувальний диск (незважаючи на те, що розділ usb позначений як такий).

Однак я знайшов інше рішення. Отримайте USB-пристрій VendorID: ProductID за допомогою lsusb. Приклад:

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

Передайте це KVM та запитайте меню завантаження:

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

Натисніть F12 для меню, виберіть usb-пристрій, воно працює. Напевно, існує спосіб командувати завантажувачем usb без необхідності викликати меню завантаження, але я не знайшов жодного в man kvm.


Що стосується мене, передача USB-накопичувача як диска hdd працює для мене правильно, але передача usb-накопичувача як USB-пристрою з меню -boot = в 1) в режимі bios дозволяє мені його вибрати, показує меню syslinux (я спалахнув archlinux iso до USB-накопичувач з dd), і він починає завантажуватися, але не вдається з очікуванням 30 секунд для пристрою / dev / диск / за міткою / ARCH_201903 ... sd 2: 0: 0: 0 [sda] Припускаючи кеш диска: запишіть через print_req_error: Помилка вводу / виводу, dev sda, сектор 0 Помилка буфера вводу / виводу на dev sda, логічний блок 0, сторінка асинхронізації, прочитана ПОМИЛКА: "/ dev / disk / by-label / ARCH_201903 'пристрій не з’явилося через 30 секунд 2) в уефі це не вдається
Ашарк

1

Якщо ви хочете використовувати зображення liveusb, а не фізичну USB-накопичувач, це можна зробити

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

Без "-boot меню = увімкнено", kvm завжди віддасть перевагу жорсткому диску, встановленому за допомогою "-drive" або "-hd [a | b | c | d]".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.