WSL迁移到非系统盘及MkLInk命令的使用

酷酷的白 575 浏览

起因

今天看了下系统的应用,才发现Windows Subsystem Linux 竟然占了我C盘10G的空间,然后又看到用户目录下npm、Go等各种依赖的占用,决定对C盘进行优化。

WSL迁移到非系统盘及MkLInk命令的使用

教程

WSL迁移

查看版本及运行信息

wsl -l -v

WSL迁移到非系统盘及MkLInk命令的使用

如果STATE状态中显示不是Stoped话则通过以下命令停止WSL服务

wsl --shutdown

将需要迁移的Linux导出

wsl --export [name] [export path]
  • [name] Linux发行版的名称,如Ubuntu-20.04
  • [export path] 要导出文件的路径,要加上文件名,如D:\Linux

因为我的版本是ubuntu-20.04,导出到F:\WSL\ubuntu20.tar,所以命令为

wsl --export Ubuntu-20.04 F:\WSL\ubuntu20.tar

导出完成之后将原来的分发删除

wsl --unregister Ubuntu-20.04
记得将Ubuntu-20.04改为自己的,如果和我是一个版本无需修改

导入WSL

wsl --import [name] [import path dir] [import for file path] [other options]
  • [name] 要导入的名称,导出时什么导入也是什么。
  • [import path dir] 要到入到哪个文件夹,目录.不加文件名。
  • [import for file path] 要导入文件,也就是导出的文件的路径。
  • [other options] 其他的一些参数,可加也可不加,如加版本号 --version 2
    我使用的命令
wsl --import Ubuntu-20.04 F:\WSL\Ubuntu-20.04 F:\WSL\ubuntu20.tar

在运行wsl时,找不到可通过重启来解决

导入完之后,可能进系统的用户是root,可使用以下命令更改默认用户
更改默认用户

ubuntu2004 config --default-user youname

一般改为安装时设置的用户,如果你使用的不是2004需把Ubuntu2004改为你对应的版本,也可以通过路径来查看

C:\Users\[你电脑的用户名]\AppData\Local\Microsoft\WindowsApps
WSL迁移结束。

MkLink命令

在终端输入mklink即可显示帮助信息

WSL迁移到非系统盘及MkLInk命令的使用

MKLINK [[/D] | [/H] | [/J]] Link Target

  • /D 创建目录符号链接。默认为文件符号链接。
  • /H 创建硬链接而非符号链接。
  • /J 创建目录联接。
  • Link 指定新的符号链接名称。
  • Target 指定新链接引用的路径(相对或绝对)。

使用方法

mklink 参数 要链接到的链接文件或路径 要链接的源文件或者目录

目录联接效果

WSL迁移到非系统盘及MkLInk命令的使用

分享