介绍如何在VirtualBox下的Linux挂载宿主机文件夹,实现虚拟机与宿主机之间的文件共享。
环境:Oracle VM Virtualbox 4.0.10 + CentOS 6.0
1、在CentOS下安装VirtualBox Guest Addition
在当前虚拟机界面点击"设备" - "分配光驱" - "Choose a virtual CS/DVD..."
打开VirtualBox的安装文件夹,默认为"C:Program FilesOracleVirtualBox",选择"VBoxGuestAdditions.iso"进行挂载
打开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"不要勾选
3、重启操作系统
复制代码代码如下:
[root@Slyar ~]# reboot
4、挂载共享数据空间
启动系统后可以使用以下命令挂载数据空间(假设数据空间名称为slyar)到 /mnt 下,其中"-w"为可写,如果要只读可以改为"-r"
复制代码代码如下:
[root@Slyar ~]# mount.vboxsf -w slyar /mnt
5、意外情况
如果出现意外情况无法挂载,也可以直接进入以下目录使用共享空间
复制代码代码如下:
[root@Slyar ~]# cd /media
[root@Slyar media]# ls -l
总用量 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重启系统,那行错误就不见了...