如何在系统重置或重新安装之前备份(WSL)Windows 10 的 Linux 子系统?

emi*_*pac 73 backup bash reinstall reset windows-subsystem-for-linux

我的问题是因为一些问题,我不得不重置或重新安装windows,但我花了很多时间来配置WSL进行开发,不想失去它。

有没有办法用它的设置和安装的模块、插件、用户等备份整个 WSL 并在重置或重新安装 Windows 后恢复它?我搜索了很多这个主题,但我找不到任何有用的信息。

否则如果没有办法备份,Windows 10 重置会完全删除 WSL 吗?

Bob*_*Bob 82

Windows 10 v1903 包含一个内置的 WSL 导出/导入命令。具体来说,wsl --export产生一个tarand wsl --import,它导入一个先前导出的tar. 然后,您可以在计算机之间移动此文件。

您还可以使用 指定标准输入/标准输出-,这应该允许您直接传输到另一台机器并使用像ssh.

  • `wsl --import` 还可以导入 `tar.gz` 文件。这些命令在内部启动 `%SystemRoot%\System32\lxss\tools\bsdtar` ELF64 二进制文件。 (2认同)
  • 显然,当您运行此命令时,它会杀死当前正在运行的 wsl (2认同)
  • 我浪费了几个世纪的时间来弄清楚“访问被拒绝”错误。事实证明,您必须明确指定 .tar 目标文件!例如:`wsl --export <distro> ..\wsl_backup.tar`并且不依赖默认文件名。蠢得像屎一样。 (2认同)

Ric*_*ner 22

如何备份?

有多种方法,但一种常见的做法是使用 tar 为要备份的文件创建存档(以便在重新创建环境时重新安装所有内容)。编写一个简单的backup.sh脚本应该可以更容易地定期重复备份。

要备份什么?

您的大部分配置都存储在 Linux .___ 配置文件中,通常在您的 ~/ 文件夹中。您可能还想备份您/etc/ssh/ssh_config和其他类似的系统配置文件,但要小心包含特定于实例的密钥/数据/等的复杂配置文件。

您可以使用生成您的 apt 包列表dpkg-query -f '${binary:Package}\n' -W并且可以回显到您也可以备份的文件中。

备份到哪里?

然后,您可以将这些 tar 存档复制到一个单独的位置。我们建议复制到 Windows 可访问的文件夹(例如/mnt/c/backups),您可以从中将其复制到 OneDrive、DropBox、外部硬盘驱动器、FTP 等其他地方。

更新 2020-02-18 更新

在 Windows 10 1903 中,我们提供了一个更新的wsl.exe工具,包括将发行版的内容导出/导入外部存档的功能,大大简化了在机器之间备份和/或移动发行版的过程!

哈。