windows11配置wsl2虚拟linux环境
windows11配置wsl2虚拟linux环境
wsl( Windows Subsystem for Linux )是microsoft官方为windows开发的模拟Linux方法。避免了虚拟机vmware的性能损耗开销,或者双系统两者不能同时运行的问题。wsl2似乎可以满足大部分Linux需求。方便且优雅!
安装wsl2
安装方法
官方的介绍文档:
安装wsl只需要在windows终端输入一条指令
wsl --install
等待几分钟,会安装wsl工具和默认的Linux系统。
也可以指定安装的Linux系统
wsl --list --online //查看可安装的Linux版本
wsl --list --verbose //查看已安装Linux
wsl --install <Distro> //安装指定Linux版本
wsl --set-default <Distribution Name> //设置默认 Linux 发行版
通过wsl运行Linux
wsl --distribution <Distribution Name> --user <User Name> //运行特定的 Linux 发行版
可能的报错
无法运行Linux
安装完后,运行Linux,一般出现error 0x80370114。
需要在Windows中, “设置”->“应用”->“可选功能” , 下滑至菜单最下面,找到“更多windows功能”选项 。开启“适用于Linux 的Windows子系统”功能。
参考:
WIN11按照官方文档安装WSL2时出现error 0x80370114_半路杀出来的小黑同学的博客-CSDN博客
其他设置
迁移wsl位置
因为wsl默认是在C盘。出于空间问题,移动到d盘。
步骤是:导出系统 ——删除系统——导入系统并重新设置存储位置—— 修改默认登录用户
wsl --export Ubuntu D:\wsl\ubuntu.tar #即 wsl --export <系统名> <导出文件目录>
wsl --unregister Ubuntu #删除目录
wsl --import Ubuntu D:\wsl\Ubuntu D:\wsl\ubuntu.tar --version 2 # 即 wsl --import <系统名> <新的安装位置> <tar文件目录> WSL版本号
Ubunatu config --default-user <Username> //修改默认登录用户
参考:
通过WSL2搭建Pytorch1.10+CUDA11.4+NVIDIA Driver深度学习框架全过程 - 简书 (jianshu.com)
磁盘挂载
需要和系统盘不一样的磁盘(挂载不同分区不行)。这个没有配置。
Linux配置
apt换源
国内的镜像服务器,有 阿里源 ,清华源,中科大源。
apt镜像源配置文件是 /etc/apt/sources.list 。
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份
sudo vim /etc/apt/sources.list #编辑源配置文件
不同的Linux版本代号,需要用不同的源。不然后面在apt update和下载软件时,会出现各种问题。(update后有wrong,gedit下载不了,gcc下载后无法编译源文件,报错找不到stdio.h等,实际上是源问题导致下载不兼容的软件)

正常的话,reading后面是没有 wrong的。
查看系统代号
lsb_release -a #查看系统版本代号
uname -r #查看内核版本,内核不对可能也有问题

我的Ubuntu的发行版是jammy,下面的换源地址就不行,它的发行版是 bionic。可以直接把bionic 改为 jammy,懒的可以直接百度jammy的镜像源地址。
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
找到的jammy源。
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
卸载换源前下载的软件
sudo apt-get remove XXX
sudo apt-get update
环境配置
一般的话,用apt install 安装 g++,然后用vscode写代码,用Linux工具编译。
编译时需要的硬件驱动,是在物理机(Windows)下安装。
vscode配置
WSL插件
在vscode下载官方的WSL插件。现在已经改名叫WSL了。

连接方法1
vscode中,快捷键ctrl+shift+p,可以打开插件控制面板,调用插件功能,在WSL中重新打开文件夹。
这个的优点是可以打开Windows下的目录,对应的速度慢点。这种方法更灵活。

在终端通过指令方式编译程序并运行。

连接方法2
也可以在远程资源控制器中,选择WSL目标,进入ubuntu。

