我正在尝试使用路径将文件从 WSL2 Ubuntu 18.04 复制到 Windows v21H1,\\wsl$\Ubuntu-18-04
以便我可以为正在处理的 Yocto 项目创建启动盘,并且可以在资源管理器中查看、访问和导航到 WSL 文件。我可以毫无问题地复制文件,但是当尝试将它们粘贴到 Windows 目录中时,我得到:
Error 0x80070781: The name of the file cannot be resolved by the system.
- 我搜索了很多,但只找到了从 Windows 到 WSL 的错误示例
- 我已经重新安装了 Windows 和 WSL,但仍然出现同样的错误
- 我可以使用该过程将文件从 WSL 复制并粘贴到 WSL 内的 Windows 目录中
mnt
,但文件似乎已损坏 - 我已经全新安装了 Windows 10,并且还升级到了 Windows 11
- 我在 Windows 资源管理器中尝试了完全相同的复制和粘贴过程,但这次收到以下错误消息:
Error 0x80004005: Unspecified error''
- 我也尝试在 WSL 中使用 mv 和 cp,但出现以下错误:
mv: preserving times for '/mnt/c/Users/olive/Documents/b2qt-embedded-qt5-image-imx8mm-var-dart.wic': Operation not permitted
- 我可以毫无问题地将 WSL 中相邻目录中的其他文件复制并粘贴到 Windows 中。这似乎与这些 Yocto 映像文件有关。这一定有什么关系!!!!但是,在 WSL 支持可移动 USB SD 卡读卡器(或 USB 设备)之前,我需要将这些文件复制到 Windows 才能创建 SD 启动盘。
- 我在电脑上设置了 Google Drive(设置了两个,一个用于个人帐户,另一个用于企业)。是否有任何变化可能会导致问题?Google Drive 文件夹显示为已安装的驱动器。
- 我已经检查了文件权限并且它们都是读/写/可执行。
- 已在 WSL git 线程上提出此问题https://github.com/microsoft/WSL/issues/7683
已尝试过的建议解决方案(非常感谢所有建议):
审查以前帖子的建议解决方案有助于弄清楚它应该如何运作(我已经学会了如何使用 WSL 的 Explorer)但是有些东西阻止我将某些文件复制到 Windows 文件夹,并且建议的帖子中没有解决这个问题。
我尝试创建具有相关内容的 WLS.conf 文件,但问题并未得到解决。
据我所知,没有任何文件或文件夹是连接点。
我清除了临时文件夹中的所有内容(无法删除正在使用的内容),但这仍然无法解决问题。临时文件夹也没有压缩。
解决方案!!!:我还没有解决这个问题,但我找到了一个解决方法。如前所述,我最终尝试使用 USBc 外部读卡器创建启动盘。我在 win32 和 rufus 上试过这个,但没有成功。他们不允许我从 WSL 中选择文件,而且如你所知,我无法复制文件并将其放入 windows 目录中。我最近遇到了 Etcher。它很管用!!!我仍然不知道为什么我无法复制和粘贴文件,但我有一个解决方法可以达到我想要的目的。
感谢大家的帮助。
答案1
有几件事情需要尝试,但不适合评论:
处理 Windows 文件系统时,WSL 权限错误有时可以通过
metadata
向挂载添加选项来解决。为此,请/etc/wsl.conf
使用以下命令创建(通过 sudo):[automount] options = "metadata,umask=22,fmask=11"
该
metadata
选项允许 WSL 设置(或至少“假装”设置)Windows 文件的权限。设置umask/fmask
WSL 将看到的 Windows 文件系统上的文件/目录的默认权限。每这个 Github 问题,如果 Windows 连接点正在运行,则会导致错误。该特定线程是关于安装 WSL 的问题,其中
lxss
文件夹是连接点。还有一条评论来自遇到 Windows Media Player 问题的人。因此,这似乎是一个潜在的“一般”问题。文件路径中的任何目录是否有可能是连接点?
此外,一些谷歌搜索显示,
0x80004005
在 Windows 11 上重新安装后看到的错误可能是由%temp%
目录问题引起的。我能想到的两件事可以尝试:- 删除
%temp%
目录中的所有文件。 - 确保您的
%temp%
目录未压缩或加密。这会导致 WSL 网络出现问题。虽然我从未见过它以这种特定方式出现,但这可能是可能的,因为 WSL/Windows 文件集成是通过伪网络共享(Plan9 文件系统协议)完成的。
- 删除
答案2
我使用 Etcher 创建了一个启动盘,可以使用 WSL 选择文件。使用起来非常简单。我还没有解决复制和粘贴问题,但我找到了一种解决方法。
答案3
当我尝试使用“rsync -av”将文件夹和文件从 WSL-2 目录复制到本地 Windows 目录或 USB 磁盘时,我遇到了相同的错误代码(错误 0x80070781)(错误如 /{Dirs/{copied files} 失败:操作不允许)。使用 chmod(例如 chmod -R 777)更改权限后,我没有运气;问题仍然存在。但是,只需将 sudo 添加为“sudo rsync -av”即可解决错误。我在这里分享此信息,供可能遇到类似问题的其他人使用。