配置wsl记录(坎坷版)

前情提要:

最近需要使用指令集去做一些项目,之前都是装虚拟机或者在mac上做,目前用的windows系统,就不想弄的很复杂。于是,我查到了可以配置一下wsl,不用装虚拟机啥的。

我立马就开始了!按照网上的教程,在"程序和功能"中我开启了"适用于Linux的Windows子系统"和"虚拟机平台"。然后立马关机重启。

就这么欢天喜地的开始了,按照教程下一步是打开我的Windows Powershell输入"wsl --install", 马上就能愉快的安装并结束了!

可是天不遂人愿,我总是这么倒霉,输入就是一堆命令解释,如下:

复制代码
版权所有 (c) Microsoft Corporation。保留所有权利。
有关此产品的隐私信息,请访问 https://aka.ms/privacy。

用法: wsl.exe [Argument][Options...][CommandLine]

运行 Linux 二进制文件的参数:

    如果未提供命令行,wsl.exe 将启动默认 shell。

    --exec, -e <CommandLine>
        在不使用默认 Linux shell 的情况下执行指定的命令。

    --shell-type <standard|login|none>
        使用提供的 shell 类型执行指定的命令。

    --
        按原样传递剩余的命令行。

选项:
    --cd <Directory>
        将指定目录设置为当前工作目录。
        如果使用 ~,则将使用 Linux 用户的主路径。如果路径以
        / 字符开始,它将被解释为绝对 Linux 路径。
        否则,该值必须是绝对 Windows 路径。

    --distribution, -d <DistroName>
        运行指定的发行版。

    --distribution-id <DistroGuid>
        运行指定的发行版 ID。

    --user, -u <UserName>
        以指定用户身份运行。

    --system
        为系统发行版启动 shell。

用于管理适用于 Linux 的 Windows 子系统的参数:

    --help
        显示使用情况信息。

    --debug-shell
        出于诊断目的打开 WSL2 调试 shell。

    --install [Distro] [Options...]
        安装适用于 Linux 的 Windows 子系统发行版。
        有关有效发行版的列表,请使用 'wsl.exe --list --online'。

        选项:
            --enable-wsl1
                启用 WSL1 支持。

            --fixed-vhd
                创建固定大小的磁盘来存储发行版。

            --from-file <Path>
                从本地文件安装发行版。

            --legacy
                使用旧发行版清单。

            --location <Location>
                设置发行版的安装路径。

            --name <Name>
                设置发行版的名称。

            --no-distribution
                仅安装所需的可选组件,不安装发行版。

            --no-launch, -n
                安装后不要启动发行版。

            --version <Version>
                指定要用于新分发的版本。

            --vhd-size <MemoryString>
                指定用于存储发行版的磁盘的大小。

            --web-download
                从 Internet 而不是 Microsoft Store 下载发行版。

    --manage <Distro> <Options...>
        更改发行版特定选项。

        选项:
            --move <Location>
                将发行版移到新位置。

            --set-sparse, -s <true|false>
                将发行版的 VHD 设置为稀疏,从而允许自动回收磁盘空间。

            --set-default-user <Username>
                设置发行版的默认用户。

            --resize <MemoryString>
                将发行版的磁盘大小调整为指定大小。

    --mount <Disk>
        在所有 WSL 2 发行版中附加和装载物理磁盘或虚拟磁盘。

        选项:
            --vhd
                指定 <Disk> 引用虚拟硬盘。

            --bare
                将磁盘附加到 WSL2,但不要装载它。

            --name <Name>
                使用装入点的自定义名称装载磁盘。

            --type <Type>
                装载磁盘时要使用的文件系统(如果未指定)默认为 ext4。

            --options <Options>
                其他装载选项。

            --partition <Index>
                要装载的分区的索引(如果未指定)默认为整个磁盘。

    --set-default-version <Version>
        更改新发行版的默认安装版本。

    --shutdown
        立即终止所有正在运行的发行版和 WSL 2
        轻型实用工具虚拟机。

        选项:
            --force
                即使正在执行操作,也终止 WSL 2 虚拟机。可能导致数据丢失。

    --status
        显示适用于 Linux 的 Windows 子系统状态。

    --unmount [磁盘]
        从所有 WSL2 发行版中卸载和分离磁盘。
        如果在没有参数的情况下调用,则卸载和分离所有磁盘。

    --uninstall
        从此计算机卸载适用于 Linux 的 Windows 子系统包。

    --update
        更新适用于 Linux 的 Windows 子系统包。

        选项:
            --pre-release
                下载预发行版本(如果可用)。

    --version, -v
        显示版本信息。

