环境

基于VBox 的 vagrant (centos版本)开发环境。

问题

Virtualbox 虚拟机(centOS)中,在进行go程序编译的时候,需要设置一个链接符,然后得到了如下的错误:

ln: failed to create symbolic link ‘/home/gopath/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes’: Protocol error

查证

经过排查,发现这是因为这 VirtualBox 从安全角度出发,限制了共享文件夹软链接的创建,从而导致了该问题的发生。因此我们解决问题的入口就要确定在如何解决共享文件夹可创建软链接权限的问题。

解决

  1. 关闭VBox
  2. 将VBox的安装目录添加到环境变量 PATH 中,通常VirtualBox在安装时,一般会在环境变量中自动创建名为VBOX_MSI_INSTALL_PATH的系统变量,将此变量添加到系统环境变量PATH中即可。

    在这里,我直接往PATH目录中添加安装目录了:

  3. 使用管理员权限打开cmd程序:

    右键选择管理员权限即可。
    运行如下命令:

    VBoxManage setextradata YOURVMNAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/YOURSHAREFOLDERNAME 

    PS:YOURVMNAME修改为自己虚拟机中linux系统的名称,即VirtualBox管理器左边列表中显示的虚拟机名称。YOURSHAREFOLDERNAME 修改为自己设置的共享目录名称 master_default_1517988860839_41143,即下图中我的共享目录的名称 home_gopath_src_。

    所以正式命令如下:

    VBoxManage setextradata master_default_1517988860839_41143 VBoxInternal2/SharedFoldersEnableSymlinksCreate/home_gopath_src_ 

    执行验证就可以看到我们的设置的key/value 值信息:

    C:\Windows\system32>VBoxManage getextradata master_default_1517988860839_41143 enumerate
    Key: GUI/LastCloseAction, Value: PowerOff
    Key: GUI/LastNormalWindowPosition, Value: ,,,
    Key: GUI/RestrictedRuntimeDevicesMenuActions, Value: HardDrives
    Key: GUI/RestrictedRuntimeMachineMenuActions, Value: SaveState,PowerOff
    Key: GUI/StatusBar/IndicatorOrder, Value: HardDisks,OpticalDisks,FloppyDisks,Network,USB,SharedFolders,Display,VideoCapture,Features,Mouse,Keyboard
    Key: VBoxInternal2/SharedFoldersEnableSymlinksCreate/home_gopath_src_, Value:
    Key: VBoxInternal2/SharedFoldersEnableSymlinksCreate/usr_share_nginx_html_, Value:
    Key: VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant, Value:

    说明已经设置成功了。

  4. 使用 vagrant up 启动,继续编译
    发现,编译过程依然报最初的错误,想到我们之前使用管理员权限执行的命令,因此,我们执行vagrant命令的时候也尝试使用管理员权限执行(使用管理员权限打开 cmd 即可,其余操作不变),OK,没有问题,编译成功。

    PS.在这种情况下,要在 VBox 中查看虚拟机的运行情况,也需要使用使用管理员权限打开虚拟机,不然看到运行情况是停止状态。

以上

