一、简介
WSL
有多香就不介绍了,但其原生命令较为简陋、默认安装在C
盘,稍有不足。而LxRunOffline
能够安装任意发行版系统到任意目录,且具备转移已安装WSL
目录、备份等功能,是一个极好的WSL
管理软件。
二、安装LxRunOffline
- 常规安装:下载项目,手动安装
- 通过
Chocolatey
安装:
choco install lxrunoffline
- 通过
Scoop
安装:
scoop bucket add extras
scoop install lxrunoffline
LxRunOffline
参数介绍:
l , list - 列出所有已安装的发行版。
gd , get-default - 获取 bash.exe 使用的默认发行版。
sd , set-default - 设置 bash.exe 使用的默认发行版。
i , install - 安装新的发行版。
sd , set-default - 设置 bash.exe 使用的默认发行版。
ui , uninstall - 卸载发行版。
rg , register - 注册现有的安装目录。
ur , unregister - 取消注册发行版但不删除安装目录。
m , move - 将发行版移动到新目录。
d , duplicate - 在新目录中复制现有发行版。
e , export - 将发行版的文件系统导出到.tar.gz 文件,该文件可以通过 install 命令安装。
r , run - 在发行版中运行命令。
di , get-dir - 获取发行版的安装目录。
gv , get-version - 获取发行版的文件系统版本。
ge , get-env - 获取发行版的默认环境变量。
se , set-env - 设置发行版的默认环境变量。
ae , add-env - 添加到发行版的默认环境变量。
re , remove-env - 从发行版的默认环境变量中删除。
gu , get-uid - 获取发行版的默认用户的 UID。
su , set-uid - 设置发行版的默认用户的 UID。
gk , get-kernelcmd - 获取发行版的默认内核命令行。
sk , set-kernelcmd - 设置发行版的默认内核命令行。
gf , get-flags - 获取发行版的一些标志。有关详细信息,请参考这里。
sf , set-flags - 设置发行版的一些标志。有关详细信息,请参考这里。
s , shortcut - 创建启动发行版的快捷方式。
ec , export-config - 将发行版配置导出到 XML 文件。
ic , import-config - 从 XML 文件导入发行版的配置。
sm , summary - 获取发行版的一般信息。
三、安装WSL
1、开启WSL功能
首先检查自己的电脑是否开启了WSL
功能,没有的话运行以下命令开启并重启电脑:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
2、下载镜像
以下列出两种镜像下载方式:
WSL
官方离线包:Manually download Windows Subsystem for Linux (WSL) Distros | Microsoft DocsLxRunOffline WiKi
中的镜像:Home · DDoSolitary/LxRunOffline Wiki · GitHub
如果是从微软官方下载WSL
离线包,文件后缀为.appx
,我们手动改为.zip
,然后解压,install.tar.gz
就是我们后续使用的安装文件。
3、开启当前目录大小写敏感
Windows
文件系统默认不区分大小写,而Linux
是区分的,这就导致在安装、运行部分软件时会报错,我们新建一个用于存放WSL
的目录,打开powershell
并切换到相应目录,运行以下命令开启当前目录大小写敏感:
fsutil.exe file setCaseSensitiveInfo .\ enable
# .\ 表示当前目录,此处参数可自定义
查看某个目录是否大小写敏感:
fsutil.exe file queryCaseSensitiveInfo <path>
禁用大小写敏感:
fsutil.exe file setCaseSensitiveInfo <path> disable
4、安装WSL
输入以下命令安装WSL
:
lxrunoffline i -s -n <WSL名称> -d <安装路径> -f <安装包路径>.tar.gz
# -s 参数表示在桌面创建WSL快捷图标
四、使用WSL
1、运行WSL
安装完成后我们可通过以下命令运行WSL
:
lxrunoffline r -n <WSL名称>
2、退出WSL
Ctrl
+D
即可。
3、创建快捷方式
lxrunoffline s -n <WSL名称> -f <快捷方式路径>.lnk
4、设置默认WSL
设置默认WSL
后,我们可在cmd
和powershell
中输入wsl
命令直接调用默认WSL
:
lxrunoffline sd -n <WSL名称>
5、修改WSL名称
查看WSL
名称:
wsl -l
查看WSL
安装目录:
lxrunoffline di -n <WSL名称>
导出指定WSL
配置文件到目标路径:
lxrunoffline ec -n <WSL名称> -f <配置文件路径>.xml
取消注册:
lxrunoffline ur -n <WSL名称>
使用新名称注册:
lxrunoffline rg -n <WSL名称> -d <WSL路径> -c <配置文件路径>.xml
五、其它配置
1、设置默认用户
修改过WSL
名称或目录后就无法通过微软的官方方法设置默认用户,Create user account for Linux distribution | Microsoft Docs,我们可以通过LxRunOffline
进行设置。
我们首先运行WSL
,输入以下命令创建用户:
useradd -m -s /bin/bash <用户名>
然后设置密码:
passwd <用户名>
授予sudo
权限:
usermod -aG sudo <用户名>
查看UID
,一般为1000:
id -u <用户名>
Ctrl
+D
退出WSL
,在powershell
中输入以下命令:
lxrunoffline su -n <WSL名称> -v 1000
2、转移WSL安装目录
查看已安装的WSL
:
lxrunoffline l
移动目录:
lxrunoffline m -n <WSL名称> -d <路径>
查看路径:
lxrunoffline di -n <WSL名称>
3、备份、恢复WSL
备份:
lxrunoffline e -n <WSL名称> -f <压缩包路径>.tar.gz
恢复:
lxrunoffline i -n <WSL名称> -d <安装路径> -f <压缩包路径>.tar.gz
六、WSL无法ping通主机
安装好相关工具后发现主机能ping
通WSL
,但WSL
无法ping
通主机,盲猜是防火墙的问题。
按一下Windows
键,打开控制面板,选择高级设置
=>入站规则
=>新建规则
=>自定义
=>所有程序
=>任何
=>在应用于哪些本地IP地址
选择任何IP地址
,在应用于哪些远程IP地址
选择下列IP地址
,然后粘贴通过ifconfig
命令查看到的WSL
的IP
=>后面全点下一步,给规则起名称的时候按个人喜好,能有明显的区分度,笔者设置为WSL2
。至此,WSL
就能成功ping
通主机了。
文章许可:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处。