Windows 10 开启子系统Ubuntu

卸载原有的wsl 分发子系统

# 查看已安装的wsl子系统
wsl --list
# 依次删除wsl 子系统
wsl --unregister <子系统名称>

结果

wsl --list

wsl --list

安装子系统Ubuntu 20.04

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

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

直接安装默认安装在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子系统会开始进行初始化。
操作

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权限运行,可以在桌面创建快捷方式,修改快捷方式的打开方式用管理员权限打开。

设置wsl运行内存

由于wsl 运行时,比较耗费内存,影响在主系统的开发效率。因此,有必要限制一下wsl 的最大内存
%UserProfile%目录下,新建文件.wslconfig,将如下内容复制到文件中。

[wsl2]

memory=4GB # 可根据需要调整大小

参考链接:

  1. Win10自定义路径位置安装WSL2 (Ubuntu 20.04)
  2. https://zhuanlan.zhihu.com/p/357050093
  3. https://learn.microsoft.com/en-us/windows/wsl/wsl-config
posted @ 2023-06-19 14:15  古道瘦西风  阅读(565)  评论(0编辑  收藏  举报