Qemu-kvmをライブUSBスティックから起動しようとしています。これは可能ですか?
qemu-kvm -hdb <device>
、 どこ <device>
はUSBスティックです(例:/dev/sdb
)、それを行う必要があります(USBスティック上のUbuntu 12.04でテストされ、動作します)。
デバイスへの書き込み権限が必要です(つまり、root
になるか、その権限を変更します)。
qemu-kvmが消えました。代わりに linuxルートへのパスを指定してqemuを開始 のヒントを使用してください。これの意味は
qemu-system-x86_64 -usb -usbdevice disk:/dev/sdb
/ dev/sdbは、起動するUSBスティックのrawデバイス(パーティションではない)です。
(ただし、2014年12月の時点では、不安定な状態です。ubuntu-gnome14.10を起動すると、最終的に、スティック上でカーネルパニックが発生し、金属上で正常に起動することが確認されています。)
/ iaw
なぜなのか正確にはわかりませんが、レナンの答えは私にはうまくいきませんでした。 KVM起動可能なドライブが見つからなかったと言われました(USBパーティションがそのようにマークされているにもかかわらず)。
しかし、私は別の解決策を見つけました。 lsusbを使用してUSBデバイスVendorID:ProductIDを取得します。例:
$ 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スティックの代わりにimageのliveusbを使用したい場合は、
$ kvm -usbdevice disk:/path/to/liveusb.img -boot menu=on ...
「-boot menu = on」を指定しない場合、kvmは常に「-drive」または「-hd [a | b | c | d]」で設定したハードドライブを優先します。
私は最初に、たとえば、 virt-manager、次にvirsh設定ファイルを編集してUSBから起動します:
Vmの構成ファイルを編集します。
# virsh edit TAILS
<boot>
要素から<os>
要素を削除します。 (残りの<os>
要素はそのままにします。)ここでは<boot>
を使用できません。これは、ブート順序が手順4で指定されるためです。
ライブシステムを含むUSBデバイスのベンダーと製品IDを取得します。
# lsusb -v | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)' 2>/dev/null
これにより、次のような出力が生成されます。
Bus 002 Device 007: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive
bDeviceClass 0
bDeviceProtocol 0
iProduct 2
ベンダーIDは、最初の行の「ID」の後の最初の4桁の16進数です。この例では090c
です。製品IDは、コロンの後の最後の4桁の16進数です(ここでは1000
)。
<hostdev>
要素を<devices>
要素(すでに存在しているはずです)内に追加します。この要素の詳細な手順/例は https://libvirt.org/formatdomain.html#elementsHostDev にあります。 lsusb
は値を16進数で与えるため、何らかの理由で値を変換する必要がない限り、0x
接頭辞を使用します。<devices>
<hostdev mode='subsystem' type='usb'>
<source startupPolicy='mandatory'>
<vendor id='0x090c'/>
<product id='0x1000'/>
</source>
<boot order='1'/>
</hostdev>
</devices>