Windows上指定盘符-安装WSL虚拟机(机械硬盘)
参考来自于教程1:史上最全的WSL安装教程 - 知乎 (zhihu.com)
https://zhuanlan.zhihu.com/p/386590591#%E4%B8%80%E3%80%81%E5%AE%89%E8%A3%85WSL2.0
教程2:Windows 10: 将 WSL Linux 实例安装到 D 盘,做成移动硬盘绿色版也不在话下 - 知乎 (zhihu.com)
https://zhuanlan.zhihu.com/p/525955480
cmd打开powershell启用功能——适用于 Linux 的 Windows 子系统
输入
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

接下来检查WSL2的要求:win+R打开运行,然后输入
winver
检查windows版本——此版本需要大于1903——我的内部版本为19045.3803是符合要求的

下一步是启用虚拟化:以管理员打开powershell输入下列命令
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

下载WSL2 Linux内核升级包(适用于x64)
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi并安装
打开微软——Microsoft Store,搜索——WSL Linux


点击蓝色 “获取” ,等待下载完成、蓝色按钮变为 [Launch]。

网络问题,科学解决即可

等待其下载完成

出现 “打开”按钮后,先不要点击打开,而是转到 C:\Program Files\WindowsApps , cmd进入该路径,敲
dir /od
查看多出了哪些子目录。


发现多出了三个,目录名里头带有 Ubuntu22.04 字样。用 Explorer 检查一下它们各自的内容,名字里有 neutral 字样的那两个文件夹,内容就几百 KB, 估计是无关紧要的东西,先不理会它们。
剩下的那个,尺寸有 542MB,这就是我们需要的离线安装包了。点击查看——排序方式——修改日期排序


如果剪切不了,出现如下博客中的权限情况,可参考如下(此外,还可以考虑使用复制,复制不需要权限即可完成)删除文件夹时需要SYSTEM权限,简单解决_需要system权限才能删除怎么解决-CSDN博客
https://blog.csdn.net/weixin_43849277/article/details/107919266

现在将此中内容全部选中,拷贝到 D:\WSL-Ubunut-22.04 中,该目录将成为此 WSL 实例的永久栖息地。
【STEP 3】 执行 WSL 实例安装程序。
此处科普一下,以关于是以WSL1 模式还是 WSL2 模式来使用这份 Ubuntu 。
- 选择 WSL1 (需要 Win10.1709),Linux 的文件系统将出现于宿主机的 D:\WSL-Ubunut-22.04\rootfs 文件夹中,Linux 的文件将直接呈现在 NTFS 文件系统中,一份典型的 Linux 基础安装,文件数能达到 30000+ 。
- 选择 WSL2 (需要 Win10.2004),其本质是让 Linux 运行在一个虚拟机中,虚拟机中运行着真正的 Linux 内核,Windows 将创建 D:\WSL-Ubunut-22.04\ext4.vhdx 虚拟磁盘文件来存放 Linux 的文件系统。这种模式更接近真实的 Linux 行为,与 Windows 宿主机的隔离也更彻底。
两种模式各有优劣。我更喜欢 WSL1,因为它真是个创新;用 WSL2 的话,不如 VMware Workstation 里头安装 Linux VM 那般明明白白 ,比如随意做快照之类。
以下两个命令可以选择“新建 WSL 实例时所采用的 WSL 模式”:
wsl --set-default-version 1
wsl --set-default-version 2
我选择的的是version1的安装方式,接下来双击这个ubuntu2204.exe就可以开始安装,输入用户名和密码即可。

如果不按顺序就会报错——发现报错了
已经创建出来的 WSL 实例,不受 --set-default-version 的影响。 已经创建出的 WSL 实例,得用 --set-version 才能切换(非常费时,因为要将 Linux 的大量细碎文件拷入或拷出 vhdx)。
现在双击 "D:\WSL-Ubuntu-22.04\ubuntu2204.exe" ,开始安装这份实例。


参考以下解决方案:
关于windows安装wsl,出现WslRegisterDistribution failed with error: 0x8007019e The Windows Subsystem错误的解决方案-CSDN博客
https://blog.csdn.net/qq_37109456/article/details/109669455
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
然后电脑会重启,点击Y重启电脑,

wsl --set-default-version 1

再次运行Ubuntu2204.exe,发现可以成功运行

【清理】
第一处,刚才蓝色“安装”按钮出现的时候,从 Microsoft Store 的角度看,Ubuntu 22.04 已经是“安装在我们的电脑上了”,因此,开始菜单中能够看到 Ubuntu 22.04 快捷方式。但这东西对我们已经没用了,可以卸载。

