Windows上指定盘符-安装WSL虚拟机(机械硬盘)

news2025/1/13 2:25:19

参考来自于教程1:史上最全的WSL安装教程 - 知乎 (zhihu.com)icon-default.png?t=O83Ahttps://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)icon-default.png?t=O83Ahttps://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)icon-default.png?t=O83Ahttps://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博客icon-default.png?t=O83Ahttps://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博客icon-default.png?t=O83Ahttps://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博客icon-default.png?t=O83Ahttps://blog.csdn.net/littlehaes/article/details/104879476Manual installation steps for older versions of WSL | Microsoft Learnicon-default.png?t=O83Ahttps://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博客icon-default.png?t=O83Ahttps://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博客icon-default.png?t=O83Ahttps://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博客icon-default.png?t=O83Ahttps://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博客icon-default.png?t=O83Ahttps://blog.csdn.net/m0_46882426/article/details/126193344这样就可以了

遇见bug

wsl -l -v无反应解决办法_wsl 无响应-CSDN博客icon-default.png?t=O83Ahttps://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博客icon-default.png?t=O83Ahttps://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博客icon-default.png?t=O83Ahttps://blog.csdn.net/m0_57541899/article/details/123633305

ubuntu :X server already running on display XXXX - 知乎 (zhihu.com)icon-default.png?t=O83Ahttps://zhuanlan.zhihu.com/p/500734107

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2131012.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

那些网站需要使用OV SSL证书?怎么申请?

🔒 需要OV SSL证书的网站 🏢 企业网站 公司官网:展示公司信息、产品服务,增强信任度。 电子商务网站:处理在线交易,保护用户数据安全。 🏦 金融网站 银行网站:处理金融交易&#x…

SMB流量分析

SMB协议流量主要分为以下几个阶段 1、 tcp三次握手 2、会话建立(Negotiate Protocol): 客户端发送Negotiate Protocol Request ,其中包含客户端支持的smb协议版本列表以及SMB Header信息 服务端发送Negotiate Protocol Response,包含服务…

Springboot中自定义监听器

一、监听器模式图 二、监听器三要素 广播器:用来发布事件 事件:需要被传播的消息 监听器:一个对象对一个事件的发生做出反应,这个对象就是事件监听器 三、监听器的实现方式 1、实现自定义事件 自定义事件需要继承ApplicationEv…

Git学习尚硅谷(005 idea集成git)

尚硅谷Git入门到精通全套教程(涵盖GitHub\Gitee码云\GitLab) 总时长 4:52:00 共45P 此文章包含第27p-第p32的内容 文章目录 忽略特定文件在家目录里创建这个文件在.gitconfig文件里配置这个文件 配置IDEA定位到git程序进行添加文件初始化本地库添加单个…

yolov1到yolov5的发展

基础概念 1. YOLO简介 YOLO(You Only Look Once):是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统。 2. 目标检测算法 RCNN:该系列算法实现主要为两个步骤&am…

数据结构排序——归并排序递归与非递归

基本思想: 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个…

CANopen协议的理解

本文的重点是对CANopen协议的理解,不是编程实现 参考链接 canopen快速入门 1cia301协议介绍_哔哩哔哩_bilibili CANopen是什么? CANopen通讯基础(上)_哔哩哔哩_bilibili CANopen概述 图1. CAN报文标准帧的格式 CAN的报文可简单…

50projects50days案例代码分析学习、效果,Html+CSS+JavaScript小案例

案例来源于:https://github.com/bradtraversy/50projects50days,部分资源需要科学上网加载使用,往后不再赘述。 合集链接,欢迎订阅: https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzkwODY2OTA5NA&actiongetal…

Invoke-Maldaptive:一款针对LDAP SearchFilter的安全分析工具

关于Invoke-Maldaptive MaLDAPtive 是一款针对LDAP SearchFilter的安全分析工具,旨在用于对LDAP SearchFilter 执行安全解析、混淆、反混淆和安全检测。 其基础是 100% 定制的 C# LDAP 解析器,该解析器处理标记化和语法树解析以及众多自定义属性&#x…

35岁失业后:靠这几个AI副业,也能养活自己

最近几年连续的经济下行,到现在已经彻底传导到所有行业,波及到越来越多的人… 这种波及,最集中反映在失业率上,今年又是1179万应届生毕业即失业,加入到庞大的就业漩涡中,35岁裁员已成常态。 大环境确实如此…

RocketMQ 基础入门

文章内容是学习过程中的知识总结,如有纰漏,欢迎指正 文章目录 前言 RocketMQ 特点 RocketMQ 优势 1. RocketMQ 基本概念 1.1 NameServer 1.1.1 NameServer作用 1.1.2 和zk的区别 1.1.3 高可用保障 1.2 Broker 1.2.1 部署方式 1.2.1.1 单 Master 1.2.1.2 …

OpenAI推出o1,一个能够自我事实核查的模型

ChatGPT的开发者OpenAI宣布了其下一次重大产品发布:一个代号为“Strawberry”(草莓)的生成式AI模型,正式名称为OpenAI o1。 更准确地说,o1实际上是一个模型家族。周四,两个版本将在ChatGPT和OpenAI的API中…

最新kubernetes的安装填坑之旅(新手篇)

Kubernetes(常简称为 K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序,lz也不知道哪根脑经秀逗了,竟然妄挑战学习一下,结果折戟沉沙,被折腾的欲仙欲死,不过…

26577flask旧衣物捐赠系统—计算机毕业设计源码26577

摘要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规…

【鸿蒙开发从0到1 day10】

ArkUI布局高级 一.线性布局1.间距(space)2.主轴对齐方式3.交叉轴对齐方式4.单个子组件交叉轴的对齐方式5.自适应缩放6.侧轴对齐方式7.案例 二.弹性布局1.淘宝网页面案例分析 三.总结 一.线性布局 线性布局(LinearLayout)是开发中最常用的布局&#xff0…

海鲜市场|基于springboot的网络海鲜市场系设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书(可指定任意题目) 目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 计算机网络发展到现在已经好几十年了,在理论上面已…

HyperWorks二维网格划分及拓扑改进

Step 01:载入模型 Exercise_3a.hm。 Step 02:2D 网格划分。 进入 automesh 面板。 图 3-13 设置 automesh 面板网格控制参数 (2) 指定 element size 为 5,根据图 3-13 设置网格控制参数。 (3) 查看网格。 图 3-14 新创建的网格模型 网格…

计算机组成原理(二) —— Cache 高速缓存

这篇主要讲一下高速缓存,涉及到高速缓存的几种形式,缓存友好代码注意事项,多处理器下缓存的同步机制。 文章目录 存储器层次结构高速缓存存储器通用的高速缓存存储器组织结构直接映射高速缓存组选择行匹配字选择不命中时的行替换冲突不命中 组…

半个月赚3000+,用AI做仙侠场景账号,全网分发

那些看过的仙侠剧、修仙小说,玩过的仙侠游戏,你还记得吗? 仙侠类型之所以让人津津乐道,除了不同于普通人的人物形象塑造以及跌宕起伏的剧情之外,美轮美奂的仙境场景也是重中之重。所以,每个人心中都有独属于…

Qt Model/View之Model

在检查如何处理选择之前,您可能会发现检查模型/视图框架中使用的概念很有用。 基本概念 在模型/视图架构中,模型提供了一个标准接口,用于视图和委托访问数据。在Qt中,标准接口由QAbstractItemModel类定义。无论数据项如何存储在…