(全网最完整)windows安装wsl进行深度学习训练

1 准备工作


1.1 安装wsl

安装包下载指令如下,可以将以下指令写成bat并执行:

<!-- 下载 wsl 安装包 -->
curl https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -O wsl_update_x64.msi 
<!-- 安装 wsl 安装包 -->
msiexec .\wsl_update_x64.msi
<!-- 将wsl2设置为默认版本 -->
wsl --set-default-version 2

1.2 安装Ubuntu

以下安装可选任意一种


1.2.1 安装包安装

<!-- Ubuntu 安装包 -->
curl -L https://aka.ms/wslubuntu2004 -O Ubuntu.appx
<!-- 安装 Ubuntu -->
Add-AppxPackage .\Ubuntu.appx

1.2.2 Microsoft Store安装

打开Microsoft Store并在搜索栏搜索Ubuntu,选择以下任意一个版本安装


安装完成后,打开cmd,输入:wsl -l -v
显示如下,证明正确安装了wsl2版本的Ubuntu


1.2 下载安装Docker-desktop

点击进入Docker-desktop官网下载并安装


2 配置

以上三个安装包安装完毕后进入配置


2.1 Ubuntu配置


2.1.1 安装位置(可选)

默认情况下Ubuntu安装在C盘,会生成一些*.vhdx文件,这些文件会随着在操作系统内的一系列操作而扩大,且扩大后,无法缩小,建议安装在C盘以外的位置,安装可以采用以下安装方式:

参考章节1.2.1,在下载完安装包后,将*.appx改为*.zip,并解压,参考以下dos指令

Rename-Item .\Ubuntu.appx Ubuntu.zip
Expand-Archive .\Ubuntu.zip -Verbose

在解压后的文件夹内会有一个*.exe文件,这个文件即为系统入口,将整个文件夹放置在其他盘下,即可


2.1.2 登录配置

点击*.exe或者在cmd中输入:wsl 即可进入系统,在第一次进入系统时,需要设置登录账号密码,设置完成,即可,如下图
在这里插入图片描述


2.2 IP配置 (重要)

wsl系统在每次重启后都属于重新启动,此时windows会随机分配一个IP,若不将IP固定,那么无法利用ssh访问wsl的系统
进入Ubuntu系统内,输入:

sudo apt update
sudo apt remove openssh-server
sudo apt install openssh-server

将ssh服务重新安装后:

sudo vi /etc/ssh/sshd_config

# 将以下选项修改并去除注释:

Port 22                     -> Port 2222                   
AddressFamily inet          -> AddressFamily inet        
ListenAddress 0.0.0.0       -> ListenAddress 0.0.0.0     
LoginGraceTime 2m           -> LoginGraceTime 120        
PermitRootLogin no          -> PermitRootLogin yes       
PasswordAuthentication no   -> PasswordAuthentication yes

# 保存修改并执行以下指令,使配置生效

sudo service ssh restart

输入ip addr show eth0 获取当前的IP信息,如下图:

在这里插入图片描述

记下两个信息172.27.150.141/20172.27.159.255下面会用到
打开windows系统的 控制面板\网络和 Internet\网络连接,可以看到多出来一个vEthernet网卡,此网卡为wsl的虚拟网卡,查看IPV4属性,如下图:
在这里插入图片描述

记下当前IP,比如现在的IP为172.27.144.1
然后修改启动文件,可以是~/.bashrc 或者/etc/profile

vi /etc/profile

# 添加以下信息到文件结尾:

if [ "$(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | head -n 1)" != "172.27.150.141/20" ];
then
        sudo ip addr del $(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | head -n 1) dev eth0
        sudo ip addr add 172.27.150.141/20 broadcast 172.27.159.255 dev eth0
        sudo ip route add 0.0.0.0/0 via 172.27.144.1 dev eth0
fi

将记下的三个信息,按上面的填进去,然后保存退出,执行source ${file}(其中${file}为修改的文件),使配置生效
执行ping baidu.com 看能否连接外网
确定能连接外网后,需要将wsl的端口映射到windows上才能进行利用ssh访问
新建一个bat文件,将以下内容写入:

set list=2222 10000
for %%i in (%list%) do (
    echo %%i
    netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=%%i connectaddress= 172.27.150.141 connectport=%%i
    netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=%%i
)
pause

其中list变量是需要映射的端口
保存后,右键点击以管理员身份运行即可
完成以上设置后,再次在Ubuntu内执行ping baidu.com 看能否连接外网


2.3 nvidia配置

wsl内部调用的nvidia路径与正常安装的linux系统不一致,只需要建立一个软链接即可

sudo ln -s /usr/lib/wsl/lib/nvidia-smi /usr/bin/nvidia-smi

此时再输入nvidia-smi就可以正常显示了


2.3 Docker 配置

打开安装好的docker desktop,打开settings,如下图,确认general设置用wsl引擎
在这里插入图片描述

点击docker engine将里面的设置改为以下json:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "default-runtime": "nvidia",
  "experimental": false,
  "runtimes": {
    "nvidia": {
      "path": "nvidia-container-runtime",
      "runtimeArgs": []
    }
  }
}

设置以上json是为了支持nvidia-docker2,其中nvidia-docker2docker有什么区别可以自行搜索
点击resources->wsl integration,页面会显示已经安装过的linux发行版,将步骤3的开关打开,并点击右下角apply & restart,即可将docker服务安装到Ubuntu内
在这里插入图片描述
切换到Ubuntu下,输入docker ps
如果没问题就会出现以下显示:
在这里插入图片描述

至此,搭建结束。

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值