此处 Uninstall 的作用,主要是将 C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu22.04LTS_2204.0.9.0_x64__79rhkp1fndgsc 整个目录清除,节省 C 盘空间。
第二处, D:\WSL-Ubuntu-22.04 中的 install.tar.gz 可以删除,因为它的内容已经解压到 rootfs 或是 ext4.vhd 中了。
如果你愿意用 wsl -d 来启动这份 WSL 实例(最后一节谈及),那么 ubuntu2204.exe 跟它旁边的一干原始安装包文件也可以删除。
前进一步,安装到移动硬盘
这是为了让我们的 WSL 实例变成可移动的绿色版,想插到哪台机器上用就插到哪台机器上用。
需要一些铺垫知识,让我们看看,刚才安装到 D 盘的动作,在系统中留下来哪些印迹。一个 Windows 软件,能在系统中留下的印迹,无非是两大类,一是创建/修改了哪些文件,二是创建/修改了哪些注册表项。
WSL Ubuntu 创建的文件刚才已经展示过,主要是 D:\WSL-Ubuntu-22.04\rootfs 或 D:\WSL-Ubuntu-22.04\ext4.vhdx 。
注册表方面,确实也留了一份印迹。在注册表节点 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss] 中,我们发现多出来一个 GUID subkey,以我的实验机为例,GUID 值是 {3d4e7ad0-63ee-40c8-9fad-a7c7e0260039} ,在你的机器上肯定不同,因为此处 GUID 值是随机生成的。今后多安装一份 WSL 实例,就会多出一个 GUID subkey,只要两个 GUID 值不同,在 WSL 引擎的眼中,就是两份不同的 WSL 实例。
将分发版版本设置为 WSL 1 或 WSL 2
在命令行或powershell中输入
wsl --list --verbose
wsl -l -v
可以查看ubuntu现在的状态以及使用的wsl的版本,正常情况刚安装的都是版本1,我这里是设置为2了。

WSL 2 需要更新其内核组件_wsl 2 需要更新其内核组件。-CSDN博客
https://blog.csdn.net/littlehaes/article/details/104879476Manual installation steps for older versions of WSL | Microsoft Learn
https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package
进入如上的卡片指向的地址下载msi文件即可


点击finish结束安装

再次执行发现成功了——从wsl1到wsl2
设置WSL默认以root用户登录
首先设置root用户密码
在ubuntu中输入
sudo passwd root
1
输入当前用户密码,再输入两次root用户密码。
然后再cmd或powershell中输入(不要在ubuntu终端输入,会无法识别失效的——command not found)

.\ubuntu2004.exe config --default-user root

此时成功进入了ROOT用户,然后

windows与ubuntu之间文件互相访问与磁盘挂载
云端服务器,访问linux中的文件可以通过samba来实现,在虚拟机中还可以创建共享文件夹。现在使用wsl,十分简单。
首先ubuntu访问windows的文件,在/mnt目录下,你会发现你的c盘、d盘等等都被自动挂载上了,可以随意访问。
在windows中访问ubuntu的文件,首先在ubuntu中运行下面这条命令:
explorer.exe .
注意,那个点,或者写其他任意目录都行,但是一定要有一个目录。
这时候windows就会打开这个文件夹。

然后点地址栏里的wsl$,然后右键点击,映射网络磁盘驱动器


到这里大家有没有发现,刚才执行的explorer.exe是windows的资源管理器程序,当然这并不是说linux里面可以执行windows的程序,这里ubuntu只是把命令交给了windows,还是windows来执行的。继续尝试你还会发现,其他的windows程序都可以在ubuntu里面启动,当然了,都是交给windows运行的,而且还能发现,ubuntu的PATH环境变量的值包含了windowsPATH的全部内容。
至此,磁盘映射挂载完成,然后我们不难发现——之前的用户是有颜色的,现在root没有颜色,直接用之前用户家目录下的.bashrc替换掉root目录下的.bashrc文件即可解决。

复制这个映射磁盘Z盘的home目录下的之前的用户名文件夹——然后将这个.bashrc复制替换root文件夹下的.bashrc文件即可。

win10安装wsl2和图形化界面_win10 wsl2 图形界面-CSDN博客
https://blog.csdn.net/CGGlove/article/details/118115262
安装图形化界面
虽然真正用linux的人基本都是使用命令行,但是对于这个wsl安装图形化界面还是很好奇的。
在网上找了一下,一种是安装ubuntu-desktop桌面,另一种是安装xfce4桌面。第一种安装失败,所以我采用的是xfce4桌面
首先在windows上安装ximg,

