介绍如何在VirtualBox下的Linux挂载宿主机文件夹,实现虚拟机与宿主机之间的文件共享。

环境:Oracle VM Virtualbox 4.0.10 + CentOS 6.0

1、在CentOS下安装VirtualBox Guest Addition

在当前虚拟机界面点击"设备" - "分配光驱" - "Choose a virtual CS/DVD..."

打开VirtualBox的安装文件夹,默认为"C:\Program Files\Oracle\VirtualBox",选择"VBoxGuestAdditions.iso"进行挂载
VirtualBox,CentOS,文件共享

打开CentOS超级终端,输入以下命令安装VirtualBox Guest Addition
 

复制代码
代码如下:

[root@Slyar ~]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@Slyar ~]# /mnt/VBoxLinuxAdditions.run

第一条是挂载光盘到/mnt,第二条安装,等待安装完成即可。(如果你跟我一样是没有X桌面的,那么最后一条可能会Failed,没有影响)

 

2、配置数据空间

在当前虚拟机界面点击"设备" - "分配数据空间",弹出界面,添加一个临时分配(固定分配也行,没所谓)

"数据空间位置"就是你的共享文件夹,数据空间名称自己记好,随便起,"只读分配"和"Auto-mount"不要勾选
VirtualBox,CentOS,文件共享

3、重启操作系统
 

复制代码
代码如下:

[root@Slyar ~]# reboot

 


4、挂载共享数据空间

启动系统后可以使用以下命令挂载数据空间(假设数据空间名称为slyar)到 /mnt 下,其中"-w"为可写,如果要只读可以改为"-r"
 

复制代码
代码如下:

[root@Slyar ~]# mount.vboxsf -w slyar /mnt

 


5、意外情况

如果出现意外情况无法挂载,也可以直接进入以下目录使用共享空间

 

复制代码
代码如下:
</p> <p>[root@Slyar ~]# cd /media
[root@Slyar media]# ls -l</p> <p>

总用量 0
drwxrwx--- 1 root vboxsf 0  7月 15 15:13 sf_SLYAR

 

其中"sf_SLYAR"就是共享数据空间文件夹。

也可以试一下重新挂载vboxsf模块:
 

复制代码
代码如下:

[root@Slyar ~]# modprobe vboxvsf

 

PS:解决VirtualBox下CentOS启动时"MBus base address uninitialized"错误
今天在VirtualBox下启动CentOS 5.5/CentOS 5.6/CentOS 6.0时均会出现以下错误
 

复制代码
代码如下:

piix4_smbus 0000:00:07.0: SMBus base address uninitialized - upgrade BIOS or use force_addr=0xaddr

这个错误不会影响启动,但每次重启都有那么一条错误就是看着碍眼,查了一下资料发现原因:

 

CentOS在启动时要加载smbus模块组,但是这个模块组在VirtualBox中并不存在,于是就出错了。

没想到好的解决办法,直接拉黑名单算了:)

1、检查一下i2c_piix4模块是否存在(一般正常安装都是已经加载的,确认一下比较好)
 

复制代码
代码如下:

[root@localhost ~]# lsmod | grep i2c_piix4
i2c_piix4 11098 0
i2c_core 25799 1 i2c_piix4

2、编辑黑名单文件...

复制代码
代码如下:

[root@localhost ~]# vim /etc/modprobe.d/blacklist.conf

3、将下面的语句加入黑名单的最后一行,:wq保存退出

复制代码
代码如下:

blacklist i2c_piix4

4、reboot重启系统,那行错误就不见了...