首页 > 系统相关 >Windows10 子系统 WSL 位置迁移问题_wsl --import 未指定的错误

Windows10 子系统 WSL 位置迁移问题_wsl --import 未指定的错误

时间:2024-05-19 13:00:19浏览次数:27  
标签:-- local sudo wsl WSL cuda 安装 usr

CSDN搬家失败,手动导出markdown后再导入博客园

最近想体验下世界上最好的 Linux 发行版 Win10(bushi),拿来深度学习炼丹,所以参考了在 WSL2 中使用 CUDA 提到的方法安装。

列举下遇到的问题:

1 Windows 预览版本没响应

按理说在设置 - 更新和安全 - Windows 预览体验计划里面注册后,就能直接更新 insider preview 版本的操作系统,但是我试了几次都没用,所以直接去微软官网下载 iso 镜像 https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso,在下拉框选择版本,注意要安装 cuda 的话英伟达要求 windows 版本为 Build 20145 或更高,所以选择 dev channel。

这里吐槽一下微软的服务器,下载真滴慢,不到 200k,而且下载链接有时限,好像是 12 小时,折腾了半天最后是用海外的 VPS 离线下载完转发回来的,Windows10_InsiderPreview_Client_x64_zh-cn_21286.iso。

![[output/attachments/a05f4facbd6a6e5ffe2e0138a664ed77_MD5.png]]

下载完直接安装即可,有几率失败回滚,多试几次。。。

使用镜像安装之后设置 - 更新和安全 - Windows 预览体验计划就会变成正常的状态。

2 CUDA on WSL 驱动安装

CUDA on WSL 驱动下载地址

https://developer.nvidia.com/cuda/wsl

根据自己的 GPU 类型(GeForce and Quadro) 选择对应的驱动。

我的台式机显卡是 2070s,就下载 GeForce 驱动。

不需要在 wsl 下安装 nvidia 驱动,windows 会自动为 wsl 安装 nvidia 驱动!

不需要在 wsl 下安装 nvidia 驱动,windows 会自动为 wsl 安装 nvidia 驱动!

不需要在 wsl 下安装 nvidia 驱动,windows 会自动为 wsl 安装 nvidia 驱动!

3 WSL2 安装

WSL2 的具体安装方法参看微软官方指南:适用于 Linux 的 Windows 子系统安装指南 (Windows 10),非常简单。

这里有个大坑,Ubuntu 是强制安装在 C 盘的,如果想长期用 wsl2 的话,绝大多数人的 C 盘容量肯定不够用。

为了把 wsl 转移到 E 盘,我找到了 LxRunOffline 这个工具,LxRunOffline 使用教程 - WSL 自定义安装、备份,里面提到可以直接将安装在 C 盘的 wsl 移动到任意位置。

但是在使用

wsl --terminate <DistritubtionName>  # 先关闭相关的分发,以免后续造成不必要的问题
wsl --export <DistributionName> <FileName>  # 导出Linux子系统
wsl --unregister Ubuntu-18.04  # 注销这个分发
wsl --import <DistributionName> <InstallLocation> <FileName>  # 导入/还原之前的分发版本

命令后报错,LxRunOffline 迁移 wsl 失败 Indicates that the directory trying to be deleted is not empty.

谷歌查到 LxRunOffline 项目的 Issue,https://github.com/DDoSolitary/LxRunOffline/issues/150,发现是 win 某个版本更新后出现了这个问题。

查了半天发现 wsl 本身就有备份还原的功能,Windows10 Linux 子系统安装 / 迁移到非系统盘提到

sudo apt update
sudo apt install build-essential

重新导入后的 Linux 分发版不再以 APP 的形式出现于开始菜单中:

这样操作以后不能像原来一样在开始菜单点击图标启动此 Linux 分发,其他并未改变。可以通过 wsl -s Ubuntu 命令、Windows terminal 程序等方式启动。或者将其设为默认分发版,通过 wsl、bash 启动。

另一方面,不能像原来那样在应用商店里更新。

不存在原来那样的 Ubuntu804.exe 这样的命令。

实际上我操作后发现重新导入的 Linux 分发版跟 Windows 商店下载的完全一样,没有任何变化(没试过能不能在商店更新) ,可以直接通过开始菜单点击图标启动。

当然这么修改之后启动 Linux 是默认用 root 账户的,可以通过以下步骤来改成普通用户:

查看用户 UID ,一般是 1000

tar -zxvf cudnn-11.2-linux-x64-v8.1.0.77.tgz
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-11.0/lib64/
sudo cp  cuda/include/cudnn.h /usr/local/cuda-11.0/include/

然后在 PowerShell 中使用 LxRunOffine 直接修改默认用户

sudo chmod a+r /usr/local/cuda-11.0/include/cudnn.h 
sudo chmod a+r /usr/local/cuda-11.0/lib64/libcudnn*

4 安装 cuda

直接去英伟达官网下载想用的版本,这里建议选择 run 文件,简单方便。

如果安装 cuda 的时候报错,一般是缺少编译环境,用下面命令安装后重试。

cd /usr/local/cuda/samples/4_Finance/BlackScholes
sudo make
./BlackScholes

![[output/attachments/f6f8b3a999421d8700872fe33d09346f_MD5.png]]

cuda 安装完之后,一定会显示 Driver not selected,正常。

5 安装 cuDNN

