我以前能够\\wsl$\Ubuntu
在 MS Windows 文件资源管理器的地址栏中输入内容,然后就能浏览我的 WSL 文件。
在 Windows 自动更新后,我现在无法像以前一样访问我的 WSL 文件。
目前我收到此错误:Windows cannot access \\wsl$\Ubuntu
检查名字的拼写。
但是,我仍然可以在 PowerShell 中使用相同的路径:
PS C:\Users> cd \\wsl$\Ubuntu
PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu> ls
Directory: \\wsl$\Ubuntu
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 28-Apr-21 14:58 bin
d----- 10-May-18 10:17 boot
d----- 08-Oct-21 14:08 dev
d----- 08-Oct-21 14:08 etc
d----- 19-Jul-18 18:21 home
d----- 30-Nov-18 13:17 lib
d----- 10-Nov-20 18:48 lib64
d----- 10-May-18 10:14 media
d----- 10-Jun-20 09:12 mnt
d----- 28-Apr-21 15:01 opt
d----- 08-Oct-21 14:08 proc
d----- 22-Jun-21 10:29 root
d----- 08-Oct-21 14:08 run
d----- 02-May-21 15:18 sbin
d----- 11-Apr-18 15:11 snap
d----- 10-May-18 10:14 srv
d----- 08-Oct-21 14:08 sys
d----- 08-Oct-21 14:09 tmp
d----- 24-Sep-19 10:48 usr
d----- 10-May-18 10:17 var
------ 01-Jan-70 01:00 636192 init
PS Microsoft.PowerShell.Core\FileSystem::\\wsl$\Ubuntu>
仍可通过以下路径访问这些文件:
C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
尽管如此,我还是希望能够使用旧路径。有人知道我该怎么做才能恢复它吗?
或者如果有一条我可以使用的新“短路径”,那么有人可以告诉我吗?
我正在运行带有 WSL 1 的 Windows 10 21H1(操作系统内部版本 19043.1237):
# wsl.exe -l -v
NAME STATE VERSION
* Ubuntu Running 1
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.7 LTS
Release: 16.04
Codename: xenial
这些是更新的问题:
2021-适用于基于 x86 的系统的 Windows 10 版本 21H1 的 09 累积更新 (KB5005565)
2021-09 适用于 Windows 10 版本 21H1 x86 的 .NET Framework 3.5 和 4.8 的累积更新预览 (KB5005539)
提前谢谢您!
PS:升级到 WSL2 不是一个选项。
答案1
我知道我听起来像在老生常谈(因为我曾在 Stack Overflow 上评论过你的问题),但不是在任何情况下尝试通过以下方式访问 WSL1 文件..\LocalState\rootfs\
。这可能会导致腐败。
至于 Explorer 集成,听起来很像这个问题。似乎有两种可能的解决方案:
对于某些人来说,只需在可选功能中关闭并重新打开“适用于 Linux 的 Windows 子系统”似乎就可以解决问题。您现有的 Ubuntu 实例应该没问题,但您可能希望
wsl --export Ubuntu Ubuntu_backup.tar
先通过以下方式备份它,以防万一。您肯定需要应用这些更改——当然,仅仅勾选 WSL 复选框是行不通的。
如果“简单方法”不起作用,请按照 Github 问题中的建议检查注册表项:
# HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\ProviderOrder # HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order # HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\HwOrder
如果您
P9NP
在第一个注册表项 (ProviderOrder
) 中看到(Plan 9 网络提供商),但在后两个注册表项中没有看到,则编辑Order
和HWOrder
条目以将其作为逗号分隔列表中的第一个项目。可能需要重新启动。
答案2
另外,请检查是否没有任何东西在背后关闭虚拟机平台 - 因为按照上述步骤然后执行此操作可以为我解决问题。
答案3
我只想补充一下 NotTheDr01ds 的回答,除了重新排序键之外:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\HwOrder
和Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order
......
同时编辑P9NP在Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\ProviderOrder
...使其成为一个低于(表示优先级)的十进制值,低于任何中央银行值。
我和P9NP100 因为我有一个CBFS5250和cbfs20175... 重启后依然存在。我得等着看升级后是否也能存在。