蓝天

Windows的Linux子系统迁移

默认 Windows 的 Linux 子系统(WSL)安装的 C 盘,如果有用作 Docker 镜像制作很容易磁盘不够用。可采取如下步骤迁移(以下在 Windows PowerShell 中进行的,但在 CMD.exe 中执行效果相同):

  • 1、执行一下命令查看 Linux 子系统的发行版名称(distro name)
PS D:\> wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop         Running         2
  Ubuntu-22.04           Stopped         2
  docker-desktop-data    Running         2

从上可以看成名称为“Ubuntu-22.04”。

  • 2、执行下列命令导出镜像
PS D:\> wsl --export Ubuntu-22.04 D:\Ubuntu-22.04
正在导出,这可能需要几分钟时间。
操作成功完成。

注意需手动先创建好目录“D:\Ubuntu-22.04”。

  • 3、注销掉当前的
PS D:\> wsl --unregister Ubuntu-22.04
正在注销。
操作成功完成。
  • 4、重新导入
PS D:\> wsl --import Ubuntu-22.04 D:\Ubuntu-22.04\ D:\Ubuntu-22.04\Ubuntu-22.04.tar --version 2
正在导入,这可能需要几分钟时间。
操作成功完成。
  • 5、设置默认用户名
PS D:\> ubuntu2204.exe config --default-user root

注意这里的“ubuntu2204.exe”名同发行版名称(distro name)相关,如果发行版名称为 Ubuntu,则对应的名为 ubuntu.exe 。

如需在 WSL 中使用 Docker,则必须为使用“Docker Desktop WSL 2”,也就是 VERSION 对应的值需为 0。

PS D:\> wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop         Running         2
  Ubuntu-22.04           Stopped         2
  docker-desktop-data    Running         2

如果 VERSION 值为 1,参考 (https://docs.docker.com/desktop/wsl/)[https://docs.docker.com/desktop/wsl/] 进行修改。具体操作步骤为(以下在 CMD.exe 中进行的):

  • 1、将 Linux 发行版升级到 v2
d:\>wsl.exe --set-version Ubuntu-22.04 2
  • 2、设置 Linux 发行版为 v2
d:\>wsl.exe --set-default-version 2
  • 3、设置默认的 WSL 版本
D:\>wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop         Running         2
  Ubuntu-22.04           Stopped         2
  docker-desktop-data    Running         2

d:\>wsl.exe --set-default Ubuntu-22.04
操作成功完成。

d:\>wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-22.04           Stopped         2
  docker-desktop         Running         2
  docker-desktop-data    Running         2

注意在 Docker Desktop 上也要设置好,勾选“Use the WSL 2 based engine”:

alt

posted on 2024-03-27 14:41  #蓝天  阅读(56)  评论(0编辑  收藏  举报

导航