Linux 创建符号链接:协议错误
我已经在我的虚拟机上创建了linux(Centos)。当我使用ssh连接到它并尝试创建符号链接(在具有完全访问权限的共享文件夹上)时: 我得到一个错误:Linux 创建符号链接:协议错误,linux,windows,virtual-machine,file-permissions,symlink,Linux,Windows,Virtual Machine,File Permissions,Symlink,我已经在我的虚拟机上创建了linux(Centos)。当我使用ssh连接到它并尝试创建符号链接(在具有完全访问权限的共享文件夹上)时: 我得到一个错误: ln: creating symbolic link `myFolder': Protocol error 有什么原因或解决办法吗?这是主机文件系统的问题。检查主机文件夹上的权限是否足够,主机文件系统是否支持符号链接 在命令提示符上单击鼠标右键并“以管理员身份运行”(或使用任何程序使这些符号链接需要以管理员身份运行)。以下是virtualbo
ln: creating symbolic link `myFolder': Protocol error
有什么原因或解决办法吗?这是主机文件系统的问题。检查主机文件夹上的权限是否足够,主机文件系统是否支持符号链接 在命令提示符上单击鼠标右键并“以管理员身份运行”(或使用任何程序使这些符号链接需要以管理员身份运行)。以下是virtualbox.org上的解决方案: (注意:在控制台中以管理权限执行“whoami/priv”) 我对这个bug做了一些Windows研究 如果您的用户是管理员类型(而不是标准 帐户),如果没有 UAC提示 如果您有一个标准用户帐户(或者如果您愿意切换 您的帐户符合标准,并创建一个单独的管理员帐户) 解决方案存在。但是,您需要管理员权限才能 完成以下几个步骤(用户不一定需要 账户)
whoami /priv
如果您看到特权secreateSymbolicClinkPrivilege已启用,则
做得很好VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1
在控制台中的C:\Program Files\VirtualBox文件夹中。别忘了
用虚拟机的名称替换虚拟机名称,并与共享虚拟机名称
共享文件夹的名称(显示在VM设置中)它应该工作得很好。据我所知,Windows VirtualBox主机不支持链接(来自) 从4.0版开始,VirtualBox共享文件夹还支持 符号链接(符号链接),在以下条件下: 主机操作系统必须支持符号链接(即Mac、Linux或 Solaris主机是必需的) 目前只有Linux和Solaris来宾添加支持符号链接 出于安全原因,不允许来宾操作系统通过创建符号链接 违约如果您相信来宾操作系统不会滥用该功能,那么 可以通过以下方式为“sharename”创建符号链接: VBoxManage setextradata“虚拟机名称” VBOxiternal2/SharedFolderEnableSymLinksCreate/sharename 1
默认情况下,VirtualBox虚拟机禁止创建符号链接。 Oracle VM VirtualBox共享文件夹在以下条件下支持符号链接:
- 主机操作系统必须支持符号链接。例如,需要Mac OS X、Linux或Oracle Solaris主机
- 目前只有Linux和Oracle Solaris来宾添加支持符号链接
- 出于安全原因,默认情况下不允许来宾操作系统创建符号链接
$VBoxManage setextradata“{VM_name}”vboxiternal2/sharedfolderEnablesymlinksCreate/{share_folder_name}1
就我而言,它看起来像:
$VBoxManage setextradata“ubuntu16”VBoxInternal2/SharedFolderEnableSymLinksCreate/shared 1
基本上,您需要再次告诉VirtualBox启用符号链接。这是完整的解决方案 把这个放在你的流浪汉档案里
config.vm.provider“virtualbox”do | v|
v、 自定义[“setextradata”,:id,“VBoxInternal2/SharedFolderEnableSymLinksCreate/Folder_Name”,“1”]
结束
我建议注释掉任何同步文件夹,并让默认值。/(在主机上)在/vagrant(在来宾上)同步。这将确保您的共享文件夹(文件夹名称)名称始终是vagrant,如本文所述。另外,您也不会遇到ssh的问题
如果重新启动后symlink协议错误再次出现或仍然存在,请运行
VBoxManage setextradata“VM_Name”vboxiternal2/SharedFolderEnableSymLinksCreate/Folder_Name 1
游荡的停顿
流浪汉
流浪汉
通常,VBoxManage位于C:\Program Files\Oracle\VirtualBox\
通过进入/漫游并运行来验证symlink的工作情况
touch test.txt&&ln-s test.txt test1.txt
PS:我在Windows Home上试过,它的安全设置访问能力有限主机系统是Windows 7。有什么解决方案可以启用它吗?糟糕的解决方案是使用mklink在windows 7中创建符号链接。示例:mklink/D myFolder path/folder/Example
协议错误消息来自于哪个API/层?您用来启动VM、VBox或vagrant的任何应用程序或。。。您必须以管理员身份运行应用程序。实际上,在windows上运行的虚拟机中,创建符号链接时出现协议错误是很常见的。以管理员身份运行shell通常可以纠正这个问题。我也遇到过类似的问题,但当您以管理员身份运行VM时,您将能够创建符号链接。有关更多信息,请看:你能解释一下你需要做什么来“正确的c”吗
VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1