进入之后的界面如图
但是这个相当于进入了Linux目录中,只能在Linux中建立文件和目录,速度也快些。
其他问题
讲道理,应该是可以直接用vscode的运行按钮,直接编译文件的。但是要处理配置文件,而vscode的配置文件launch.json,我目前还是看不懂的。不然会更方便。
windows11配置wsl2虚拟linux环境的更多相关文章
- keras安装配置指南【linux环境】【转】
本文转载自:https://keras-cn.readthedocs.io/en/latest/for_beginners/keras_linux/#kerasmnist 本教程不得用于任何形式的商业 ...
- linux环境下配置虚拟主机域名
linux环境下面配置虚拟主机域名 第一步:在root目录下面(即根目录)ls(查看文件)cd进入etc目录find hosts文件vi hosts 打开hosts文件并进行编辑在打开的文件最下面添加 ...
- LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2
LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2 你是否遇见过:安装LNMP1.3环境后,运行ThinkPHP 3.2,只能打开首页,不能访问控制器,报404错误. 按照 ...
- Linux下FTP虚拟账号环境部署总结
vsftp的用户有三种类型:匿名用户.系统用户.虚拟用户.1)匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous.2)本地用户登录:使用系统用户登录,在/etc/passwd中 ...
- 【云和恩墨】性能优化:Linux环境下合理配置大内存页(HugePage)
原创 2016-09-12 熊军 [云和恩墨]性能优化:Linux环境下合理配置大内存页(HugePage) 熊军(老熊) 云和恩墨西区总经理 Oracle ACED,ACOUG核心会员 PC S ...
- Linux下配置Hadoop伪分布式环境
1. 准备Linux环境 提示:我用的系统是CentOS 6.4. 1.0点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host- ...
- WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机
版本:win10系统 virtualbox:5.1.26 vagrant :1.9.7 centos 7.0 xshell/git 首先下载好对应版本的软件 配置vagrant和virtualbox ...
- linux环境配置nginx导致页面不刷新
在linux环境下,配置了nginx负载均衡,由于可能在虚拟主机的配置文件nginx.conf中,对缓存机制未配置成功,导致页面不刷新,仍然显示缓存中的内容. 最后通过注释nginx.conf文件中的 ...
- linux环境下jdk安装以及配置
linux 环境安装jdk和配置环境变量: (此处以root用户安装,此方式安装一台虚拟机装一个jdk即可,所有普通用户可以共用) 1.下载安装jdk 链接: https://pan.baidu.co ...
- 每日所学之自学习大数据的Linux环境的配置
今天开始配置环境,因为下载镜像文件需要很长时间,加上训练,所以Linux环境之配置了一半 VMware下载及安装教程(Window) 在安装虚拟机时需要下载镜像文件 下面是我下载的镜像文件的地址 Ce ...
随机推荐
- 2021-7-6 vue和axios使用get请求api实例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...
- 并发编程-CompletableFuture解析
1.CompletableFuture介绍 CompletableFuture对象是JDK1.8版本新引入的类,这个类实现了两个接口,一个是Future接口,一个是CompletionStage接口. ...
- Angular与AngularJS区别
简单介绍 目前 Angular 2 到現在 Angular 11 都是十分穩定的改版,不再出現之前 Angular 1.x 到 Angular 2.x 的哀鴻遍野. 因此目前市面上確實同時存在著兩種差 ...
- C++ 核心指南之 C++ P.哲学/基本理念(上)
C++ 核心指南(C++ Core Guidelines)是由 Bjarne Stroustrup.Herb Sutter 等顶尖 C+ 专家创建的一份 C++ 指南.规则及最佳实践.旨在帮助大家正确 ...
- 【解惑】介绍.net中的DataTable的AcceptChanges方法
DataTable.AcceptChanges方法是一个用于DataTable对象的方法,它将所有对DataTable进行的更改标记为已接受.这意味着所有新增.修改和删除的行都将被标记为DataRow ...
- Golang之旅——内存管理
转载放在最前 一文带你了解,虚拟内存.内存分页.分段.段页式内存管理[Golang三关-典藏版]一站式Golang内存洗髓经 | Go 技术论坛 刘丹冰Aceld感谢以上文章作者,收获满满 存储器管理 ...
- AVR汇编(七):位操作和MCU控制指令
AVR汇编(七):位操作和MCU控制指令 位操作指令 SBI / CBI SBI 指令用于设置I/O寄存器中的第 b 位, CBI 指令用于清除I/O寄存器中的第 b 位. 例如: SBI DDRB, ...
- Geotools实现shape文件的写入
众所周知Geotools作为开源的Java GIS三方库,已经成为GIS服务器端的主流开源库,其功能非常强大,涉及到GIS业务的方方面面,其中就包括GIS数据的读写,今天小编就借助Geotools来实 ...
- langchain中的LLM模型使用介绍
简介 构建在大语言模型基础上的应用通常有两种,第一种叫做text completion,也就是一问一答的模式,输入是text,输出也是text.这种模型下应用并不会记忆之前的问题内容,每一个问题都是最 ...
- JS遍历Json串并获取Key和Value
//data为json串 for (var key in data) { console.log(key); console.log(data[key]); }