今天早上出现了奇怪的问题 - 我无法使用SSH或HTTPS从GitHub上的公共仓库克隆到我的共享VMWare文件夹。我正在使用Fedora 22,如果我在系统上的任何地方尝试此命令而不是共享文件夹,那么它可以很好地工作。
git clone https://github.com/twbs/bootstrap.git
Cloning into 'bootstrap'...
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我尝试过的步骤:
有没有人知道为什么共享文件夹可能导致这个?
答案 0 :(得分:7)
我有同样的问题。我相信这可能是因为VMWare共享文件夹文件系统不能正确支持所有文件系统操作。例如,您无法创建硬链接:
$ touch foo
$ ln foo bar
ln: bar: Operation not supported
...你无法复制符号链接:
$ touch foo
$ ln -s foo bar
$ cp -R bar baz
cp: bar: could not copy extended attributes to baz: Invalid argument
此外,一旦git clone失败,结账的文件名永远不会再次使用:
$ git clone https://github.com/twbs/bootstrap.git
Cloning into 'bootstrap'...
[...]
fatal: index-pack failed
$ touch bootstrap
touch: bootstrap: Input/output error
其他人已经注意到VMWare共享文件夹中hardlinks和git clone的问题。没有人找到解决方案。
通过将磁盘映像保存到共享文件夹,将磁盘映像挂载到guest虚拟机,然后git-cloning到挂载的文件系统中,我在使用OS X guest虚拟机时解决了这个问题。 similar technique可以在Linux中运行,但我还没有尝试过。
答案 1 :(得分:4)
VMware更改了工具包,从HGFS迁移到FUSE ,而不是在内核中。
/mnt/hgfs
下没有文件夹,共享文件夹是在名为shared_folder
的文件夹下创建的。
<强>症状强>:
错误类似于:
You cannot access ip_address\folder_name
You do not have permission to access ip_address\folder_name. Contact your network administrator to request access.
<强>原因:强>
据我所知,这就是此问题背后的原因以及与其他文件系统操作相关的其他错误。更恰当的是,
如果在共享文件夹上启用了审核对象访问GPO,并且共享文件夹位于热插拔设备上,则会出现此问题。
<强>解决方案:强>
装入共享文件夹。请参阅this
找到共享文件夹。
禁用共享文件夹上的审核文件访问权限并删除所有热插拔设备。
希望这会有所帮助。
几个月前,我的开发团队遇到了一个类似的问题,一位同事代表该组织与支持团队联系。
来自Hashicorp support
的Alvaro Aguilera 非常慷慨地指出了这个问题。最初,支持团队建议转移到Fusion 8.0.2,这也适用于想要避免麻烦的情况。
以下是支持团队在 2016年5月20日:
上发出的结论性消息感谢您与我们联系。
根据日志,似乎VM上没有HGFS模块。
此外,还存在8.1。*和转发端口的VMWare融合问题,请尝试转到Fusion 8.0.2,因为这是最后一个没有问题的已知工作。
请使用旧盒子代替最新的VMware Fusion,因为开发团队已确认预计将在 2017年第一季度解决。
感谢您的理解。
我们已移至 Fusion 8.0.0 ,此问题已解决。
答案 2 :(得分:1)
我今天找到了修复程序。不确定每个人是否也一样 - 但您需要配置VM同步文件夹以使用smb
以及mfsymlinks
config.vm.synced_folder ".", "/vagrant", type: "smb", mount_options: ['vers=3.02', 'mfsymlinks']
我现在可以在VM内正确使用Git和符号链接而不会出现问题。
答案 3 :(得分:0)
这是我的解决方案。 由于在VMware Machine中无法克隆,并且在使用其他命令时,可能会导致问题。所以我在Windows系统中git克隆,并在我的Windows系统中执行我的git作业。它对我有用。
答案 4 :(得分:0)
我这里没有相关的设置,所以我可能会出错,但是 - 你说这个问题只发生在共享文件夹上。我可能会想到的一个选择是SSH / HTTPS在这样的文件夹上使用的密钥与您自己的密钥不同。
如果是这种情况,可能的解决方案是为VMWare视为用户的任何人定义密钥。
顺便说一下,您是否尝试将存储库克隆到私人文件夹然后共享它?有趣的是它是否会以这种方式工作(这可能表明问题仅在本地创建文件夹时发生)或者在尝试进一步拉动或推送时出现类似或不同的错误(这可能表明问题出在连接本身,但不一定)。答案 5 :(得分:0)
我有同样的问题,但我找到了解决方案。我的设置是为guest虚拟机使用VMware Workstation 12.5.5和Linux内核4.4。主机运行Linux内核4.10.8。您需要在$ HOME下的Linux guest虚拟机中克隆最新的openvm-tools(当然不在HGFS安装目录下):https://github.com/vmware/open-vm-tools
按照说明从源代码编译openvm-tools。编译后,备份/ usr / bin / vmhgfs-fuse(cd / usr / bin; mv vmhgfs-fuse vmhgfs-fuse.bak)并复制 $ HOME / open-vm-tools / open-vm-tools / vmhgfs-fuse / .libs / vmhgfs-fuse to / usr / bin。
然后将$ HOME / open-vm-tools / open-vm-tools / libvmtools / .libs / libvmtools.so.0.0.0复制到/ lib64并创建一个链接:ln -s libvmtools.so.0.0 .0 libvmtools.so.0
检查可能需要的其他库。 (使用ldd / usr / bin / vmhgfs-fuse知道哪些库丢失并相应地复制)
这就是它,重新启动vmware来宾机,你将能够通过HGFS使用你的主机挂载目录来存储Git存储库,克隆,拉动,推送现在正常工作:)
答案 6 :(得分:0)
我找到了解决此问题的方法,从Windows共享一个文件夹,然后在您的linux guest虚拟机中安装了完整的samba和cif-utils 然后,您可以像这样通过主机的IP挂载共享
(将此行添加到您的fstab中)
// YOUR_HOST_IP / share / PATH_TO / GUEST_SHARE cifs用户,noperm,rw,用户名= YOURUSERNAME,密码= YOURPASSWORD 0 0
这里的关键是noperm名称
注意:出于安全性考虑,您可以将Windows密码存储在凭据文件中并在此处调用,或在Windows实例上创建仅用于共享访问的用户,然后将主要用户帐户的访问权限授予共享用户。
希望这会有所帮助。
克隆自己的心意
答案 7 :(得分:0)
Git 2.27(2020年第二季度)说明了另一种情况,即使使用CIFS network drive,克隆也可能会出现问题:
请参见commit 23eafd9的Nathan Sanders (sandersn
)(2020年4月10日)。
(由Junio C Hamano -- gitster
--在commit a41b41c中合并,2020年4月22日)
mingw
:应对 Isilon 网络文件系统签名人:内森·桑德斯
签名人:Johannes Schindelin在某些网络文件系统上(当前在Isilon中遇到,但是从理论上讲,更多的网络存储解决方案可能会导致相同的问题),当缺少所讨论的目录时,
raceproof_create_file()
失败,而出现一个ERROR_INVALID_PARAMETER
ERROR_PATH_NOT_FOUND
。由于我们极不可能会错误地产生这样的错误(我们传递的参数是相当良性的),因此可以相对确定该实例中缺少目录。因此,让我们自动翻译该错误。
此修复
git-for-windows/git
issue 1345“无法在Isilon存储上的CIFS共享上克隆存储库。错误:无法追加到'X:/git/Win32-OpenSSH/.git/logs/refs/remotes/origin/HEAD
':无效的参数”。