其实后面的就跟普通的 Linux 安装 TensorFlow-GPU 一样了。

下载 cuDNN,https://developer.nvidia.com/cudnn

tar -zxvf cudnn-11.2-linux-x64-v8.1.0.77.tgz
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-11.0/lib64/
sudo cp  cuda/include/cudnn.h /usr/local/cuda-11.0/include/

设置读写权限

sudo chmod a+r /usr/local/cuda-11.0/include/cudnn.h 
sudo chmod a+r /usr/local/cuda-11.0/lib64/libcudnn*

要验证的话,去 cuda 安装目录下面编译一个 sample 即可。

cd /usr/local/cuda/samples/4_Finance/BlackScholes
sudo make
./BlackScholes

出现 Test Passed

![[output/attachments/9a90dc1596f824ebb4c90d18d7bdd4a4_MD5.png]]

6 后续

再然后就是熟悉的套路了,要么安装 anaconda,要么用 docker,常规操作。

标签:--,local,sudo,wsl,WSL,cuda,安装,usr
From: https://www.cnblogs.com/algorithmSpace/p/18200239

相关文章

  • x64 环境下_findnext() 函数报错——0xC0000005: 写入位置 0xFFFFFFFFDF47C5A0 时发生
    CSDN搬家失败,手动导出markdown后再导入博客园最近在搞单目相机位姿估计,相机标定参考了【OpenCV3学习笔记】相机标定函数calibrateCamera()使用详解(附相机标定程序和数据)提供的代码。/*@paramFile_Directory为文件夹目录@paramFileType为需要查找的文件类型@param......
  • pytorch 踩坑,TypeError: expected seqence object with len>_0 or a single integer_typ
    CSDN搬家失败,手动导出markdown后再导入博客园在看Faster-R-CNN复现代码(https://blog.csdn.net/weixin_44791964/article/details/105739918)的时候,发现推理阶段报错,Dataparallel无法gather参考https://discuss.pytorch.org/t/nn-dataparallel-typeerror-expected-sequence......
  • 测试仔的开发者日记:做了近俩月的开发感受.......
    写在前面在大约一个月前,我在掘金上发了《我一个测试仔,做了20多天开发的感受......》这样一篇文章。在文末我看到了很多评论,虽然,我没有给出任何回应,但每一条评论都有认真看,真的很感谢每一位朋友的关注。向钱看齐,向钱看这是评论区中,很多人的看法,都是本着自身利益最大化原则,一......
  • pytorch 转 tensorRT 踩的几个小坑_tensorrt engine set up failed
    CSDN搬家失败,手动导出markdown后再导入博客园1、版本不匹配[E][TRT]Layer:Where_51'soutputcannotbeusedasshapetensor.[E][TRT]Networkvalidationfailed.[E]Enginecreationfailed.[E]Enginesetupfailed.这实际是由于pytorch与TensorRT版本不匹......
  • scipy_optimize_curve_fit 拟合多维曲面问题_scipy leastsq 拟合曲面
    CSDN搬家失败,手动导出markdown后再导入博客园在做模板匹配算法过程中,想要通过拟合高斯曲面的方式实现亚像素精度。初始代码如下#创建一个函数模型用来生成数据deffunc1(x,a,b,c,d):r=a*np.exp(-((x[0]-b)**2+(x[1]-d)**2)/(2*c**2))......
  • Visual Studio 2015 编写 CUDA 关键字高亮并自动补全_cuda vs 波浪线
    CSDN搬家失败,手动导出markdown后再导入博客园第一步,是在vs2015里面设置vc++文件支持.cu;cuh;文件。方法:工具->选项->文本编辑器->文件扩展名。得到如图所示的界面:注意,在右侧可以添加vc++类型的文件扩展名,这是我的设置效果,操作就不用细说了。![[output/attachme......
  • opencv imshow 函数显示 float64 格式错误_cv2_imshow float
    CSDN搬家失败,手动导出markdown后再导入博客园在模拟高斯光斑的过程中,手动生成了下图所示的图像,使用cv2.imwrite()函数保存正常。![[output/attachments/fa4dbbeff2a5a1f2f99acd241f220fc7_MD5.png]]然而在使用cv2.imshow()函数显示时却出现错误![[output/attachments/e80ba8......
  • Python 实现任意多边形的最大内切圆算法_任意多边形最大内切圆算法
    CSDN搬家失败,手动导出markdown后再导入博客园参考Matlab计算轮廓内切圆初衷是为了求裂缝的最大宽度![[output/attachments/5ecf17abcb54aaa4fb35b00c3f243f32_MD5.png]]直接上代码importrandomimportcv2importmathimportnumpyasnpfromnumpy.maimportcos,......
  • Narrative writing revision
    ThestoryIchoose:TheLittleMatch-GirlThepointofviewofthestory:ThirdpersonpointofviewNewpointofview:FirstpersonpointofviewScript:ThatwasaChristmasEvewithheavysnow.Iwanderedonthestreet,tryingtosellmymatches.“Matc......
  • Python opencv 将一张图片任意 N 等分并保存_opencv 等分图像
    CSDN搬家失败,手动导出markdown后再导入博客园importcv2src=cv2.imread('100_0124_0013_pre_disaster.JPG',-1)cnt=1num=1sub_images=[]sub_image_num=4src_height,src_width=src.shape[0],src.shape[1]sub_height=src_height//sub_image_numsub_wi......