CDN Space
Learn Skills ,Record Life
CDN Space

解决虚拟机 Virtualbox 中 linux 共享文件夹只读问题(转载)

点击查看文章来源

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 。

https://images2018.cnblogs.com/blog/170307/201711/170307-20171127220110753-1238668196.png

这个挂载点默认的权限是给virtualbox创建的用户组vboxsf的,要想查看,需要把自己的用户名加入到vboxsf组(重启后生效),或者使用root账户登录查看。

加入方法备注:(此段转自https://www.cnblogs.com/linuxde/p/8719487.html)
将一个用户添加到用户组中,千万不能直接用:
usermod -G groupA
这样做会使你离开其他用户组,仅仅做为 这个用户组 groupA 的成员。
应该用 加上 -a 选项:
usermod -a -G groupA user
(FC4: usermod -G groupA,groupB,groupC user)
-a 代表 append, 也就是 将自己添加到 用户组groupA 中,而不必离开其他用户组。

查看用户所属的组使用命令:
$ groups user
或者查看文件:
$ cat /etc/group

usermod选项及含义
Options:

-c, –comment COMMENT new value of the GECOS field
-d, –home HOME_DIR new home directory for the user account
-e, –expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-f, –inactive INACTIVE set password inactive after expiration
to INACTIVE
-g, –gid GROUP force use GROUP as new primary group
-G, –groups GROUPS new list of supplementary GROUPS
-a, –append append the user to the supplemental GROUPS
mentioned by the -G option without removing
him/her from other groups
-h, –help display this help message and exit
-l, –login NEW_LOGIN new value of the login name
-L, –lock lock the user account
-m, –move-home move contents of the home directory to the new
location (use only with -d)
-o, –non-unique allow using duplicate (non-unique) UID
-p, –password PASSWORD use encrypted password for the new password
-s, –shell SHELL new login shell for the user account
-u, –uid UID new UID for the user account
-U, –unlock unlock the user account
https://images2018.cnblogs.com/blog/170307/201711/170307-20171127220717300-1791456797.png

打开软链创建权限

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 即可。

赞赏
# # #
首页      技术      解决虚拟机 Virtualbox 中 linux 共享文件夹只读问题(转载)

CDN

文章作者

发表评论

textsms
account_circle
email

CDN Space

解决虚拟机 Virtualbox 中 linux 共享文件夹只读问题(转载)
点击查看文章来源 Virtualbox 虚拟机(centOS)中,执行源码编译或者其他某些操作时,可能会出现如下错误: ln: creating symbolic link `/data/svn/project/lib/libtest.so':…
扫描二维码继续阅读
2020-03-25