lem*_*mek 7 windows linux windows-subsystem-for-linux wsl2
长话短说 - 当尝试在任何发行版上执行任何操作时,WSL2 会永远挂起,直到系统重新启动。我尝试过启动/停止 LxssManager,但似乎没有任何效果。此时我只想从发行版中恢复数据。是否可以通过 WSL 访问 shell?
更多细节。
wsl -l -v
我可以在尝试打开或执行与分发相关的任何操作之前执行大多数 WSL 命令,例如在系统启动时执行wsl -l -v
以前运行的命令现在无限期地挂起,因此例如我在尝试启动分发后无法执行。wsl --help
工作正常,与 相同wsl --set-default-version
。wsl --export
挂起,所以我无法使用它。wsl
、wsl --status
、等命令wsl --shutdown
会挂起 WSL。一些 WSL 信息(我的系统语言是波兰语,因此名称可能有所不同)
wsl --version
Susbsystem WSL version: 1.1.6.0
Kernel version: 5.15.90.1
Service WSLg version: 1.0.50
MSRDC version: 1.2.3770
Direct3D version: 1.608.2-61064218
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows system version: 10.0.22621.1485
Run Code Online (Sandbox Code Playgroud)
Dan*_*l B 10
是的,数据恢复是可能的。WSL 2 将分发数据存储在.vhd
磁盘映像中。不幸的是,它们所在的位置差异很大。我在 Reddit 上找到了这个脚本(通过用户名,来自超级用户贡献者 NotTheDr01ds?):
Get-ChildItem HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Lxss\\ |\n ForEach-Object {\n (Get-ItemProperty $_.PSPATH) | Select-Object DistributionName,BasePath\n } | Format-List\n
Run Code Online (Sandbox Code Playgroud)\n它可以在我的机器上运行。只需将其粘贴到 PowerShell 窗口中,然后按Enter。
\n在该脚本报告的文件夹中,您\xe2\x80\x99 将找到一个ext4.vhd文件。只需将此文件复制到任意位置即可获得备份。您可以在虚拟机内使用兼容的虚拟机软件( Hyper-V、VirtualBox等转换映像格式后的软件)和 Linux 来访问此备份。磁盘映像不包含任何分区方案,仅包含ext4文件系统。您可以像这样安装它(只读,以免进行意外的更改):
\nmount -o ro /dev/sdx /mnt/wsl-rescue\n
Run Code Online (Sandbox Code Playgroud)\n然后,您可以从您的发行版中找到数据/mnt/wsl-rescue
并将其复制到其他地方。
您可以使用任何现代 Linux 来进行救援。例如,Ubuntu Live DVD 映像即可,无需安装。
\n备份数据后,如果需要,您可以通过完全重置来继续恢复 WSL\xe2\x80\x94。
\n 归档时间: |
|
查看次数: |
1237 次 |
最近记录: |