VirtualBox 共享文件夹设置及开机自动挂载详细教程
鉴于支付宝等服务无视我们Linux用户的存在,没办法,那只好在Linux上用VirtualBox 虚拟一个Windows系统了。系统装好了,在日常使用过程中,往往要从VirtualBox的客户机(guest system)中使用主机(host system)里面的文件,那么通过共享文件夹的方式可以达成此目的。
我在这里写了个图文教程,说明设置过程,希望对大家有所帮助。(注:我的主机是Ubuntu Linux 8.04,客户机是Windows XP,VirtualBox版本2.2.4【下载】)
在VirtualBox中安装好Windows XP后,先要安装工具包VBoxGuestAdditions.iso,这个映像文件位于VirtualBox的安装目录下,我的是在/usr/share/virtualbox目录下。在VirtualBox控制面板中点击"设置",接着选"光驱",加载映像。启动虚拟机进入XP后,安装辅助工具包。
接下来就是设置共享目录了。在VirtualBox先选择你的虚拟系统,接着"设置",选"数据空间",点击那个加号按钮,如下图:
出现添加数据空间的窗口,在"数据空间位置"下拉框中点击"其它",选择你要共享的文件夹,"数据空间名称"中填你自己起的名字,这里我填的是tmp,只读选项根据自身情况选择,配置好后,如下图:
接着启动进入客户机Windows XP,打开"我的电脑",依次点击菜单栏"工具"-"映射网络驱动器",驱动器盘符自选,文件夹填"\\vboxsvr\tmp",tmp是我之前设置的"数据空间名称",把tmp改成你刚才设置的"数据空间名称"即可,如下图:
确定后,在"网络驱动器"那里就可以看到共享文件夹的盘标了,如下图:
好了,现在双击"网络驱动器"中的那个图标,即可读取、修改linux主机中的文件了
遇到的问题:
直接在XP共享文件夹中使用应用程序打开文件,修改后不能直接保存,如用Photoshop打开某图片并修改后,ctrl+s不能保存,提示该文件已经被锁定。
解决办法:
把共享文件夹中的文件复制到Windows XP的本地磁盘中,修改完成后,再复制回共享文件夹。
另一篇:如何使用VirtualBox的共享文件夹
(Windows XP SP2作host,Red Hat 9.0为guest)
在Windows上的VirtualBox中装好Redhat9虚拟机之后,box就想让两个系统交换文件。交换文件有多种方法,其中最简单的一种是使用共享文件夹。
首先,在Windows上运行VirtualBox。如图,选择“Red Hat 9.0”,再选“共享文件夹”。
点击“共享文件夹”,会弹出“Red Hat 9.0设置”对话框。此时可以添加一个新的共享文件夹。box在E盘有一个名为sharing的目录,就用它了。注意,图中的文件夹名称 “sharing”又称为共享名称(sharename)。在Redhat9挂载共享文件夹的时候会用到它。
确定之后,可以看到共享文件夹的数目变成了1。
主人准备好了,客人Redhat9要享受“共享文件夹”先得安装辅助工具包。这个辅助工具包是一个名为VBoxGuestAdditions.iso的映像文件,位于VirtualBox的安装目录下。点击“光驱”,加载映像。
启动虚拟机,安装辅助工具包。由于box安装的虚拟机没有图形界面,所以安装辅助工具包的时候带了vfs-module参数。
- mount /dev/cdrom 挂载光驱
- cd /mnt/cdrom 进入光盘
- sh ./VBoxLinuxAdditions.run vfs-module 这里没有完全安装
- reboot 安装成功后需要重启系统
重启之后,Redhat9就可以访问Windows提供的共享文件夹了。
- mkdir /mnt/share 新建挂载点(mountpoint)- 注:这个挂载点也可放在 /home/*** 目录下
- mount -t vboxsf sharing /mnt/share 挂载共享文件夹
- cd /mnt/share 进入共享文件夹
- ls 看看有什么
OK,大功告成。
注意:
1.若想删除挂载,可执行命令
umount -f /mnt/share
2.若想开机自动挂载,可以在 /etc/fstab 文件末添加一项
sharing /mnt/share vboxsf defaults 0 0
或
sharing /mnt/share vboxsf rw,gid=100,uid=1000,auto 0 0
3.为了方便,可以在桌面上新建一个文件,内容为:
#!/bin/sh sudo mount -t vboxsf sharing /mnt/share
实战经验:
以上资料是从网上摘录的,对于“开机自动挂载”模块,我试了好多遍都以失败告终,大部分网络资料都是说在 /etc/fstab 文件中追加 VirtualBox虚拟机文件夹共享挂载命令 “ sharing /mnt/share vboxsf defaults 0 0 ”,其实是错误的,因为系统调用fstab的时候,Virtualbox的共享目录的模块还没有加载,所以每次加载都会失败,最终的解决方案如下:
在文件 /etc/rc.local 中(用root用户)追加如下命令
mount -t vboxsf sharing /mnt/share
最后重启系统,大功告成!!!
另外,在 VirtualBox 4.x 版本中,已有一个“自动挂载”功能,如下图所示:
再使用命令 mount ,得如下挂载信息:
[jianbao@localhost ~]$ mount /dev/sda1 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") /dev/sda2 on /home type ext3 (rw) sharing on /mnt/share type vboxsf (uid=1000,gid=100,rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) htdocs on /media/sf_htdocs type vboxsf (gid=501,rw) sharing on /media/sf_sharing type vboxsf (gid=501,rw)
它自动把这些共享文件夹挂载到 /media/ ,目录下了,我想要说的是,这个挂载目录不是我想要的,
所以我没采用VirtualBox的自动挂载功能(因为挂载目录自己不可控)。