canonical / lxd

Powerful system container and virtual machine manager
https://canonical.com/lxd
GNU Affero General Public License v3.0
4.31k stars 929 forks source link

LXD Requires USB Emulation Feature #12312

Open vmsman opened 11 months ago

vmsman commented 11 months ago

I am currently running LXD v5.17. Bootable image files for many "Linux Live OS" require that the OS image be booted from USB. Currently LXD Virtual Machines (VM) lack USB Emulation. The current way to attach storage is with a "disk" type:

lxc config device add vmtest install disk source=/home/scott/Desktop/working/tails.iso boot.priority=10

A USB storage emulation type is needed:

lxc config device add vmtest install usbstorage source=/home/scott/Desktop/working/tails.iso boot.priority=10

The current capability to attach an actual USB device with vendorid and productid does not handle image files which contain bootable media.

Two examples that I have attempted are booting Tails OS and booting PrimeOS.

There are numerous other examples of "Live OS". QEMU/KVM currently supports this capability with the "Disk bus type USB Option": image

tomponline commented 10 months ago

For future consideration on this issue:

USB emulation is a bit of a can of worms security wise which is why we’ve generally been avoiding fully emulated USB devices (or really any fully emulated device). I think it’d be interesting to understand exactly why it is that those particular images require being put on the USB bus. We have special flagging for anything in .iso to be attached as a cdrom drive, which tends to help with those cases so long as the file is named appropriately.

https://discuss.linuxcontainers.org/t/incus-0-1-has-been-released/18036/23