WSL2安装配置

安装启用WSL2

官网写的很详细,可以去看看,中文的,旧版电脑看 这里,注意看官网右侧目录,他们更新的比加快,网址不一定完全准确

新版windows10系统

新版电脑(必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。)最好一句话安装

1
wsl --install

这个会默认wsl2

旧版windows10系统

无论新旧,都可以按照下面来

  1. 确保电脑最新版

    version 1903 or higher, with Build 18362 or higher.

  2. 启用虚拟机平台和 Linux 子系统功能

    • 管理员 权限启动 PowerShell,然后输入以下命令启用虚拟机平台:

      1
      dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

    • 以管理员权限启动 PowerShell,然后输入以下命令启用 Linux 子系统功能:

      1
      dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

  3. 安装linux内核 > 可能要重启电脑

    点我下载:WSL2 Linux kernel update package for x64 machines

  4. 设置WSL2

    注意,必须先设置版本

    1
    wsl --set-default-version 2

    查看版本

    1
    wsl -l -v

  5. 下载安装

    在自带的应用商店下载,搜索ubuntu,点击安装即可

启动与报错

设置用户名和密码

可能会遇到各种报错,比如boot没有开启虚拟机、比如C盘太小,文件被压缩了,等等,根据错误码,去看官网,中文的,官网更新的比较快,注意右侧目录

配置oh-my-zsh

不要再用bash了……,安装 zshoh-my-zsh

看这里

换源

有时候源有些问题,先更新再换源

1
sudo apt-get update && sudo apt-get upgrade -y
  • 备份

    1
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

  • 删除之前的内容,修改为以下内容

    1
    sudo vim /etc/apt/sources.list

    1
    2
    3
    4
    5
    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.lzu.edu.cn/ubuntu/ focal main restricted universe multiverse
    deb https://mirrors.lzu.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
    deb https://mirrors.lzu.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
    deb https://mirrors.lzu.edu.cn/ubuntu/ focal-security main restricted universe multiverse

  • 更新

    1
    sudo apt-get update && sudo apt-get upgrade -y

配置ssh(可选)

需要远程登录wsl的话,可以配置

  • 卸载重装

    1
    sudo apt remove openssh-client openssh-server && sudo apt install openssh-client openssh-server

  • 备份原始的 sshd_configssh_config

    1
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak && sudo cp /etc/ssh/ssh_config /etc/ssh/ssh_config.bak

  • 编辑 sshd_config

    1
    sudo vim /etc/ssh/sshd_config

    1
    2
    3
    Port 3008
    PermitRootLogin no # 如果你需要用 root 直接登录系统则此处改为 yes
    PasswordAuthentication yes # 将 no 改为 yes 表示使用帐号密码方式登录

  • 启动 ssh,查看 status,注意这里不能用 systemctl

    启动SSH服务

    1
    sudo service ssh start

    检查状态

    1
    sudo service ssh status

  • 对于wsl2

    注意!!!wsl2与windows10的ip不完全一样,官网看这里:概念-网络注意事项

    在wsl2里面运行,安装net-tools并显示ip,eth0:那一个ip

    1
    sudo apt install net-tools -y && ifconfig

    在windows的powershell(管理员权限)里面监听并转发端口

    1
    netsh interface portproxy add v4tov4 listenport=3008 listenaddress=0.0.0.0 connectport=3008 connectaddress=这里是wsl2的ip

    如果需要:

    查看这些转发端口

    1
    netsh interface portproxy show all

    删除这些转发端口

    1
    netsh interface portproxy delete v4tov4 listenport=3008  listenaddress=0.0.0.0

  • 防火墙

    有些版本电脑在运行ubuntu的ssh以后,可以直接弹出提示,允许即可,有些需要新建防火墙端口规则,安装火绒等管家,windows10安全中心无法点击,请到 控制面板\系统和安全\Windows Defender 防火墙,左侧高级设置入站规则,端口设置其余默认即可

开机自启:ssh 和 cron

可选,只是方便而已

  • wsl中添加脚本

    1
    sudo vi /etc/init.wsl

    1
    2
    3
    4
    5
    #!/bin/sh
    # Filename: /etc/init.wsl
    # Usage: sudo /etc/init.wsl [start|stop|restart]
    /etc/init.d/cron $1
    /etc/init.d/ssh $1

    注意可执行权限

    1
    sudo chmod 777 /etc/init.wsl

  • windows开机启动

    进入自启目录(ctrl R)

    1
    shell:startup

    新建文件startubuntu.vbs

    1
    2
    Set ws = CreateObject("WScript.Shell")
    ws.run "wsl -d ubuntu -u root /etc/init.wsl start", vbhide

防止windows环境变量污染

  • wsl中添加脚本

    1
    sudo vi /etc/wsl.conf

    1
    2
    3
    4
    5
    6
    7
    # 不加载Windows中的PATH内容
    [interop]
    appendWindowsPath = false

    # 自动挂载Windows系统所有磁盘分区,默认就是true
    [automount]
    enabled = true

定时任务

cron已经在前面的开机自启中自启

1
*/2 * * * * . /root/.zshrc;/root/admin/loginLzuNet/file/authentication_new.sh

. /root/.zshrc; 添加环境变量,尤其是root里面,如果是普通用户,修改对应目录 . /home/用户名/.zshrc;

上面这样设置环境变量,有些电脑上好像不对,可以如下:

1
*/2 * * * * /root/admin/loginLzuNet/file/authentication_new.sh

注意着脚本,777权限,以及/bin/zsh,并且环境变量放在这个脚本里

1
2
3
#!/bin/zsh
source /root/.zshrc
/opt/anaconda3/bin/python /root/admin/loginLzuNet/authentication_new.py

Vscode

使用vscode访问wsl吧,扩展搜索 wsl 即可,看 官网这里,官网网址可能变,注意官网右侧目录,在 教程-vscode入门

GPU加速

cuda

常用的的cuda是不支持wsl的,需要去官网下载特定的,并且注意cuda,并且windows需要最新版,以前是内测版

最近cuda官网更新了,不需要特定的cuda了,看 这里

cuda wsl2

用如图选的那个,网络的安装的,因为这个方便更新,平时 apt update 时会随着更新

最下面那些命令,依次输入到wsl2的终端运行就可以了

进一步的环境变量和安装测试,参考ubuntu的

cudnn

tensorflow还需要这个,这个也可以直接下载,下载 deb 安装包的那个,点我:cuDNN Runtime Library for Ubuntu20.04 x86_64 (Deb)(需要登录),然后

1
sudo apt install *.deb

千万不要用网上说的复制的那种,很麻烦,如果你用ubuntu18.04(还是用20.04吧),deb包下载对应18.04的


本文作者:yuhldr
本文地址: https://yuhldr.github.io/posts/58249.html
版权声明:转载请注明出处!