用于在适用于 Linux 的 Windows 子系统中管理发行版的参数:

    --export <Distro> <FileName> [选项]
        将发行版导出到 tar 文件。
        文件名可以是 - for stdout。

        选项:
            --format <Format>
                指定导出格式。支持的值: tar、tar.gz、tar.xz、vhd。

    --import <Distro> <InstallLocation> <FileName> [选项]
        将指定的 tar 文件作为新发行版导入。
        文件名可以是 - for stdin。

        选项:
            --version <Version>
                指定要用于新分发的版本。

            --vhd
                指定所提供的文件是 .vhd 还是 .vhdx 文件,而不是 tar 文件。
                此操作在指定的安装位置创建 VHD 文件的副本。

    --import-in-place <Distro> <FileName>
        将指定的 VHD 文件作为新发行版导入。
        必须使用 ext4 文件系统类型设置此虚拟硬盘的格式。

    --list, -l [选项]
        列出发行版。

        选项:
            --all
                列出所有发行版,包括当前
                正在安装或卸载的发行版。

            --running
                仅列出当前正在运行的发行版。

            --quiet, -q
                仅显示发行版名称。

            --verbose, -v
                显示有关所有发行版的详细信息。

            --online, -o
                显示适合通过 'wsl --install' 安装的可用发行版列表。

    --set-default, -s <Distro>
        将分布版设置为默认值。

    --set-version <Distro> <Version>
        更改指定发行版的版本。

    --terminate, -t <Distro>
        终止指定的发行版。

    --unregister <Distro>
        取消注册发行版并删除根文件系统。

于是,我懵了。教程上没有显示这一步,然后就是疯狂搜索。不出人意料,没有找到和我一样的情况,教程都是顺顺利利的。

然后,我就去问D老师,D老师告诉我这种情况的出现,是因为我已经安装了wsl。

那么,我想我直接到第二步就好了,装对应版本的ubuntu.wsl, 教程上是在微软商店直接搜索Ubuntu20.04.6 LTS。不好意思,我微软商店打不开(历史原因,一直没处理,现在也不想花心思在这)。

我就去官网下载这个版本,地址是Ubuntu 20.04.6 LTS (Focal Fossa),下了对应wsl的。

然后就是怎么安装的问题了,我根据命令提示输入:

复制代码
wsl --import Ubuntu-20.04 E:\WSL\Ubuntu-20.04 E:\WSL\ubuntu-20.04.6-wsl-amd64.wsl --version 2

不出意料,失败,显示如下提示:

复制代码
WSL 2 需要更新其内核组件。有关信息,

根据提示,更新

复制代码
wsl --update

又失败了,提示

复制代码
正在安装: 适用于 Linux 的 Windows 子系统
请求的操作需要提升。        0.0%

在线更新,输入

复制代码
wsl --update --web-download

这次成功了,显示

复制代码
正在下载: 适用于 Linux 的 Windows 子系统
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。

继续安装Ubuntu

复制代码
 wsl --import Ubuntu-20.04 E:\WSL\Ubuntu-20.04 E:\WSL\ubuntu-20.04.6-wsl-amd64.wsl --version 2

这次显示成功,并且跳出了欢迎界面,如下(放小鞭庆祝这巨大的进展)

输入命令验证一下

复制代码
wsl --list

显示如下

复制代码
适用于 Linux 的 Windows 子系统分发:
Ubuntu-20.04 (默认值)