首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WSL中生成一个快照

在WSL中生成一个快照
EN

Ask Ubuntu用户
提问于 2022-06-29 20:06:19
回答 1查看 876关注 0票数 0

我刚刚在机器上安装了wsl 2(使用Windows 10 pro)。我下载了ubuntu发行版20.04。我想知道是否可以像Vmware那样制作快照和克隆。谢谢!

EN

回答 1

Ask Ubuntu用户

发布于 2022-06-30 19:18:08

@Esther的评论指向超级用户是一个好的,但我认为这是一个值得有自己的答案在这里问Ubuntu。它也需要一个更新的答案,因为WSL在这方面有新的功能。

超级用户的问题也只涉及克隆/备份,而不是真正的“快照”,我认为这通常是指“增量”备份。因此,我也将尝试在这个答案中触及“快照”。

备份WSL1或WSL2发行版

支持“备份”WSL1或WSL2发行版的机制是使用wsl --export。与大多数备份一样,最好先关闭正在使用的文件,所以最好从PowerShell执行这些操作。

  1. 在WSL上退出Ubuntu
  2. 从PowerShell: wsl -l -v #为以下命令确认您的发行版名称--终止 #创建目录结构,调整为首选项: mkdir "$env:userprofile\WSL\images“#您可以对下面的备份名进行硬编码(如果您愿意)。#此示例在tarball上使用日期/时间戳前缀创建它: wsl -export "$env:userprofile\WSL\images\$(date -f yyyyMMdd_HHmmss)_Ubuntu.tar“

将以前的备份还原到新实例(创建克隆实例)

通过使用wsl --import命令创建克隆,可以从上一步的备份中创建一个新实例。

同样,来自PowerShell:

代码语言:javascript
复制
# Adjust paths and names to your preference
mkdir "$env:userprofile\WSL\instances\Ubuntu20.04_TestClone"
wsl --import Ubuntu20.04_TestClone "$env:userprofile\WSL\instances\Ubuntu20.04_TestClone"  --version 2

WSL并不“记住”--imported实例的默认用户,因此您需要手动设置它。有关如何使用这个超级用户的答案文件执行此操作,请参见/etc/wsl.conf

新的,WSL2在WSL预览

中的较短选项

在最新版本的WSL (目前处于预览版)中,wsl --import (以及--export)还有几个附加选项。

如果您正在运行Windows 11 (我知道您没有运行Windows 11,但其他人可能运行,最终您可能运行),那么您可以从Microsoft安装它。它被列为“Linux预览的Windows子系统”。

使用此版本,可以使用WSL2直接将VHDX文件( wsl --import --vhd实例的虚拟磁盘)从现有实例导入到新实例中。首先,您需要知道现有的VHDX驻留在哪里。

来自PowerShell:

代码语言:javascript
复制
Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss\ | ForEach-Object { (Get-ItemProperty $_.PSPATH) | Select-Object DistributionName,BasePath }

然后使用以下方法从该位置导入:

代码语言:javascript
复制
# Adjust paths and names to your preference
mkdir "$env:userprofile\WSL\instances\Ubuntu20.04_TestClone"
wsl --import Ubuntu20.04_TestClone "$env:userprofile\WSL\instances\Ubuntu20.04_TestClone" \ext4.vhdx> --vhd --version 2

注意,如果收到以下错误:

代码语言:javascript
复制
The process cannot access the file because it is being used by another process.

..。然后按以下顺序试一试:

  • wsl --terminate 现有实例,然后再次尝试--import
  • 如果码头桌面正在运行,请停止它,然后再次尝试--import
  • wsl --shutdown,然后再尝试--import

这种方法有一个缺点,因为这纯粹是现有WSL2 vhdx文件的“副本”。这意味着,如果它占用的空间比需要的多,那么新映像将具有相同的“浪费空间”(更多信息请参见这个答案 )。

增量快照

WSL还没有一个可以进行增量快照以节省空间的功能。这可能是可以手工破解这一点,但我还没有亲自测试这一技术。高层次的想法是:

  • 使用Gnu tar's 增量转储特性创建现有实例的tarball。
  • 指定--one-file-system--xattrs来捕获实际文件系统中的正确文件(以及它们的扩展属性,如果在您的发行版中使用)。
  • 重建一个“非增量的”油球从增量球。
  • 使用wsl --import还原它。

这是我想尝试的一段时间,但我只是还没有时间。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1416476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档