赞
踩
cd /mnt/d/download
我用的win11,没怎么在意操作系统要求,直接就是满足的,貌似专业版和家庭版都可以。
控制面板->程序和功能->启用或关闭windows功能,打开三个项目:
安装wsl,在管理员权限的命令提示符环境下:
#开启Windows Subsystem for Linux
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestar
#开启虚拟机特性
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
wsl --status
wsl --version
在大多数情况下WSL2比1好,比如有完整的Linux内核等等。WSL1明显的好处只有一条:
从 Linux子系统中访问 windows 中的文件时,仍然是 WSL1 快。
推荐直接到Windows Store中直接搜,比如Ubuntu 20.04、或22.04等。
下载完毕后会出现图标,直接在点击即可启动,初次启动会提示新建用户密码啥的。
也可以用命令行通过网络安装,比如先列出可用的Linux发行版:
wsl --list --online
#或者
wsl --install
但我连接不上网站,参考其他文章,至少需要改DNS,我是直接科学上网了。
基本安装指令:
wsl --install <发行版名称>
列出已经安装的子系统:
wsl --list --verbose
#或
wsl -l -v
但是上述两种安装方法,对后续的维护貌似是有差别的:
#卸载实例
wsl.exe --unregister Ubuntu-20.04
这里没怎么做测试,可能用store安装之后,后续也需要unregister
默认的安装位置:
<用户文件夹>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_<随机数>
最后一段总之是CanonicalGroupLimited开头的、很长的一个名字。在里面可以找到以一个名为LocalState文件夹,里面有个会有一个几十GB的vhdx文件,这个应该就是虚拟磁盘了。
修改安装位置理论上有两种方式,一个是安装之前设定工作目录(还没测试):
wsl --cd <Directory>
或者采用后文介绍的快照回滚方法,在进行回滚(import)时,可以指定一个新的位置。
可以在开始菜单找图标,或者在命令行执行:
wsl -d Ubuntu-20.04
貌似直接在命令行写名字也能启动:
ubuntu2004
这应该是个可执行文件,但没找到在哪。
在ubuntu的shell环境下直接输入exit就可以退出来。
Error: 0x800701bc WSL 2 ??? https://aka.ms/wsl2kernel
需要在windows下载安装
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
Nvidia的下载界面如图所示:
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run
不建议用apt方式安装cuda toolkit,我试了一下版本只到11.5:
sudo apt install nvidia-cuda-toolkit
配置环境变量,编辑bashrc文件:
vim ~/.bashrc
在最后填写3行(注意路径中的版本号):
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-11.8
然后生效一下:
source ~/.bashrc
查看一下安装状态、版本等信息:
nvcc -V
或
nvidia-smi
或
cat /usr/local/cuda/version.json
#很多文章说查看的是version.txt,但至少11.8版本cuda没有这个文件,只有json,意思应该是一样的,json内容很多。
首先下载cudnn文件,建议直接下载对应的deb包。
WSL是能够直接访问windows目录的,直接从/mnt文件夹下面就是c、d等盘符,可以找到下载目录和文件。
在文件所在目录下执行:
sudo dpkg -i cudnn-local-repo-ubuntu2004-8.8.1.3_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/
#第二句是根据系统提示加的,我之后又运行了一遍dpkg,理论上不用
#这个更新一定执行一下
sudo apt-get update
然后执行三句话,暖它一整天:
sudo apt-get install libcudnn8=8.8.1.3-1+cuda11.8
sudo apt-get install libcudnn8-dev=8.8.1.3-1+cuda11.8
sudo apt-get install libcudnn8-samples=8.8.1.3-1+cuda11.8 (主要为了下面的测试)
注意下载的cudnn的实际文件名:
cudnn-local-repo-ubuntu2004-8.8.1.3_1.0-1_amd64.deb
其中8.8.1.3,以及结合实际的cuda版本11.8,这个信息一定要结合实际信息修改,否则找不到包。
比如,如果执行结果信息中有Unable、not found啥的,就是字符串没搞对:
E: Version ‘8.8.1.3_1.0-1+cuda11.8’ for ‘libcudnn8’ was not found
总之这里一定要好好看输出信息有没有不对劲的地方。
最后测试一下,首先建议执行:
sudo apt-get install libfreeimage3 libfreeimage-dev
否则下面编译时可能出现:
fatal error: FreeImage.h: No such file or directory
执行:
cp -r /usr/src/cudnn_samples_v8/ $HOME
cd $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN
正常情况下,应该一通输出之后显示
Test passed!
好不容易装好的,建议搞个快照备份一下:
在管理员权限的宿主机命令提示符下执行:
wsl --export Ubuntu-20.04 d:\downloda\wsl-ubuntu2004-20230626.tar
我没有关虚机。但貌似导出的时候自己退出来了,导出过程大概用了几分钟,出来一个17GB的tar文件,里面看上去就是文件目录格式,应该不包括内存状态。
回滚的方法(只总结了网上的教程,但不同版本教程基本都是这三步):
#先注销虚机
wsl --unregister Ubuntu-20.04
#然后回滚(中间参数为还原的位置,可能可以不设置,没测试过)
wsl --import Ubuntu d:\wsl d:\downloda\wsl-ubuntu2004-20230626.tar
#设置默认用户名(ubuntu2004 是系统默认给出的名字,这个没注意从哪里查)
ubuntu2004 config --default-user USERNAME
这个版本的ubuntu,自带的python是3.8,没有pip。建议装完上述内容,运行几次”sudo apt-get update“之后,再根据提示安装pip,麻烦会少一些。
直接在ubuntu环境下安装tensorflow,自动装的2.12,跑了个简单代码试了一下,确实能看出再跑GPU,可以直接在windows任务管理器做监控:
todo 貌似也是有办法的。
bcdedit
命令查看信息时,有一条信息是:
hypervisorlaunchtype Auto
如果不是,则可以执行:
bcdedit /set hypervisorlaunchtype auto
不知道是否是系统自动管理hyper-v的意思,这个没查到有什么具体影响,没问题可以先不管。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。