在我的设置(具有多个来宾计算机的 Ubuntu 16.04.3 主机)上,我可以成功地将“数据”CDROM 传递到 Windows 10 来宾 VM,但我无法让音频 CD 在来宾上可见。
Windows 来宾报告以下错误(对话框):
"Windows can't access this disc. The disc might be corrupt.
Make sure that the disc uses a format that Windows recognizes.
If the disc is unformatted, you need to format it before using it."
在主机的系统日志中,我看到这些消息重复出现:
Dec 7 19:02:32 lwobker-vms kernel: [ 582.640360] sr 6:0:0:0: [sr0] tag#12 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Dec 7 19:02:32 lwobker-vms kernel: [ 582.640362] sr 6:0:0:0: [sr0] tag#12 Sense Key : Illegal Request [current]
Dec 7 19:02:32 lwobker-vms kernel: [ 582.640364] sr 6:0:0:0: [sr0] tag#12 Add. Sense: Illegal mode for this track
Dec 7 19:02:32 lwobker-vms kernel: [ 582.640367] sr 6:0:0:0: [sr0] tag#12 CDB: Read(10) 28 00 00 00 00 10 00 00 01 00
Dec 7 19:02:32 lwobker-vms kernel: [ 582.640369] blk_update_request: I/O error, dev sr0, sector 64
Dec 7 19:02:32 lwobker-vms kernel: [ 582.640374] Buffer I/O error on dev sr0, logical block 16, async page read
Dec 7 19:02:32 lwobker-vms kernel: [ 582.656345] sr 6:0:0:0: [sr0] tag#14 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Dec 7 19:02:32 lwobker-vms kernel: [ 582.656348] sr 6:0:0:0: [sr0] tag#14 Sense Key : Illegal Request [current]
Dec 7 19:02:32 lwobker-vms kernel: [ 582.656350] sr 6:0:0:0: [sr0] tag#14 Add. Sense: Illegal mode for this track
Dec 7 19:02:32 lwobker-vms kernel: [ 582.656353] sr 6:0:0:0: [sr0] tag#14 CDB: Read(10) 28 00 00 00 00 11 00 00 01 00
Dec 7 19:02:32 lwobker-vms kernel: [ 582.656355] blk_update_request: I/O error, dev sr0, sector 68
Dec 7 19:02:32 lwobker-vms kernel: [ 582.656359] Buffer I/O error on dev sr0, logical block 17, async page read
主机、Linux 客户机和 Windows 客户机都可以成功地查看/读取常规“数据”CDROM。
答案1
这可能永远不会按照您希望的方式工作。
首先,访问一个声音的CD 是一种古老的遗留协议,与访问带有数据的光盘完全不同。 KVM 没有提供虚拟化的方法声音的光盘。为此,您必须将整个 CD-ROM 设备传递给客户机。您可以在 virt-manager 中通过添加存储、提供 CD-ROM 驱动器专用设备并将其设备类型设置为 LUN Passthrough 来完成此操作。
如果您的客户机还没有虚拟 SCSI 控制器,您需要添加一个,然后添加其关联的 Windows 驱动程序。建议使用 VirtIO SCSI 控制器,因为它是半虚拟化的并且可以提供更好的性能。
如果您打算播放音频 CD,请注意模拟音频输出几乎总是硬连线到模拟声卡(当它没有因为没有人再播放音频 CD 而被断开连接时)。这意味着声音根本不会在客人中发出,而是在主机中发出。一个音频播放器撕裂数字音频 CD 数据,然后播放生成的数字数据将能够在来宾中播放音频,尽管我不知道有任何用于 Windows 的此类播放器。但如果您只是将数据翻录为 FLAC 或 MP3 文件,那么这应该没问题。