下载地址https://sourceforge.net/projects/xming/ 或 https://xming.en.softonic.com/
然后运行XLaunch
四种风格,推荐最后一个,Dispaly number填写数字0即可



更换镜像源——前往Z:\etc\apt\sources.list全选替换为如下内容
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

至此镜像源更换完成
apt install xfce4-terminal
apt install xfce4
TrobleShooting报错解决:
如果不按顺序就会报错——发现报错了
已经创建出来的 WSL 实例,不受 --set-default-version 的影响。 已经创建出的 WSL 实例,得用 --set-version 才能切换(非常费时,因为要将 Linux 的大量细碎文件拷入或拷出 vhdx)。
现在双击 "D:\WSL-Ubuntu-22.04\ubuntu2204.exe" ,开始安装这份实例。


参考以下解决方案:
关于windows安装wsl,出现WslRegisterDistribution failed with error: 0x8007019e The Windows Subsystem错误的解决方案-CSDN博客
https://blog.csdn.net/qq_37109456/article/details/109669455
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
然后电脑会重启,点击Y重启电脑,

wsl --set-default-version 1

再次运行Ubuntu2204.exe,发现可以成功运行

找不到命令 ubuntu2004.exe,但它确实存在于当前位置。默认情况下,Windows PowerShell 不会从当前位置加载命令。如果信任此命令,请改为键入“.\ubuntu2004.exe”。有关详细信息,请参阅 "get-help about_Command_Precedence"。

