Ve fedora 33 mám virtuálku (třeba s CentOS 7, ale i jiné). Připojím USB flash disk. Ve fedoře normálně připojím a přečtu z ní data.
$ lsblk -f |grep sdb
sdb
└─sdb1 vfat FAT32 5258-0254 7.2G 3% /run/media/jmlich/5258-0254
$ sudo blkid -p /dev/sdb
/dev/sdb: PTUUID="a4e477db" PTTYPE="dos"
Ve virtuálce po připojení pomocí “Redirect USB device” se to chová tak, že lsblk -f nezobrazuje typ souborového systému. Blkid se zasekne na pár vteřin.
-bash-4.2# lsblk -f|grep sdb
sdb
└─sdb1
-bash-4.2# blkid -p /dev/sdb
error: /dev/sdb: No medium found
V logu je vidět následující:
Apr 27 13:00:46 localhost kernel: usb 1-3: new high-speed USB device number 6 using xhci_hcd
Apr 27 13:00:46 localhost kernel: usb 1-3: New USB device found, idVendor=058f, idProduct=6387
Apr 27 13:00:46 localhost kernel: usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Apr 27 13:00:46 localhost kernel: usb 1-3: Product: Mass Storage
Apr 27 13:00:46 localhost kernel: usb 1-3: Manufacturer: Generic
Apr 27 13:00:46 localhost kernel: usb 1-3: SerialNumber: 19042308004320
Apr 27 13:00:46 localhost kernel: usb-storage 1-3:1.0: USB Mass Storage device detected
Apr 27 13:00:46 localhost kernel: scsi host9: usb-storage 1-3:1.0
Apr 27 13:00:47 localhost kernel: scsi 9:0:0:0: Direct-Access Generic Flash Disk 8.07 PQ: 0 ANSI: 4
Apr 27 13:00:47 localhost kernel: sd 9:0:0:0: Attached scsi generic sg2 type 0
Apr 27 13:00:47 localhost kernel: sd 9:0:0:0: [sdb] 15482880 512-byte logical blocks: (7.92 GB/7.38 GiB)
Apr 27 13:00:47 localhost kernel: sd 9:0:0:0: [sdb] Write Protect is off
Apr 27 13:00:47 localhost kernel: sd 9:0:0:0: [sdb] Mode Sense: 23 00 00 00
Apr 27 13:00:47 localhost kernel: sd 9:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
Apr 27 13:00:47 localhost kernel: sdb: sdb1
Apr 27 13:00:47 localhost kernel: sd 9:0:0:0: [sdb] Attached SCSI removable disk
Apr 27 13:01:18 localhost kernel: usb 1-3: reset high-speed USB device number 6 using xhci_hcd
Apr 27 13:01:47 localhost systemd-udevd[1929]: worker [6574] /devices/pci0000:00/0000:00:02.2/0000:03:00.0/usb1/1-3/1-3:1.0/host9/target9:0:0/9:0:0:0/block/sdb is taking a long time
Apr 27 13:01:49 localhost kernel: usb 1-3: reset high-speed USB device number 6 using xhci_hcd
Apr 27 13:01:59 localhost kernel: usb 1-3: reset high-speed USB device number 6 using xhci_hcd
Apr 27 13:02:16 localhost kernel: usb 1-3: reset high-speed USB device number 6 using xhci_hcd
Apr 27 13:02:16 localhost kernel: usb 1-3: reset high-speed USB device number 6 using xhci_hcd
Apr 27 13:02:27 localhost kernel: usb 1-3: reset high-speed USB device number 6 using xhci_hcd
Apr 27 13:02:27 localhost kernel: sd 9:0:0:0: Device offlined - not ready after error recovery
Apr 27 13:02:27 localhost kernel: sd 9:0:0:0: [sdb] FAILED Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK
Apr 27 13:02:27 localhost kernel: sd 9:0:0:0: [sdb] CDB: Read(10) 28 00 00 00 00 80 00 00 90 00
Apr 27 13:02:27 localhost kernel: blk_update_request: I/O error, dev sdb, sector 128
Apr 27 13:02:27 localhost kernel: sd 9:0:0:0: rejecting I/O to offline device
Apr 27 13:02:27 localhost kernel: sd 9:0:0:0: killing request
Apr 27 13:02:27 localhost kernel: sd 9:0:0:0: rejecting I/O to offline device
Apr 27 13:02:27 localhost kernel: sd 9:0:0:0: rejecting I/O to offline device
Ostatní virtuálky (zkoušel jsem třeba manjaro) se chovají podobně.
Nezáleží na tom jestli je nainstalovaný SCSI řadič, bootuje se přes BIOS nebo UEFI. Naposledy jsem to nastavoval, aby fstrim zmenšil QCOW (tedy přidat SCSI řadič a přepnout disk na SCSI), ale to na první pohled nemá vliv.
Přepnutí USB2/USB3 na usb řadiči taky nemá vliv.
Na hostiteli se v logu periodicky objevuje nasledujici:
Apr 27 13:34:08 jmlich-dell kernel: usb 1-1: reset high-speed USB device number 22 using xhci_hcd
V logu libvirtu je nasledujici:
2021-04-27T11:25:34.946993Z qemu-system-x86_64: warning: no device attached to queue
2021-04-27T11:25:46.766066Z qemu-system-x86_64: usbredirparser: bulk transfer length exceeds limits 73728 > 65536
2021-04-27T11:25:46.766153Z qemu-system-x86_64: usbredirparser: error usbredirparser_send_* call invalid params, please report!!
S největší pravděpodobností je to nějaké nastavení co jsem udělal, protože mi to před tím fungovalo bez problému. Moc netuším kam bych se měl ještě podívat nebo jak změnit nastavení. Poradí někdo?