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…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...

基于单片机的宠物屋智能系统设计与实现(论文+源码)
本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢,连接红外测温传感器,可实时精准捕捉宠物体温变化,以便及时发现健康异常;水位检测传感器时刻监测饮用水余量,防止宠物…...

STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
boost::filesystem::path文件路径使用详解和示例
boost::filesystem::path 是 Boost 库中用于跨平台操作文件路径的类,封装了路径的拼接、分割、提取、判断等常用功能。下面是对它的使用详解,包括常用接口与完整示例。 1. 引入头文件与命名空间 #include <boost/filesystem.hpp> namespace fs b…...

HTTPS证书一年多少钱?
HTTPS证书作为保障网站数据传输安全的重要工具,成为众多网站运营者的必备选择。然而,面对市场上种类繁多的HTTPS证书,其一年费用究竟是多少,又受哪些因素影响呢? 首先,HTTPS证书通常在PinTrust这样的专业平…...

【笔记】AI Agent 项目 SUNA 部署 之 Docker 构建记录
#工作记录 构建过程记录 Microsoft Windows [Version 10.0.27871.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗ ██╗███╗ ██╗ █████╗ ██╔════╝…...