9 21 2008

VirtualBox从USB设备启动方法

Published by muzuiget at 9:29 下午 under Linux

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出错那个问题。不过这里是把闪盘当成硬盘用,我想用OSE也应该行,因为支持USB是Ubuntu(当成硬盘)而不是VirtualBox,所以用OSE或许会成功,不过我懒得测试,有谁成功告诉一声。
    论坛的有人测试过,1.5.6版是不行的,第3步那个命令没有创建虚拟磁盘功能,而2.0.1后就行
  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”组好。

2 Responses to “VirtualBox从USB设备启动方法”

  1. Sunnyon 11 12 2008 at 1:09 下午

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

  2. muzuigeton 13 12 2008 at 7:24 下午

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

Trackback URI | Comments RSS

Leave a Reply