更新后 Windows 坏了。我无法修复它,因此无法从系统访问它。
在旧系统上,我使用的是 Ubuntu 的 WSL 1。我没有备份或导出。
在开始重新创建它之前,我想尝试恢复整个环境。
对于 WSL 2,该位置C:\Users\{user_name}\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\
将有一个磁盘映像。WSL 1 具有类似 Linux 的目录结构。
我在新系统上创建了 WSL,并安装了与旧系统相同版本的 Ubuntu。
也许将这些目录从旧计算机复制到新计算机会有所帮助,但我不知道如何在 Windows 上执行此操作,以免弄乱 Linux 文件权限
有谁遇到过类似的问题吗?
答案1
几年前,当我需要重置 Windows 时,我也经历过类似的经历。我做了wsl --export
,但我陷入了不测试备份/恢复的古老陷阱,导致恢复时导入永远无法完成。
不过,对于你的情况,我反复思考了这个问题。我的结论是,你大概和我一样。您需要复制单个文件,但恢复整个文件系统并不是一个好主意。
也许将这些目录从旧计算机复制到新计算机会有所帮助,但我不知道如何在 Windows 上执行此操作,以免弄乱 Linux 文件权限
完全正确——权限和所有权可能会导致此问题。
Linux 元数据存储在 NTFS 扩展属性中(根据这个微软开发博客)。 如果如果你能保证你正在复制 EA,那么你可以:
- 在新 PC 上创建新的 Ubuntu 20.04 WSL1 发行版
- 删除新的
rootfs
- 复制旧的
rootfs
但是,除了 Linux 权限和所有者正确显示外,我没有好的方法来告诉你如何确保 EA 被正确复制,即使你可以,你也无法检查文件系统中的每个文件。对我来说,没有内置的 Windows 功能(内核/API 除外)来检查和修改 EA,这非常奇怪。似乎有适用于 PowerShell 的第三方库,但我还没有尝试使用它们来检查 WSL1 EA。
如果我选择“复制”路线,我可能总会怀疑 WSL1 的安装,所以我可能仍会选择我最初的路线,并且:
在新 PC 上安装全新的 WSL1 发行版。
重新安装/重新配置应用程序和服务——将旧的复制
/var/log/apt/history.log
到临时位置并运行grep "^Commandline" history.log
以获取已安装的软件包列表。复制
/etc/
您记得的任何配置。您可以复制文本配置文件从旧到新,而不是通过复制文件本身来潜在地弄乱权限。从我的旧主目录复制文件,我知道我可以使用
chmod
/轻松修改chown
。