解决虚拟机 Virtualbox 中 linux 共享文件夹只读问题
转载需注明来源:http://www.cnblogs.com/yczcc/p/7906454.html
Virtualbox 虚拟机(centOS)中,执行源码编译或者其他某些操作时,可能会出现如下错误:
ln: creating symbolic link `/data/svn/project/lib/libtest.so':Read-only file system
或:
cp: cannot create symbolic link `/data/svn/project/lib/libtest.so': Protocol error
这是由于VirtualBox从安全角度出发,限制了软链接的创建,需要打开相应的Feature。
确定共享目录名称
在virtualbox创建了共享文件夹,系统会自动在/media里建立以sf_为前缀并加上共享文件夹名的挂载点,例如在虚拟机——设置——共享文件夹中,我的固定分配名称为svn,则对应虚拟机上挂载点为 /media/sf_svn 。
这个挂载点默认的权限是给virtualbox创建的用户组vboxsf的,要想查看,需要把自己的用户名加入到vboxsf组(重启后生效),或者使用root账户登录查看。
打开软链创建权限
1、关闭 VirtualBox。
2、如果VirtualBox安装目录的路径不在系统环境变量PATH中,则将VirtualBox安装目录的路径加入系统环境变量PATH中。注意:VirtualBox在安装时,一般会在环境变量中自动创建名为VBOX_MSI_INSTALL_PATH的系统变量,将此变量添加到系统环境变量PATH中即可。
3、用管理员权限打开cmd.exe
命令行窗口,执行如下命令:
VBoxManage setextradata YOURVMNAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/YOURSHAREFOLDERNAME 1
其中:YOURVMNAME修改为自己虚拟机中linux系统的名称,即VirtualBox管理器左边列表中显示的虚拟机名称。YOURSHAREFOLDERNAME 修改为自己设置的共享目录名称,即上面图中我的共享目录的名称svn,注意共享目录是没有sf_
前缀的名字。
4、“以管理者身份运行” VirtualBox 即可。