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发挥了功效,下面步骤之适用于Ubuntu,至于XP的,迟点再研究好了。 Windows 的方法看《Win版VirtualBox从USB设备启动方法》

步骤如下

  1. Ubuntu软件库里那个VirtualBox OSE版是不能支持USB设备的,我用的是从官方下那个,并按这个帖子搞定了启动虚拟机USB出错那个问题。
  2. 不过这里是把闪盘当成硬盘用,我想用OSE也应该行,因为支持USB是Ubuntu(当成硬盘)而不是VirtualBox,所以用OSE或许会成功,不过我懒得测试,有谁成功告诉一声。

    论坛的有人测试过,1.5.6版是不行的,第3步那个命令没有创建虚拟磁盘功能,而2.0.1后就行

  3. 当前必须属于“vboxusers”组,运行
  4. sudo usermod -G vboxusers -a `whoami`

    然后重新登录(注一)。

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

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

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

    表示创建成功了。

  9. 然后就启动VirtualBox,在需要测试的虚拟机设置里的“硬盘”一页,换成刚才那个vmdk文件,如果不是建立在“~/.VirtualBox/HardDisks/”的话要用虚拟介质管理器注册一下。
  10. 最后把硬盘设置成优先启动就搞定啦,成功启动了我闪盘里的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”组好。

该文章发布在 经验技巧,标签:。收藏该永久链接

有 4 条《VirtualBox从USB设备启动方法》的回复

  1. Sunny 说到:

    那請問如果想在Windows xp內用xVM實行USB開機運行Ubuntu是可行的嗎?

    回复回复
  2. muzuiget 说到:

    @Sunny
    是可行的,方法差不多,你可以看这里

    回复回复
  3. kee 说到:

    兄台有无试过raw disk image file 直接通过usb 在物理机器上boot?

    回复回复
  4. muzuiget 说到:

    @kee
    没,不过把镜像里的内容提取出来放到USB里理论上应该可以。

    回复回复

发表评论

您的电子邮箱不会被公开。 标记为 * 的区域必须填写

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

评论须知
  • 如果有人@你的用户名,系统会发送邮件通知你。
  • 请不要在评论正文处里留下邮箱,以防被垃圾机器人采集。
  • 有问题请留在相关话题的文章上,我都会看到的。