月亮是树梢的眼睛

使用LxRunOffline自定义配置WSL,在Windows下拥有你的完美Linux子系统

作为一名开发人员很多时候需要Linux环境,但是由于日常开发也不能抛弃Windows,双系统来回切换很是麻烦,用虚拟机又会有性能损耗,直到知道了WSL (Win­dows Sub­sys­tem for Linux) ,现在微软对WSL的支持越来越好,Hyper-v技术的使用使得在win10上运行Linux越来方便。

由于在Microsoft Stroe安装WSL的默认安装路径是系统盘,为了避免后期使用不撑爆系统盘,可以把WSL整个安装目录进行转移:使用wsl --export wsl --import这两个命令对WLS进行打包再自定义目录安装。这本来基本是相当完美的解决方案了,但还有另外一款非常实用的WSL管理软件:LxRunOffline,它可以将任何Linux发行版本安装到任何目录上,备份、转移和恢复已安装的WSL目录,设置默认用户和修改环境变量等操作,总之就是非常牛牛,完全可以替代wslwslconfig这些原生的管理命令。

启用 WSL

如果你没有使用过WSL,需要先做如下准备:

  • 打开windows设置,搜索开发者设置,启用开发人员模式,如果不进行这步操作,之后可能不能使用LxRunOffline的命令

启用开发者模式.png

  • 可以通过以下两种方式启用 WSL:

    1. 使用管理员权限打开 Powershell,执行 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    2. 进入“控制面板”——双击“程序和功能”——点击左侧的“启用或关闭 Windows 功能”——勾中“适用于 Linux 的 Windows 子系统”——点击“确定”按钮。

启用WSL.png

下载 Linux发行版系统Docker 镜像

CentOS系统下载方式

  1. 访问 CentOS 的官方 Docker 镜像网站:CentOS Cloud SIG image repository.
  2. 切换到自己想要的分支,比如:CentOS-7-x86_64
  3. 进入 docker 目录,下载centos-*-docker.tar.xz文件,比如:centos-7-x86_64-docker.tar.xz

Ubuntu系统下载方式

  1. 下载 WSL 官方离线包,改后缀名为,使用解压缩软件解压后可得到名为 install.tar.gz 的文件。
  2. 或者在 LxRunOffline WiKi 中下载大佬们提供的镜像文件。

安装 Chocolatey

Chocolatey 是 Win­dows 环境下的包管理器,其作用等同于 Mac OS 的 Brew,Ubuntu 的 apt,Cen­tOS 的 yum。具体的安装方法参见官方文档
在具有管理员权限的 Pow­er­shell 中执行下列命令:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

安装 LxRunOffline

与微软商店的安装方式不同,LxRunOf­fline 安装 WSL 更灵活,它可以安装任意发行版到任意目录,还可以自定义 WSL 名称。

继续在 Pow­er­shell 中执行下列命令:

choco install LxRunOffline

使用 LxRunOffline 安装你的Linux发行版系统

继续在 Pow­er­shell 中执行下列命令:

LxRunOffline install -n <WSL名称> -d <安装系统的路径> -f <镜像文件路径>\xxx.tar.gz -s

其中:

  • -n 是安装的系统名称,可自定义;
  • -d 是安装系统的目录;
  • -f 是之前下载的镜像文件路径;
  • 另外加入-s参数可在桌面创建快捷方式,可以不加。

启动你的Linux发行版系统

可以用以下方式启动:

原生启动WSL

  • 查看已安装的发行版本

    wsl -l                        //列出当前已经安装的开发版
    wslconfig /list                //列出当前已经安装且随时可用的发行版
    wslconfig /list /all        //列出所有发行版,包括正在安装、卸载和已损坏的发行版
  • 运行指定 WSL

    wsl -d <WSL名称>
  • 设置默认 WSL

    wsl -s <WSL名称>

使用 LxRunOffline 运行 WSL

和原生运行方式本质上是一样的。

  • 创建快捷方式

    使用微软应用商店安装的 WSL 会在开始菜单添加应用图标(快捷方式),而使用 LxRunOf­fline 安装 WSL 时可以通过添加 -s 参数在桌面创建快捷方式。如果你安装时忘记添加参数,可以使用以下命令进行创建。

    LxRunOffline s -n <WSL名称> -f <快捷方式路径>.lnk
  • 使用命令运行指定 WSL

    在有多个 WSL 的情况下,可以指定运行某个发行版。

    LxRunOffline run -n <WSL名称>
    等同于wsl -d
  • 设置默认 WSL

    设置默认 WSL 后,可以在 cmdpowershell 中输入 wsl 直接调用默认的 WSL 。

    LxRunOffline sd -n <WSL名称>
    等同于wsl -s

