你的位置: Kiyo'Space首页 虚拟机 阅读文章 欢迎留下您的足迹

VirtualBox从USB设备启动方法

[ 虚拟机 ] 分享

在VirtualBox虚拟机中按F12的启动菜单中是没有从USB启动的,一直都找不到从USB设备启动方法,也有人说VirtualBox不支持USB设备启动,那是我搜中文的结果。把闪盘装上Linux都是在Vmware下测试的,Vmware下是把闪盘当成SCSI硬盘挂载的。我想这点应该VirtualBox也行啊。

我Google一下英文“virtualbox usb boot”(中文我得把“virtualbox”、“u盘”、“usb”、“闪盘”、“优盘”、“随身碟”、“引导”、“启动”、“开机”混搭使用,而还是一大堆无关结果,所以翻译叫法还是统一点好),结果第一条就找到了,虽然没写具体怎么做,至少老外说行,有这么一行
引用:
It is not passible directly but it is possible indirectly. Configure your USB drive as a raw disk in VirtualBox (page 105 of the manual). Then the guest will see your USB drive as a IDE drive and will be able to boot on it.

VirtualBox的确不支持USB设备直接启动,但能把USB设备当成硬盘间接启动,“raw disk”,看起来原理跟Vmware一样,把它当成硬盘挂就行了。至于那个“page 105 of the manual”,我已经升级到VirtualBox 2.0.2,手册是CHM格式没有页码,还好找到了,是在“9.9. Using a raw host hard disk from a guest”这一节,讲解的非常详细。这次又是STFW和RTFM发挥了功效。

步骤如下

   1. Ubuntu软件库里那个VirtualBox OSE版是不能支持USB设备的,要用从官方下的版本,安照以下方法搞定了启动虚拟机USB出错那个问题。不过这里是把闪盘当成硬盘用,我想用OSE也应该行,因为支持USB是Ubuntu(当成硬盘)而不是VirtualBox,所以用OSE或许会成功!

增加用户组usbfs
$ sudo groupadd usbfs

查看usbfs用户组的gid
$ cat /etc/group | grep usbfs

usbfs:x:1002:

把当前用户增加到usbfs组
$ sudo gedit /etc/group

usbfs:x:1002:
修改为
usbfs:x:1002:joson

为USB设备重新设置权限编辑/etc/fstab文件,添加下面两行,注意你的gid可能不是1002
$ sudo gedit /etc/fstab
在末尾加上
# 1002 is the USB group IDI
none /proc/bus/usb usbfs devgid=1002,devmode=774 0 0

   2. 当前必须属于“vboxusers”组,运行
      代码:
      sudo usermod -G vboxusers -a `whoami`

      然后重新登录(注一)。

   3. 运行下面那个命令为闪盘添加访问权限,之前我老是提示没权限,
      代码:
      sudo chmod o+rw /dev/sdc

      我有2个硬盘,所以闪盘就是“/dev/sdc”,如果不确定的话就用“df”命令查看。因为每次拔出闪盘后,“sdc”就会消失了,插回去,又出现,所以还要重新设置权限,重新运行命令,比较常用的话就添加一个alias

   4. 然后就为闪盘建立一个虚拟硬盘镜像,其中参数“filename”后的路径就是虚拟硬盘镜像的保存位置,我这里用默认的 “~/.VirtualBox/VDI/”,手册里说路径一定要用绝对路径。创建出来vmdk文件只有几百字节而已,不需要担心空间,参数后 “rawdisk”就是你的闪盘设备路径,
      代码:
      VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/VDI/UsbDisk.vmdk -rawdisk /dev/sdc -register

      运行后出现
      代码:
      VirtualBox Command Line Management Interface Version 2.0.2
      (C) 2005-2008 Sun Microsystems, Inc.
      All rights reserved.
      RAW host disk access VMDK file /home/yourname/.VirtualBox/VDI/UsbDisk.vmdk created successfully.

      表示创建成功了。

   5. 然后就启动VirtualBox,在需要测试的虚拟机设置里的“硬盘”一页,换成刚才那个vmdk文件,如果不是建立在“~/.VirtualBox/VDI/”的话要用虚拟介质管理器注册一下。

   6. 最后把硬盘设置成优先启动就搞定啦,成功启动了我闪盘里的Grub4DOS,切换启动项VirtualBox比用Vmware还要简单,不需要在虚拟机里的BIOS切换。

我这里是整个闪盘挂载,其实也可以挂载单个或几个分区,也可以直接挂载真实硬盘上的XP,参考这帖《Boot an existing XP (Physical HD) install with VirtualBox》,也可以为建立的虚拟硬盘镜像自定义MBR,方法看手册有关章节吧。

注一:
原来这步我是这样做的,运行
代码:
sudo usermod -G disk,vboxusers -a `whoami`

然后重新登录生效,考虑到把当前用户添加到“disk”组会危险,因为“/dev/sdc”属于“disk”组,格式化“mkfs”之类命令就不用加 “sudo”运行了。所以用第3步的方法代替,临时加上读写权限给“/dev/sdc”,每次运行一次添加权限总比添加到“disk”组好。

没有评论

  • (Required)
  • (Required, will not be published)