ubuntu kvm+qemu 加载USB

本文介绍了如何在KVM虚拟环境中通过QEMU支持并操作USB设备。包括获取USB设备信息的方法、解决常见错误以及如何在启动时及运行时添加USB设备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先参考了:http://forum.ubuntu.org.cn/viewtopic.php?f=65&t=130210&sid=592708d954990bdd11e60bb7d115ed3a

5. USB设备 
KVM是通过qemu来支持USB设备的,可以在启动的时候就指定需要连接的USB设备,也可以系统启动后动态的添加删除.通过qemu的help可知,使用qemu的usb_add host:xxx:xxx来添加usb设备,那么如何知道对应的host:xxx:xxx呢,有2种方法: 
1)在host主机ubuntu中执行lsusb得到这些信息 
比如在我机器上ipod的信息如下: 
Bus 006 Device 002: ID 05ac:1204 Apple Computer, Inc. iPod [Photo] 
Bus 006 Device 001: ID 1d6b:0002 
Bus 001 Device 001: ID 1d6b:0002 
.... 
05ac:1204就是我们需要的了。 
2)进入虚拟机后,通过ctrl+alt+2调出qemu控制台,输入info usb来列出相关的信息,在我的机器上
Device 4.2, speed 12 Mb/s 
Class e0: USB device 044e:300d, UGX 
Device 2.11, speed 480 Mb/s 
Class 00: USB device 05ac:1204, iPod 
... 
很有可能你在执行上述命令的时候会遇到这样的错误: 
Could not open /dev/bus/usb/devices 
可以参考:https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/156085去解决,主要就是把 
/etc/init.d/mountdevsubfs.sh脚本中的以下几行打开(默认被注释掉了) 
#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb
 
然后手工执行: 
$ sudo /etc/init.d/mountdevsubfs.sh start 
或者重启机器就ok了。 
取得了上述USB设备的信息后,可以在kvm启动的时候就连接指定的USB设备,通过启动参数-usbdevice host:xxx:xxx 来添加相应设备。也可以在kvm的客户系统启动后添加,在客户系统中按ctrl+alt+2(ctrl+alt+1回到客户系统)调出qemu控制台,通过usb_add host:xxx:xxx来添加设备,通过info usb可以查看已经添加的usb设备信息,通过usb_del来删除连接的usb设备。 

 

 

我在本机测试后lsusb:

 

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub

Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub

Bus 001 Device 003: ID 0402:7675 ALi Corp. 

Bus 002 Device 003: ID 04f3:0210 Elan Microelectronics Corp. AM-400 Hama Optical Mouse

Bus 001 Device 008: ID ffee:0100 

最后的ffee:0100就是我的U盘!

 

用qemu-system-x86_64命令时,通过man,查到了-usbdevice host:xxx:xxx参数

启动虚拟机时可以用:

sudo qemu-system-x86_64 -hda kvm/winxp.img -m 1024 -usbdevice tablet -soundhw all -usbdevice host:ffee:0100

### 如何在 Windows 上使用 QEMU 安装和配置 Ubuntu 虚拟机 #### 准备工作 为了确保能够在 Windows 平台上顺利运行 QEMU 来安装并配置 Ubuntu 虚拟机,首先要确认主机环境满足基本条件。虽然提供的参考资料主要针对 Linux 系统中的操作[^1],但在 Windows 下同样适用类似的准备工作。 对于 Windows 用户来说,在开始之前应当检查计算机是否启用了硬件辅助虚拟化技术(Intel VT-x 或 AMD-V)。可以通过进入 BIOS 设置来开启此功能。另外,也可以通过命令提示符执行如下指令初步判断是否存在该技术支持: ```powershell wmic cpu get vmx /value ``` 当返回值为 `TRUE` 表明当前 CPU 支持硬件加速特性[^4]。 #### 安装 QEMU 和相关组件 尽管大部分资料集中于描述基于 Debian 类发行版下的软件包管理器进行安装的方式[^3],然而在 Windows 中获取 QEMU 的方法略有不同。推荐访问官方站点下载适用于 Windows 版本的应用程序,并按照指引完成整个安装流程。此外,还需要额外安装一些必要的库文件以及工具集以便更好地管理和控制虚拟设备。 #### 创建磁盘镜像 创建一个新的虚拟硬盘用于存储即将安装的操作系统数据。这一步骤通常涉及指定目标路径、大小以及其他参数选项。下面给出了一条简单的命令行语句作为示范用途: ```bash qemu-f qcow2 ubuntu.qcow2 20G ``` 上述代码片段指示 QEMU 构建一个名为 "ubuntu.qcow2" 的动态扩展型 QCOW2 文件格式的虚拟磁盘,初始容量设定为 20GB 大小[^5]。 #### 启动虚拟机并加载 ISO 镜像 准备好之后就可以尝试启动新建立好的 VM 实例了。这里假设已经拥有了最新版本的 Ubuntu Server LTS 发布映像(.iso),将其放置到易于访问的位置即可继续下一步动作。以下是完整的调用样例供参考: ```bash qemu-system-x86_64.exe \ -enable-kvm \ -m 4G \ -smp cores=2,threads=2 \ -hda ubuntu.qcow2 \ -cdrom path\to\ubuntu-server.iso \ -boot d \ -net nic,model=virtio \ -net user \ -vga std \ -usbdevice tablet ``` 这段脚本定义了一系列关键属性,包括但不限于启用 KVM 加速、分配内存资源、CPU 数量划分、挂载先前制作完毕的磁盘镜像连同实际物理光驱内的 LiveCD 映射位置等重要细节。 #### 进入图形界面或终端模式完成安装过程 一旦成功引导至 GRUB 引导菜单,则可以选择直接跳转到 GUI 安装向导页面或是仅限字符级别的 TUI 文字交互方式来进行后续步骤直至结束整个部署环节。期间可能涉及到分区规划、网络连接测试等一系列常规性的设置项目[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值