按照上述步骤,你就拥有了一个可以任意折腾的Linux子系统了。

使用 LxRunOffline 设置默认用户

当修改过 WSL 的名称或目录后就无法通过微软官方提供的方法设置默认用户。这时可以使用 LxRunOf­fline 进行设置。

设置普通用户为默认用户

使用 LxRunOf­fline 新安装的 WSL 默认是以 root 用户登录,如果你需要默认以普通用户进行登录,就需要进行下面的操作。

首先运行 WSL ,输入以下命令创建用户:

useradd -m -s /bin/bash <用户名>

然后对该用户设置密码,输入命令后会提示输入两次密码。

passwd <用户名>

授予该用户 sudo 权限。

usermod -a -G sudo <用户名>
为了保持和微软商店安装的效果一致,这里提及的方法是把用户添加到 sudo 用户组。其他关于 sudo 权限的设置方法以及免密设置可参考《Linux 中授予普通用户 sudo 权限的正确方法》这篇文章。

查看用户 UID ,一般是 1000

id -u <用户名>

Ctrl+D 退出 WSL ,在 Pow­er­Shell 中输入以下命令:

LxRunOffline su -n <WSL名称> -v 1000

设置 root 为默认用户

root 用户的 UID 为 0,所以可以直接在 Pow­er­Shell 输入以下命令进行设置:

LxRunOffline su -n <WSL名称> -v 0

使用 LxRunOffline 转移 WSL 安装目录

LxRunOf­fline 可以对系统中已经安装的 WSL 进行目录转移操作,拯救爆满的 C 盘。

查看系统中已安装的 WSL 。

LxRunOffline l
类似于wsl -l。LxRunOf­fline 不会显示默认 WSL ,查看默认 WSL 需要使用 lxrunoffline gd命令。

输入命令对 WSL 的目录进行移动。

LxRunOffline m -n <WSL名称> -d <路径>

最后查看路径,进行确认。

LxRunOffline di -n <WSL名称>

使用 LxRunOffline 备份和恢复 WSL

使用 LxRunOf­fline 可以方便的对 WSL 进行备份和恢复,同样可以实现转移的操作,而且还可以在转移到其它电脑上。

备份 WSL

查看系统中已安装的 WSL 。

wsl -l

然后输入需要备份的 WSL 名称和备份的目标路径。

LxRunOffline e -n <WSL名称> -f <压缩包路径>.tar.gz
类似但不等同于wsl --export <压缩包路径>.tar。LxRunOf­fline 备份完会生成一个.xml后缀的同名配置文件,比如WSL.tar.gz.xml

恢复 WSL

输入以下命令可以恢复已备份的 WSL,和安装是相同的命令。

LxRunOffline i -n <WSL名称> -d <安装路径> -f <压缩包路径>.tar.gz
类似但不等同于wsl --import <安装路径> <压缩包路径>.tar。LxRunOf­fline 会读取备份时生成的配置文件并写入配置,前提是同目录且同名。否则你需要加入-c参数指定配置文件。

使用 LxRunOffline 修改 WSL 名称

查看 WSL 名称。

wsl -l

查看 WSL 安装目录。

LxRunOffline di -n <WSL名称>

导出指定的 WSL 配置文件到目标路径。

LxRunOffline ec -n <WSL名称> -f <配置文件路径>.xml
配置信息可以输入lxrunoffline sm -n 查看

取消注册(这个操作不会删除目录)

LxRunOffline ur -n <WSL名称>

使用新名称注册

LxRunOffline rg -n <WSL名称> -d <WSL路径> -c <配置文件路径>.xml

卸载已安装的WSL

原生卸载

wslconfig /unregister <wsl名称>

使用 LxRunOffline 卸载WSL

LxRunOffline uninstall -n <wsl名称>

参考链接:

LxRunOffline 使用教程 - WSL 自定义安装、备份

https://github.com/DDoSolitary/LxRunOffline

添加新评论