Windows 10 开启子系统Ubuntu
阅读原文时间:2023年08月29日阅读:4
# 查看已安装的wsl子系统
wsl --list
# 依次删除wsl 子系统
wsl --unregister <子系统名称>

结果

在Microsoft Store中搜索Ubuntu,选择对应版本安装。安装完成后,不要直接点开

安装完成后,不要直接点击打开

直接安装默认安装在C盘,后续要在Ubuntu系统装很多东西,会影响性能,所以需要将系统的安装位置修改一下。

控制台切换到子系统默认安装目录:C:\Program Files\WindowApp\

cd C:\\Program Files\\WindowApp\\

找到Ubuntu2004.exe 目录

dir Canonical #按tab键切换目录查看

在想要安装的位置创建文件夹,然后将ubuntu2004.exe所在的目录复制到创建的目录下。

mkdi G:\ubuntu\20.04 #请将目录改为自己需要的目录
cp .\CanonicalGroupLimited.Ubuntu20.04所在目录\* G:\ubuntu\20.04 #Ubuntu20.04的目录需要补全

在自定义安装目录下,找到exe文件,双击打开。Ubuntu子系统会开始进行初始化。

每次启动子系统时候,会自动分配给子系统一个IP地址,这样会导致一些操作需要重新修改IP地址,如GitLab的地址。

创建一个bat文件,将如下脚本保存到文件中

@echo off
setlocal enabledelayedexpansion

::先停掉wsl实例
wsl --shutdown ubuntu
::重新拉起来,并且用root的身份,启动docker服务
wsl -u root service docker start | findstr "Starting Docker" > nul # 不安装Docker会报错,可以先注释掉
if !errorlevel! equ 0 (
    echo docker start success
    :: 看看我要的IP在不在
    wsl -u root ip addr | findstr "171.168.0.109" > nul
    if !errorlevel! equ 0 (
        echo wsl ip has set
    ) else (
        ::不在的话给安排上
        wsl -u root ip addr add 171.168.0.109/24 broadcast 171.168.0.0 dev eth0 label eth0:1
        echo set wsl ip success: 171.168.0.109
    )

    ::windows作为wsl的宿主,在wsl的固定IP的同一网段也给安排另外一个IP
    ipconfig | findstr "171.168.0.100" > nul
    if !errorlevel! equ 0 (
        echo windows ip has set
    ) else (
        netsh interface ip add address "vEthernet (WSL)" 171.168.0.100 255.255.255.0
        echo set windows ip success: 171.168.0.100
    )
)
pause

由于该脚本需要Administration权限运行,可以在桌面创建快捷方式,修改快捷方式的打开方式用管理员权限打开。

参考链接:

  1. Win10自定义路径位置安装WSL2 (Ubuntu 20.04)
  2. https://zhuanlan.zhihu.com/p/357050093