VirtualBox 从USB设备启动的方法

红薯 发布于 2009/05/14 22:52
阅读 10K+
收藏 2

今天把Ubuntu9.04安装到了自己1G的优盘上,但是每次为了使用Ubuntu USB而切换系统的话,那是件无法忍受的麻烦事情,所以想想办法,希望能从VirtualBox中从USB引导系统。不过很遗憾,在VirtualBox 中按F12键调出的启动菜单中,除了从硬盘启动外,剩下只有“Floppy”、“CD-ROM”、“LAN”,唯独没有从USB启动。也就是 说,VirtualBox不支持USB设备直接启动。

      在查询VirtualBox手册后,找到了另外一种替换法:将USB设备虚拟成一个虚拟硬盘,那样的话,VirtualBox就可以通过这个虚拟硬盘启动了!
VirtualBox手册:VirtualBox主界面/Help/Contents,或者在打开VirtualBox后直接按F1。

关 于本文相关的更详细内容请参见VirtualBox手册:Sun VirtualBox®/Advanced topics/9.10. Using a raw host hard disk from a guest,里面有详细说明各种不同“宿主/虚拟"系统组合环境的解决方法。

一、先来说一些我自己的环境组合:
宿主系统:fedora 10.
虚拟系统:Ubuntu USB.
VirtualBox:v2.2.2
USB设备:/dev/sdb
marco.chan:该帐号属于vboxusers群组,对/dev/sdb有用r+w权限。
虚拟硬盘路径:~/.VirtualBox/HardDisks/

二、再来说几件需要注意的事:
1、你的virtualbox帐号要能读写USB设备,不然virtualbox无法添加这个虚拟硬盘。
2、确定你的USB设备是哪一个?用df或者fdisk都可以查看到。

一、查看USB设备

引用内容 引用内容
[marco.chan@fedora ~]$ sudo fdisk -l
省略以上内容...
Disk /dev/sdb: 1000 MB, 1000341504 bytes
255 heads, 63 sectors/track, 121 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0004e319
省略以下内容...



二、查看USB设备属性,以及给当前帐号添加rw权限。

引用内容 引用内容
[marco.chan@fedora ~]$ ls -l /dev/sdb    #查看/dev/sdb属性
brw-rw---- 1 root disk 8, 16 2009-05-13 14:34 /dev/sdb

 

引用内容 引用内容
[marco.chan@fedora ~]$ sudo chmod o+rw /dev/sdb    #给marco.chan这个帐号添加rw属性



三、为USB设备建立一个虚拟硬盘镜像。

引用内容 引用内容
[marco.chan@fedora ~]$ VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/HardDisks/linuxhobbyUsb.vmdk -rawdisk /dev/sdb -register
VirtualBox Command Line Management Interface Version 2.2.2
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

RAW host disk access VMDK file /home/marco.chan/.VirtualBox/HardDisks/linuxhobbyUsb.vmdk created successfully.

看 到上面的提示信息,表示虚拟硬盘镜像文件已经建好了!这是镜像连接文件而已,简单的理解就是一个ln -s文件,并不会在“~/.VirtualBox/HardDisks/“下产生实际数据,手册中有这么一句”which will not contain any actual data, as this will all be stored on the physical dis。“
~/.VirtualBox/HardDisks/linuxhobbyUsb.vmdk:虚拟硬盘镜像的保存路径,可以根据自己的实际情况变更,但是这个*.vmdk上层目录必须可以读写。
/dev/sdb:这是你的USB设备,根据实际情况而定。

确定一下是否真如上面提示的那样已经建立了。

引用内容 引用内容
[marco.chan@fedora ~]$ ls -l .VirtualBox/HardDisks/
total 5170244
-rw------- 1 marco.chan marco.chan 1171292672 2009-04-14 21:15 CentOS5.vdi
-rwxrwxrwx 1 marco.chan marco.chan  994091520 2009-03-23 12:42 disk_windows.vdi
-rw------- 1 marco.chan marco.chan 3123741184 2009-05-13 14:29 Fedora10.vdi
-rw------- 1 marco.chan marco.chan        532 2009-05-13 14:56 linuxhobbyUsb.vmdk    #就是这个东东,才532字节大小。



四、在VirtualBox中增加一个系统。
在建立虚拟硬盘的时候,选择已有的虚拟硬盘,就是刚才建立的linuxhobbyUsb.vmdk,如下图:


五、测试结果...

看到ubuntu能正常从USB引导。

注意:
每次USB设备插拔后,/dev/sdx的属性会恢复,所以需要每次执行sudo chmod o+rw /dev/sdx(x根据实际环境而定),另外可一次性解决的办法为:将当前用户添加到disk群组中,不过会增加风险,具体做法,各位依照自己的需求实际而定。
我的做法:建立一个alisa,这样方便多了!

引用内容 引用内容
[marco.chan@fedora ~]$ alias vboxusb='sudo chmod o+rw /dev/sdb'


如果你的宿主系统为windows,请参照VirtualBox手册“9.10. Using a raw host hard disk from a guest”章节。

加载中
返回顶部
顶部