安装过程踩坑——window10/11 安装 ubuntu20.04 提示 系统找不到指定的文件_ubuntu系统找不到指定的文件-CSDN博客
https://blog.csdn.net/m0_51781401/article/details/123970768如果报错——不存在具有提供的名称的分布。
参考
PS C:\Users\Administrator> wsl --list
适用于 Linux 的 Windows 子系统分发版:
Ubuntu-20.04 (默认)
PS C:\Users\Administrator> wsl --unregister Ubuntu-20.04
wsl --set-version Ubuntu 2 不存在具有提供的名称的分布。-CSDN博客
https://blog.csdn.net/m0_46882426/article/details/126193344这样就可以了
遇见bug
wsl -l -v无反应解决办法_wsl 无响应-CSDN博客
https://blog.csdn.net/feinifi/article/details/129572652X server already running on display IP:0
\
WSL2启动xfce4端口被占用解决方法_/usr/bin/startxfce4: x server already running on d-CSDN博客
https://blog.csdn.net/weixin_46457456/article/details/125595277?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170263556216800180624775%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170263556216800180624775&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-125595277-null-null.142%5Ev96%5Epc_search_result_base6&utm_term=X%20server%20already%20running%20on%20display%20IP%3A0&spm=1018.2226.3001.4187Linux系统下解决“No protocol specified“报错-CSDN博客
https://blog.csdn.net/m0_57541899/article/details/123633305
ubuntu :X server already running on display XXXX - 知乎 (zhihu.com)
https://zhuanlan.zhihu.com/p/500734107
相关文章:
Windows上指定盘符-安装WSL虚拟机(机械硬盘)
参考来自于教程1:史上最全的WSL安装教程 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/386590591#%E4%B8%80%E3%80%81%E5%AE%89%E8%A3%85WSL2.0 教程2:Windows 10: 将 WSL Linux 实例安装到 D 盘,做成移动硬盘绿色版也不在话下 - 知乎 (z…...
ffmpeg实现视频的合成与分割
视频合成与分割程序使用 作者开发了一款软件,可以实现对视频的合成和分割,界面如下: 播放时,可以选择多个视频源;在选中“保存视频”情况下,会将多个视频源合成一个视频。如果只取一个视频源中一段视频…...
团体标准的十大优势
一、团体标准是什么 团体标准是指由社会团体(行业协会、联合会、企业联盟等)按照自己确立的制定程序,自主制定、发布、采纳,并由社会自愿采用的标准。简单的说,就是社会团体为了满足市场和创新需要,协调相…...
java spring boot 动态添加 cron(表达式)任务、动态添加停止单个cron任务
java spring boot 动态添加 cron(表达式)任务、动态添加停止单个cron任务 添加对应的maven <dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.3.0</version…...
sqlgun靶场漏洞挖掘
1.xss漏洞 搜索框输入以下代码,验证是否存在xss漏洞 <script>alert(1)</script> OK了,存在xss漏洞 2.SQL注入 经过测试,输入框存在SQL注入漏洞 查询数据库名 查询管理员账号密码 此处密码为MD5加密,解码内容如下 找…...
好用的 Markdown 编辑器组件
ByteMD bytedance/bytemd: ByteMD v1 repository (github.com) 这里由于我的项目是 Next,所以安装 bytemd/react, 阅读官方文档,执行命令来安装编辑器主体、以及 gfm(表格支持)插件、highlight 代码高亮插件…...
uniapp vite3 require导入commonJS 的js文件方法
vite3 导入commonJS 方式导出 在Vite 3中,你可以通过配置vite.config.js来实现导入CommonJS(CJS)风格的模块。Vite 默认支持ES模块导入,但如果你需要导入CJS模块,可以使用特定的插件,比如originjs/vite-pl…...
通义灵码用户说:“人工编写测试用例需要数十分钟,通义灵码以毫秒级的速度生成测试代码,且准确率和覆盖率都令人满意”
通过一篇文章,详细跟大家分享一下我在使用通义灵码过程中的感受。 一、定义 通义灵码,是一个智能编码助手,它基于通义大模型,提供代码智能生成、研发智能问答能力。 在体验过程中有任何问题均可点击下面的连接前往了解和学习。 …...
MySQL中的约束
约束概述 1.1 为什么需要约束 数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信…...
Leetcode 寻找重复数
可以使用 位运算 来解决这道题目。使用位运算的一个核心思想是基于数字的二进制表示,统计每一位上 1 的出现次数,并与期望的出现次数做比较。通过这种方法,可以推断出哪个数字重复。 class Solution { public:int findDuplicate(vector<i…...
大一新生以此篇开启你的算法之路
各位大一计算机萌新们,你们好,本篇博客会带领大家进行算法入门,给各位大一萌新答疑解惑。博客文章略长,可根据自己的需要观看,在博客中会有给大一萌新问题的解答,请不要错过。 入门简介: 算法…...
【AI大模型】ChatGPT模型原理介绍(上)
目录 🍔 什么是ChatGPT? 🍔 GPT-1介绍 2.1 GPT-1模型架构 2.2 GPT-1训练过程 2.2.1 无监督的预训练语言模型 2.2.2 有监督的下游任务fine-tunning 2.2.3 整体训练过程架构图 2.3 GPT-1数据集 2.4 GPT-1模型的特点 2.5 GPT-1模型总结…...
基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模
前言 本系列教程旨在使用UE5配置一个具备激光雷达深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博…...
C++竞赛初阶L1-15-第六单元-多维数组(34~35课)557: T456507 图像旋转
题目内容 输入一个 n 行 m 列的黑白图像,将它顺时针旋转 90 度后输出。 输入格式 第一行包含两个整数 n 和 m,表示图像包含像素点的行数和列数。1≤n≤100,1≤m≤100。 接下来 n 行,每行 m 个整数,表示图像的每个像…...
无线领夹麦克风哪个牌子好?西圣、罗德、猛犸领夹麦克风深度评测
如今短视频和直播行业蓬勃发展,无线领夹麦克风成为了许多创作者不可或缺的工具。然而,市场上的无线领夹麦克风品牌众多、质量参差不齐,为了帮助大家挑选到满意的产品,我作为数码测评博主,对无线领夹麦克风市场进行了…...
React Native 0.76,New Architecture 将成为默认模式,全新的 RN 来了
关于 React Native 的 New Architecture 概念,最早应该是从 2018 年 RN 团队决定重写大量底层实现开始,因为那时候 React Native 面临各种结构问题和性能瓶颈,最终迫使 RN 团队开始进行重构。 而从 React Native 0.68 开始,New A…...
Java并发:互斥锁,读写锁,Condition,StampedLock
3,Lock与Condition 3.1,互斥锁 3.1.1,可重入锁 锁的可重入性(Reentrant Locking)是指在同一个线程中,已经获取锁的线程可以再次获取该锁而不会导致死锁。这种特性允许线程在持有锁的情况下,可…...
客户端负载均衡Ribbon实例
文章目录 一,概述二,实现过程三,项目源码1. 源码放送:2. 部署方式 四,功能演示五,其他 一,概述 一般来说,提到负载均衡,大家一般很容易想到浏览器 -> NGINX -> 反…...
MySQL数据库负载均衡
数据库负载均衡是通过将数据库请求分散到多个数据库服务器上,以提高数据库的处理能力和可用性。在高并发的场景下,使用数据库负载均衡器可以有效避免单点故障,提高系统的整体性能和可靠性。 数据库负载均衡器 数据库负载均衡器可以是硬件设…...
达梦CASE_SENSITIVE参数解析
1. 参数含义 标识符大小写敏感,默认值为 Y。 当大小写敏感时,小写的标识符应用双引号括起,否则被转换为大写;当大小写不敏感时,系统不自动转换标识符的大小写,在标识符比较时也不区分大小写。 CASE_SENS…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
