离线安装
管理员身份打开PowerShell
Add-AppxPackage .\Ubuntu_2004.2020.424.0_x64.appx
在线安装
wsl --list --online
wsl install <分发>
Linux 文件系统权限相关跟 Windows 不一样,不能在 Windows 直接复制整个系统,需要使用命令导出导入
可以使用 wsl
或 LxRunOffline
命令
WSL
命令wsl --export <分发> <FileName>
example
# wsl1
wsl --export Ubuntu_LTS_1 C:\WSL\Ubuntu_LTS_1.tar
# wsl2
wsl --export Ubuntu_LTS_2 C:\WSL\Ubuntu_LTS_2.tar
如果本机有分发版,注销分发 wsl --unregister <分发>
wsl --import <分发> <InstallLocation> <FileName> [Options]
example
# wsl1
wsl --import Ubuntu_LTS_1 C:\WSL\Ubuntu_LTS_1 C:\WSL\Ubuntu_LTS_1.tar --version 1
# wsl2
wsl --import Ubuntu_LTS_2 C:\WSL\Ubuntu_LTS_2 C:\WSL\Ubuntu_LTS_2.tar --version 2
将指定 tar 文件导入和导出为新的发行版。 在标准输入中,文件名可以是 -。 选项包括:
--vhd
:指定导入/导出发行版应为 .vhdx 文件,而不是 tar 文件--version
:(仅导入)指定将发行版导入为 WSL 1 还是 WSL 2 发行版LxRunOffline
命令导入出错了?使用 LxRunOffline
导入后提示 WARNING, 作者回复 Just ignore them these device files will be automatically created by WSL.
, 意思就是可以忽略,这些文件是WSL程序会自动生成的。
LxRunOffline 导出导入命令
// 导出
lxrunoffline e -n <分发> -f <备份文件路径>
// 导入
lxrunoffline i -n <分发> -d <安装路径> -f <备份文件路径>
注意:使用 LxRunOffline 导出的同时会有一个以追加 .xml
命名的配置文件,此文件可使用 LxRunOffline 相关命令与系统文件直接注册 WSL,内容类似如下
wsl1
<config>
<envs>
<env>HOSTTYPE=x86_64</env>
<env>LANG=en_US.UTF-8</env>
<env>PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games</env>
<env>TERM=xterm-256color</env>
</envs>
<uid>0</uid>
<kernel-cmd>BOOT_IMAGE=/kernel init=/init ro</kernel-cmd>
<flags>7</flags>
</config>
wsl2
<config>
<envs>
<env>HOSTTYPE=x86_64</env>
<env>LANG=en_US.UTF-8</env>
<env>PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games</env>
<env>TERM=xterm-256color</env>
</envs>
<uid>0</uid>
<kernel-cmd>BOOT_IMAGE=/kernel init=/init ro</kernel-cmd>
<flags>15</flags>
</config>
WSL 1 和 WSL 2
版本选择:除了有在 WSL 访问 Windows 的情况 都建议使用 WSL 2
要查看 Linux 发行版是设置为 WSL 1 还是 WSL 2,请使用命令 wsl -l -v
显示适用于 Linux 的 Windows 子系统的状态 wsl --status
更改指定分发的版本 wsl --set-version <分发> <版本>
example:
wsl --set-version Ubuntu_20_04_LTS 2
cat /etc/issue
cat /etc/lsb-release
cat /proc/version
uname -a
# 通用查看内核