如何在 Windows Subsystem for Linux 中恢复已删除的 Ubuntu 安装

如何在 Windows Subsystem for Linux 中恢复已删除的 Ubuntu 安装

我同时拥有 Ubuntu 18.04 和 Ubuntu20.04,并且想删除 Ubunto18.04。但是,我错误地删除了 Ubuntu20.04。我有没有办法从 Ubuntu 20.04 恢复文件?

答案1

有可能,但有注意事项。如果是 WSL2,则可能不行(但你可以尝试)。如果是 WSL1,那么你可能能够恢复一些单个文件。

首先,WSL 实例中是否存在难以重新创建的数据,或者您担心的只是重建映像所浪费的时间?我现在可以告诉你,文件恢复将非常耗时,因此,如果您没有丢失的重要文件,只需计划安装一个新的 Ubuntu WSL 实例并重新配置它。

如果您确实需要尝试恢复关键数据,请立即关闭 Windows 并在手机或平板电脑上阅读其余内容。

重要的是要理解,删除 WSL 实例是对所涉及文件的“真正”删除——没有任何文件进入回收站(我已经测试过以确保)。

如果您使用的是 WSL1,则文件系统直接存储在 NTFS 驱动器上,并且某些文件可能可以恢复。据我所知,这在磁盘上效果更好,但有些实用程序声称也能处理固态驱动器。让我们这样说吧——我只需要在磁盘驱动器上尝试过。

无论如何,您不太可能恢复整个图像 - 这里的目标只是恢复您可能存储在那里(例如$HOME)的任何难以重新创建的文件。

您需要一个专门用于恢复已删除文件的实用程序。有一条建议在这个答案中,但我没有这方面的经验。你也会在其他文章中找到一些建议超级用户线程

您应该考虑创建一个单独的可启动 USB(从另一台计算机)。Windows 在使用时会不断写入驱动器,并且任何文件写入都可能位于存储已删除数据的位置。

如果可能的话(我已经有一段时间没这样做了),你会想要查找从中删除的文件C:\Users\youruser\AppData\Local\Packages\Canonical...\LocalState\。同样,对于 WSL1,每个单独的文件都会显示在文件系统中。

对于 WSL2,它只是一个名为 的虚拟磁盘ext4.vhdx。如果您可以取消删除它,那么它可能仍然有损坏。如果您非常幸运并且可以无错误地恢复它(您只有尝试才会知道),那么您可以通过以下方式使用它:

  • 从 Microsoft Store 重新安装 Ubuntu 20.04
  • 将恢复的ext4.vhdx文件复制回新创建的文件。

但更有可能的是,文件在某种程度上已经损坏。如果是这样的话,那么你可能仍然能够通过修复 vhdx 从中恢复文件。遗憾的是,这超出了我的经验范围(或者不是!)。通过快速搜索,似乎大多数选项都需要购买软件许可证,即使这样,在我看来它们也很可疑(例如,声称自己是“微软”产品,但显然不是)。修复映像后,它可能仍然无法作为 WSL 磁盘启动,在这种情况下,您需要:

  • 安装 Hyper-V(包含在 Windows Pro 或更高版本中),创建 Linux VM,并vhdx在那里安装修复的文件以查看可以恢复哪些文件。
  • 安装 Windows 10 或 Windows 11 预览版,它具有更新的 WSL,可以挂载 vhdx 文件(据我所知)。

相关内容