将文件从 WSL 复制到 Windows 时出现错误 0x80070781

将文件从 WSL 复制到 Windows 时出现错误 0x80070781

我正在尝试使用路径将文件从 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

已尝试过的建议解决方案(非常感谢所有建议):

  1. 审查以前帖子的建议解决方案有助于弄清楚它应该如何运作(我已经学会了如何使用 WSL 的 Explorer)但是有些东西阻止我将某些文件复制到 Windows 文件夹,并且建议的帖子中没有解决这个问题。

  2. 我尝试创建具有相关内容的 WLS.conf 文件,但问题并未得到解决。

  3. 据我所知,没有任何文件或文件夹是连接点。

  4. 我清除了临时文件夹中的所有内容(无法删除正在使用的内容),但这仍然无法解决问题。临时文件夹也没有压缩。

解决方案!!!:我还没有解决这个问题,但我找到了一个解决方法。如前所述,我最终尝试使用 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/fmaskWSL 将看到的 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”即可解决错误。我在这里分享此信息,供可能遇到类似问题的其他人使用。

相关内容