我在 Windows 上的 WSL2 上使用 Ubuntu(操作系统版本详细信息)我通过以下方式重置了 Ubuntu 应用程序:
设置 > 应用程序 > 应用程序和功能 > Ubuntu > 重置
在“卸载”下提到卸载 WSL 发行版不会影响文件,那么“重置”WSL 发行版真的会删除 WSL 文件系统中的文件吗?我预计 /home 目录文件会保留,但重置后我发现 /home 中什么都没有了。
是否有可能恢复 /home 中的数据?
感谢您回答这个问题。
答案1
遗憾的是,我没有好消息告诉你;只有在重新安装时才有可能给出建议,希望能防止这种情况再次发生。
首先,重置您发布的屏幕截图中的选项确实具体说明了:
如果此应用无法正常运行,请重置它。应用的数据将被删除。
所以是的,重置确实摆脱了整个 Ubuntu WSL 数据(文件系统和注册表数据)。
A维修另一方面,保持 WSL Ubuntu 发行版完整。
重要的提示:这些选项以及设置中这些选项背后的措辞对于所有 Store 应用都是相同的。我知道卸载措辞说:
您的文件不会受到影响。
然而,WSL 安装的处理方式,卸载做删除整个实例。文档是文件系统的一部分,卸载时会被删除。
我见过由于其他原因而重置 Store 应用的情况,导致 WSL 数据丢失。出于这个原因(以及更多原因),我建议采取以下措施...
防止卸载和重置删除 WSL 数据
我正在认真考虑尽快制作我的第一个 YouTube 视频。在 WSL 中安装 Ubuntu(或任何其他发行版)时,我做的第一件事就是通过将其“移动”到自己的目录中来“断开”实例与 Store 安装的连接。
默认情况下,WSL 发行版安装到:
%UserProfile%\AppData\Local\Packages\<DistributionPackage>\
这包括虚拟文件系统,可以是:
- WSL2:
..\<DistributionPackage>\LocalState\ext4.vhdx
- WSL1:
..\<DistributionPackage>\LocalState\rootfs\
对于 Ubuntu,该<DistributionPackage>
名称将以 开头Canonical
并包含Ubuntu
在名称中(以及其他标识符)。
值得检查一下该目录是否还在那里。如果是的话,你的数据可以恢复。不过,我认为不太可能。更有可能的是,如果你ubuntu.exe
在重置后重新运行,那么它是新的那里的安装。
无论如何,我建议采用此过程来“断开”商店安装,以免再次发生这种情况:
安装 Ubuntu 并配置用户名和密码后。
退出 Ubuntu
从 PowerShell:
# Confirm the distribution name wsl -l -v # Distribution name may be "Ubuntu" or "Ubuntu-20.04" - Adjust the following lines accordingly: wsl --shutdown cd ~\Documents mkdir WSL\images mkdir WSL\instances\MyUbuntu wsl --export Ubuntu WSL\images\ubuntu_clean.tar wsl --import MyUbuntu WSL\instances\MyUbuntu WSL\images\ubuntu_clean.tar --version 2
请注意,上面的大多数目录和文件名(以及实例名称)都由您决定。
您现在应该有两个 Ubuntu 安装,您可以通过 进行确认
wsl -l -v
。使用以下方式启动新版本
wsl -d MyUbuntu
--import
ed 实例不会“记住”您的默认用户名(尽管该用户仍然存在)。通过文件设置该实例中的默认用户/etc/wsl.conf
名这个答案。 具体来说:sudo -e /etc/wsl.conf
并添加以下几行:
[user] default=<yourusername>
退出实例
再次,从 PowerShell 来看:
wsl --terminate MyUbuntu wsl --set-default MyUbuntu
现在,默认实例是
MyUbuntu
。每当您使用命令启动 WSL 时,它都会启动wsl
。卸载 Ubuntu Store。您不必担心它会再次被重置。
如果您确实需要在 Ubuntu 中尝试一些您认为可能会导致问题的操作,请在新的临时实例中执行此操作:
同样,在 PowerShell 中:
cd ~\Documents\WSL
mkdir instances\UbuntuTest
wsl --export MyUbuntu images\current_ubuntu.tar
wsl --import UbuntuTest instances\UbuntuTest images\current_ubuntu.tar --version 2
wsl -d UbuntuTest
这是一个单独的实例,您可以在其中安装、更改配置,尽情发挥。当您使用它时,退出并:
wsl --unregister UbuntuTest
这将删除该测试实例,但保持MyUbuntu
不变。
当然,请注意,整个UbuntuTest
实例将会消失,因此请确保您不会在那里创建任何长期需要的文档或数据。