vbox在共享文件夹设置链接报错Protocol error问题的更多相关文章

  1. Vbox中Ubuntu的安装和共享文件夹设置

    1. 选择版本 1.1 Ubuntu桌面版与服务器版的区别 桌面版与服务器版,只要发布版本号一致,这两者从核心来说也就是相同的,唯一的差别在于它们的预期用途.桌面版面向个人电脑使用者,可以进行文字处理 ...

  2. VS Code远程链接报错Could not establish connection to “hz.matpool.com”

    VS Code远程链接报错Could not establish connection to "hz-t2.matpool.com" 输出的部分内容 安装Git git for w ...

  3. win7/8下VirtualBox虚拟Ubuntu共享文件夹设置

    实验环境: 主机:win8.1 虚拟机软件:VirtualBox4.3 虚拟的主机:centos6.5 final 亲测可用! 1. 安装增强功能包(VBoxGuestAdditions)  打开虚拟 ...

  4. win7/8下VirtualBox虚拟共享文件夹设置

    1. 安装增强功能包(VBoxGuestAdditions)   打开虚拟机,运行ubuntu,在菜单栏选择"设备->安装增强功能",根据提示即可安装成功(成功后也可 以实现 ...

  5. CentOS7 VMware-Tools安装与共享文件夹设置

    一. VMware-Tools安装 1.加载VMware Tools的光驱:点击"虚拟机"->"安装VMware Tools".这里,由于我已经安装了,所 ...

  6. 从0开始学习Hadoop(2) 环境准备-Win7主机与Ubuntu虚拟机共享文件夹设置

    主机要跟虚拟机共享文件夹设置有很多种办法,这里提供一种本地用户的方式 1. 新增一个本地用户,密码等其他设置如下 2.选择文件目录,这是共享属性 Ubuntu端设置: 文件夹->连接到网络-&g ...

  7. Mysql远程连接报错:SQL Error (1130): Host '192.168.61.128' is not allowed to connect to this MySQL server

    Mysql远程连接报错:SQL Error (1130): Host '192.168.0.18' is not allowed to connect to this MySQL server     ...

  8. virtualbox centos安装增强工具和Centos与VirtualBox共享文件夹设置

    VirtualBox 大家都习惯性把它简称为 Vbox ,比 VM 的体积小.开源.速 度快.不过在使用 VirtualBox  在虚拟机中安装 CentOS 之后,不能直接运行安装好 Virtual ...

  9. Oracle VM VirtualBox 共享文件夹设置

    在Windows平台下,这货完全没有VMware好用,但在Linux平台就很好用. 学校机房的电脑打开虚拟机就不能插优盘,一插优盘就卡死,所以,只好用共享文件夹了. 1.在虚拟机外部新建一个文件夹 假 ...

随机推荐

  1. Spring boot 中Spring data JPA的应用(一)

    最近一直在研究Spring Boot,今天为大家介绍下Spring Data JPA在Spring Boot中的应用,如有错误,欢迎大家指正. 先解释下什么是JPA JPA就是一个基于O/R映射的标准 ...

  2. python偏函数使用

    偏函数依托于python functools模块.

  3. CodeForces 567F DP Mausoleum

    本着只贴代码不写分析的题解是在耍流氓的原则,还是决定写点分析. 思路很清晰,参考的官方题解,一下文字仅对题解做一个简要翻译. 题意: 有1~n这n个数,每个数用两次.构成一个长为2n的序列,而且要求序 ...

  4. Diango 一——URL

    内容概要 1.web框架初识 2.MTV模式 3.Django创建流程和命令行工具 4.配置文件  settings 5.视图函数  views 6.路由系统  URL 7.模板系统  templat ...

  5. 如何从Maven中央存储库下载?

    根据 Apache Maven说明: 下载时由项目的 pom.xml 文件的依赖来决定,目前不在本地存储库触发(当中央存储库包含了一个更新).默认情况下,Maven将从中央存储库下载. 在Maven中 ...

  6. [POJ 1002] 487-3279 C++解题报告

        487-3279 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 228365   Accepted: 39826 D ...

  7. list里内置程序用法

    列表是我们编程工作中经常都会遇到的数据类型.以下是列表里面的一些常用操作,主要分为:增! 删! 改! 查! first 查: 1.索引(下标),其中有切片操作,但要注意下标都是从零开始: 2.查元素出 ...

  8. 面向对象——property

    1.property特性 property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 将一个类的函数定义成特性以后,对象再去使用的时候obj.name,根本无法察觉到name是执行了一 ...

  9. acm之图论基础

    1.图的定义 图 是一个顶点集合V和一个顶点间关系的集合E组成,记G=(V,E) V:顶点的有限非空集合. E:顶点间关系的有限集合(边集). 存在一个结点v,可能含有多个前驱节点和后继结点. 1顶点 ...

  10. 【Luogu】P3950部落冲突(树链剖分)

    题目链接 状态奇差无比,sbt都能错一遍. 不动笔光想没有想到怎么做,画图之后发现一个很明显的性质…… 那就是两个开战的部落,其中一个是另一个的父亲. 所以在儿子那里加个权值.查询的时候树链剖分查询链 ...