新加了一块硬盘(F), 将WSL存放的老盘(L)数据拷入新硬盘(F)
之后因盘符变更, 启动wsl时提示如下:
无法将磁盘“L:\WSL\Debian\ext4.vhdx”附加到 WSL2: 系统找不到指定的路径。
错误代码: Wsl/Service/CreateInstance/MountVhd/HCS/ERROR_PATH_NOT_FOUND[已退出进程,代码为 4294967295 (0xffffffff)]
问题是去哪里修改? 虚拟机调用镜像的设置保存在哪里?
找了篇微软文档参考: 如何查找 Linux 发行版的 .vhdx 文件和磁盘路径 https://learn.microsoft.com/zh-cn/windows/wsl/disk-space#how-to-locate-the-vhdx-file-and-disk-path-for-your-linux-distribution
.vhdx 文件和磁盘路径, 存储在注册表的以下地址中:
HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss
Lxss 下 类似 { guid } 的条目就是子系统条目, 有几个子系统会有几条。(我的有3个子系统 )
条目下数值项 “BasePath”,就是文件地址目录,直接修改盘符路径,重启wsl就可以了!
其他问题:
如果修改注册表,wsl启动后,wsl提示:
“<3>WSL (xxx) ERROR: UtilTranslatePathList:2852: Failed to translate
” (之后跟着一个windows文件路径)
如我的提示:
“<3>WSL (461) ERROR: UtilTranslatePathList:2852: Failed to translate L:\PHP\php-8.1.23-nts-Win32-vs16-x64
”
说明后面这个路径,是被设置在系统环境变量中,还是有由于盘符变动造成的问题。把系统环境变量的路径值修改了,就好了!
【end】