原创 如何使Boxes里的Win虚拟机识别U盘

2017-7-13 19:08 1596 15 15 分类: 软件与OS

Boxes里的虚拟机能够方便的识别各种USB设备,比如USB转串口、STM32仿真器等等,只需要在Boxes的Properties里,选择对应的Device即可。但是U盘就没有那么容易识别了,Win虚拟机会提示无法安装驱动程序。


由于Libvirt只能识别2.0以下的USB设备,所以还需要确认协议版本:

==> # cat /sys/kernel/debug/usb/devices | grep 0781 -B 1

D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1

P: Vendor=0781 ProdID=5567 Rev= 1.27


再查看libvirt的配置文件:

$ cd ~

$ find . -name '*.xml' | grep 'libvirt'

$ cat ./.config/libvirt/qemu/boxes-unknown.xml


这个网页是Libvirt的官方主页,里面有关于XML文件,以及Vrish命令的说明:

https://libvirt.org/docs.html

了解Libvire和Virsh命令之后,就可以进行以下操作了:



  1. 保证Linux主机上U盘及其文件系统的正确加载:

    如果U盘的设备文件是/dev/sdb,那么要保证/dev/sdb1文件的存在。因为前者是设备,后者是分区。没有分区文件的话,虚拟机会要求格式化U盘,原有的文件会丢掉。


  2. 增加设备文件的权限,以及更改设备文件的所有者(这两步最好都执行):

    ==> # chown xxx /dev/sdb

    ==> # chgrp xxx /dev/sdb


    ==> # chown 777 /dev/sdb*


  3. 执行virsh命令,进入Virsh环境:

    $ virsh


  4. 在Virsh环境下,执行list命令,找到对应虚拟机的domain:

    virsh # list


  5. 查看U盘设备的XML文件:

    virsh # attach-disk 2 /dev/sdb sdb --targetbus usb --print-xml








  6. 加载U盘设备:

    virsh # attach-disk 2 /dev/sdb sdb --targetbus usb

    Disk attached successfully



此时在虚拟机里面,就能看到新加入的U盘了,此时可以对它进行读写操作。操作结束之后,需要移除设备(在虚拟机先弹出):

virsh # detach-disk 2 sdb

Disk detached successfully


如果不执行detach-disk操作,可能导致虚拟机无法启动!(可以伪造设备文件再删除^_^)

在Linux主机里重新加载设备,就能看到Windows虚拟机里修改的文件。


文章评论0条评论)

登录后参与讨论
相关推荐阅读
DiracFatCat 2018-09-05 12:14
【博客大赛】卡尔曼滤波学习笔记(11)从位置估计速度
卡尔曼滤波器,不仅仅是一个低通滤波器,否则也不会持续发展50年。 示例:桑先生需要测试高速列车的性能。测试的目的是判断列车在直线上能否保持80m/s的速度。速度和位置每0.1秒测量一次,但是由于...
DiracFatCat 2018-08-31 19:32
【博客大赛】卡尔曼滤波学习笔记(10)一个简单的示例
《Kalman Filtering: Theory and Practice Using MATLAB》第三章,看不懂,暂时略过。《Kalman Filtering: Theory and Pract...
DiracFatCat 2018-07-19 15:09
对sed命令的练习
sed是流编辑器。它每次处理一个输入,因此很有效率。官方手册:https://www.gnu.org/software/sed/manual/sed.html学习Linux命令,当然要阅读官方手册,所...
DiracFatCat 2018-06-19 15:10
【博客大赛】卡尔曼滤波学习笔记(八)可观测性和可控制性 ...
可观测性是指,在给定模型的情况下,动力学系统的状态是否由它的输入输出唯一确定。可观测性是系统模型的特征。如果传感器矩阵H是可逆的,则本系统可观测,因为有:如果传感器矩阵H某些时候是不可逆的,则本系统仍...
DiracFatCat 2018-06-19 10:56
【博客大赛】卡尔曼滤波学习笔记(七)Z变换
如果我们仅仅对离散线性系统感兴趣,那么就使用下面这个表达式:如果u是常量,那么可以写成:为了简化表达式,我们可以将上面写成:离散线性时不变系统的Φ求解,可以使用Z变换。(* 由于本人已经忘记了Z变换的...
DiracFatCat 2018-06-19 10:54
【博客大赛】卡尔曼滤波学习笔记(六)拉普拉斯变换
对于线性时变/时不变系统,求解Φ(t)有多种方式,拉普拉斯变换是其中一种。(* 由于本人已经忘记了拉普拉斯变换的内容,因此本节待续。)...
我要评论
0
15
1
2
3
4
5
6
7
8
9
0
关闭 站长推荐上一条 /3 下一条