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

参考来自于教程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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光芒再现dev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值