如何从 explorer.exe 恢复 WSL 中删除的文件?

如何从 explorer.exe 恢复 WSL 中删除的文件?

我通过 \wsl.localhost\Ubuntu\home\user.ssh 访问了我的 Ubuntu 挂载并删除了一个我不应该拥有的私钥。

我不确定 Windows 是否将文件扔进了回收站,所以我首先尝试了 recuva,但没有成功。

当谈到 Linux 和已删除的文件时,我读到的所有其他内容都是关于卸载驱动器并运行 extundelete 或 photorec。

我该如何从 WSL 挂载恢复文件?

答案1

当然,恢复已删除的文件永远不是肯定的。删除后您使用文件系统的次数越少,恢复的可能性就越大。

您尝试的方式取决于您的实例是 WSL1 还是 WSL2。使用以下命令从 PowerShell 仔细检查:

wsl --shutdown # To make sure we stop writing to any potential filesystem
wsl -l -v
对于 WSL2

不幸的是,我对以下说明的测试没有成功。这可能是由于 vhdx 文件在 WSL2 下的工作方式存在根本差异,也可能是它们的安装方式。我在这里留下这些说明,希望您或其他人能够确定哪些其他操作可能会使其成功。

文件系统存储在虚拟磁盘中ext4.vhdx。在默认的 Ubuntu/WSL2 安装中,您会在 下找到它%userprofile%\AppData\Local\Packages\CanonicalGroupLimited<...>\LocalState\ext4.vhdx

将此文件复制到另一个位置。这是您将用于尝试恢复的副本。最好给它命名recovery.vhdx以避免混淆。

下一步取决于您的 Windows 版本。在 Windows 11 下这肯定是最简单的。

  • 对于 Windows 10 Home 来说,这会很困难。最好将 vhdx 文件复制到 USB 驱动器,看看是否可以访问 Windows 11(任何版本)或 Windows 10 Pro 或更高版本的系统。

    话虽如此,可能的,但我自己从来没有这样做过。你需要:

    • 安装虚拟机,例如 VirtualBox 或 VMWare。这可能需要在“设置”中的“打开或关闭 Windows 功能”中禁用 WSL2(“虚拟机管理器”)。

    • 在虚拟机中安装 Linux 客户操作系统(例如 Ubuntu)

    • 安装libguestfs-tools后,您可以在 Linux 中挂载 vhdx 文件(请参阅这个 Ask Ubuntu 答案等等)。

    • 挂载 vhdx

    • 运行您在问题中提到的恢复工具。

  • Windows 10 Pro 或更高版本:同样不是一个有趣的选择,但您可以在不禁用 WSL2 的情况下在那里安装 Hyper-V。然后按照上述步骤安装客户 Linux 操作系统。

  • 如果你使用的是 Windows 11,则可以利用 WSL 的预览版,其中包括将 vhdx 文件直接挂载到 WSL2 中的功能(稍后阅读本文的人请注意 - 它可能会在那时发布,因此你可以跳过下面的第一步):

    • 安装“Windows 子系统 Linux 预览版”来自 Microsoft Store。

    • 从 PowerShell 发出wsl --mount <path_to>\recovery.vhdx --vhd --bare。不要在您的“实时”Ubuntu 上执行此操作ext4.vhdx;仅在您制作的备份上执行此操作。该--bare选项会附加磁盘,但不会挂载它。

    • 运行您现有的 Ubuntu 实例。

    • 安装并运行恢复工具,例如您在问题中提到的那些。

    • 安装恢复工具

WSL1

数据存储在LocalState与上面提到的 WSL2 位于同一目录中的覆盖文件系统中ext4.vhdx

此目录中的文件应该不是可以直接在 Windows 中访问,因为它可能会导致额外的数据丢失

但是,如果从 WSL1 中删除文件,则可能仍然可以从 NTFS 磁盘中恢复删除。 视窗在这种情况下应该尝试使用恢复工具。

答案2

这非常有用,但据我所知,在 VM 中安装 vhdx 不允许 extundelete 等工具访问数据。

我改为将 vhdx 作为第二个硬盘安装在 Ubuntu VM 上,因为 HyperV 可以将 vhdx 文件安装到 VM。我能够通过这种方式使用 extundelete 扫描驱动器,因为虚拟驱动器显示为 /dev/sdb。不需要 libguestfs-tools。

不幸的是,我的文件无法恢复,但我能够从驱动器中恢复其他文件,因此这种方法似乎是合理的。

相关内容