升级Win10 安装ubuntu子系统、docker、nvidia-docker
1. 为什么升级Win10
据说Windows10内部版本低于20145时,WSL2无法使用GPU,就无法在ubuntu子系统下用GPU跑代码训练模型!
关于这点我没有验证!!
1.1 如何查看Win10版本
win + R,输入winver回车即可获得当前Windows版本号。
如图所示我的系统不满足最低版本要求需要更新。
1.2 更新Windows
那么如何更新系统以达到最低版本要求?其他博主通常的解决方法是:进入系统更新设置,参与Windows预览体验计划,选择Dev渠道,最后更新Windows。我按照上述操作进行更新,但不巧的是最近Win11发布,导致我的系统被直接升到了Win11。啊啊啊!难受的一匹,实在用不惯又回退了系统。
于是我只能另寻他法,在微软的官网里,我找到了预览版的下载地址,大家可以打开网址:https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso ,然后找到适合的系统版本进行下载(我选择的是第一个。注意:下载不对会被要求输入秘钥),最后按照说明本地升级即可。
升级之后我的系统版本达到了21354.1,满足最低版本要求。
2. 安装预览版nvidia驱动
下载地址:https://developer.nvidia.com/cuda/wsl
3. 确认开启适用于Linux的Windows子系统
打开“启用或关闭Windows功能”
4. 安装Ubuntu
管理员身份PowerShell执行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
执行完后重启电脑
将WSL2设置为默认版本,管理员PowerShell下执行
wsl --set-default-version 2
提示"WSL 2 需要更新其内核组件”。下载并安装 WSL2 Llinx内核
随后进入微软商店下载并安装对应的ubuntu版本【注意Ubuntu会被安装在C盘,打算在其他盘安装的小伙伴请参考该文(推荐手动安装):(WSL2安装ubuntu 20.04和更改默认安装位置)[http://www.oopswow.com/2021/01/06/WSL2-install-ubuntu20-and-change-the-default-installation-driver/]】
微软商店显示安装成功后,启动Ubuntu,Ubuntu将开始安装如下图所示:
验证是否将WSL2设置为默认版本,管理员PowerShell下执行
wsl --list --verbose
若显示如下则表示配置成功
卸载方法
在商店安装的ubuntu直接进入Win10应用管理内卸载即可
手动下载安装的Ubuntu,卸载操作如下:
wslconfig /l
# 从列表中选择要卸载的发行版(例如Ubuntu)并键入命令
wslconfig /u Ubuntu
5. 登录Ubuntu
直接开始菜单栏处,即可启动Ubuntu
6. 安装docker
一步步来
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
7. 安装nvidia-docker
7.1 安装cuda
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda-repo-ubuntu1804-11-1-local_11.1.0-455.23.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-11-1-local_11.1.0-455.23.05-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu1804-11-1-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
现在需要配置环境变量
vim ~/.bashrc
末尾添加两行:
export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
验证是否安装成功
nvcc -V
7.2 安装cuddn
下载cuddn,解压cudnn压缩包
tar -xzvf cudnn-x.x-linux-x64-v8.x.x.x.tgz
会生成一个cuda 文件夹
复制文件
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
更改权限
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
7.3 安装nvidia-docker【可不用安装】
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add - \
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
# 安装nvidia-docker2软件包并重新加载docker守护程序配置
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
# 重启docker
sudo service docker stop
sudo service docker start
查资料时才发现从docker 19版本之后,nvidia-docker成为了过去式。不需要单独去下nvidia-docker这个独立的docker应用程序,也就是说gpu docker所需要的Runtime被集成进docker中,使用的时候用--gpus参数来控制。人傻了
8. 安装桌面环境
Xfce4是一个轻量可高度定制的类-unix桌面环境,与wsl相性十分相符
xrdp支持rdp,是Windows原生支持的远程桌面协议,使用“远程桌面连接”即可连接到wsl桌面环境
安装Xfce4和xrdp
sudo apt update
sudo apt install xfce4 xrdp
更改xrdp配置
echo xfce4-session >~/.xsession
sudo vim /etc/xrdp/startwm.sh
#exec /bin/sh /etc/X11/Xsession(也就是最后一行) 前一行插入 xfce4-session
更改xrdp侦听端口
rdp默认侦听端口为3389,Windows 10本身已经占用(如果开启远程桌面的话),此处为了避免冲突我们更换一下监听端口
sudo vim /etc/xrdp/xrdp.ini
#将port=3389更改为3388或者其他可用端口
重启以使配置生效
sudo service xrdp restart
使用
打开windows远程桌面连接,地址填写localhost:3388即可
最后的最后
我放弃了这种方式,预览版有bug,电脑蓝屏好几次,还是老老实实双系统吧,或者等WLS2不在预览版下也能使用GPU的时候
参考
本文转载
https://blog.csdn.net/SUNbrightness/article/details/116783604
https://hanyuulu.github.io/wslDesktop