我当前在win11下进行以下操作,其它系统版本有问题可以留言

一、安装WSL

  1. 前提条件:我们需要保证你的操作系统版本满足 **Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 ** 才能使用以下命令。
  2. 启用适用于 Linux 的 Windows 子系统:打开powershell并输入
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  3. 启用虚拟化:以管理员打开powershell输入下列命令:
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  4. 【可选/推荐】设置WSL默认版本为wsl2:wsl --set-default-version 2(WSL2.0相比WSL1.0具备完整的Linux内核、托管VM和完全的系统调用兼容性,所以我们这里使用WSL2.0)
  5. 直接安装/指定内核版本安装
    【直接安装】WSL的安装很简单,可以参考官方手册:
    可以使用单个命令安装运行 WSL 所需的一切内容。 在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入wsl --install命令,然后重启计算机。
    【指定内核安装】
    当然,可以选择指定内核的方式来安装wsl:
  • 若要更改安装的发行版,请输入:wsl --install -d <Distribution Name>。 将 <Distribution Name>替换为要安装的发行版的名称。
  • 若要查看可通过在线商店下载的可用 Linux 发行版列表,请输入:wsl --list --onlinewsl -l -o
  • 若要在初始安装后安装其他 Linux 发行版,还可使用命令:wsl --install -d <Distribution Name>

二、WSL修改默认安装目录到其他盘

显然,此时的wsl默认安装在c盘,随着系统的使用,会占用我们C盘的空间,所以我们将其打包放到其它盘去。
1.查看WSL发行版本
在Windows PowerShell中输入命令:
wsl -l --all -v
2.导出分发版为tar文件到d盘
wsl --export Ubuntu-20.04 d:\wsl-ubuntu20.04.tar(Ubuntu-20.04修改成你现在的发行版名称)
3.注销当前分发版
wsl --unregister Ubuntu-20.04(Ubuntu-20.04修改成你现在的发行版名称)
4.重新导入并安装WSL在d:\wsl-ubuntu20.04(可以修改成你自己想要的目录
wsl --import Ubuntu-20.04 d:\wsl-ubuntu20.04 d:\wsl-ubuntu20.04.tar --version 2
5.设置默认登陆用户为安装时用户名
ubuntu2004 config --default-user Username
6.删除tar文件(可选)
del d:\wsl-ubuntu20.04.tar

经过以上操作后,就将WSL的默认安装目录迁移到D:\wsl-ubuntu20.04目录(可以自己修改自己想要的目录)下了。此目录即为WSL的跟文件系统。

位置在:

C:\Users\THINK\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

备注:THINK是我的Windows登录用户名,你换成自己的用户名即可,知道了这个文件夹之后就可以方便地进行subsystem的文件管理了,写好后的程序也可以转移到自己的windows系统下,避免了程序丢失的烦恼。

一、WSL简介

WSL的全称是Windows Subsystem for Linux。
适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。

二、开启WSL功能

系统要求:win10/11 专业版,(家庭版无法使用)
打开控制面板 -> 程序 -> 启用或关闭windows功能
将“适用于Linux的windows子系统”勾选
后续您的windows系统会进行更新,重启后将会开启WSL功能。
默认开启的WSL版本是1.目前最新的版本是2.(但是之后可能会报错还是要版本2.0的)

三、安装kali子系统

进入微软商店搜索kali,选择kali进行安装、没有Windows Terminal也要装
安装完成后,在开始页面可以看到Kali Linux。
首次完成会要求您完成的第一步是创建账户,包括用户名和密码。(但是不是很顺利会报错)

报错的解决办法在下面

此用户名和密码特定于安装的每个单独的 Linux 分发版,与 Windows 用户名无关。
创建用户名和密码后,该帐户将是分发版的默认用户,并将在启动时自动登录。
此帐户将被视为 Linux 管理员,能够运行 sudo (Super User Do) 管理命令。
在适用于 Linux 的 Windows 子系统上运行的每个 Linux 分发版都有其自身的 Linux 用户帐户和密码。 每当添加分发版、重新安装或重置时,都必须配置一个 Linux 用户帐户。
此时虽然为管理员账户,可以使用sudo命令,但是不能使用root进行操作。
使用sudo passwd root命令,为root修改密码。

报错1:8007019e

解决问题:WslRegisterDistribution failed with error: 0x8007019e

然后打开安装好的Windows Linux子系统(WSL) 此时一般来说会遇到下面的问题:

 
  1. Installing, this may take a few minutes...
  2. WslRegisterDistribution failed with error: 0x8007019e
  3. The Windows Subsystem for Linux optional component is not enabled. Please enable it and try again.
  4. See https://aka.ms/wslinstall for details.
  5. Press any key to continue...
 

出现这个错误的原因是没有安装Windows子系统支持(如果前面打开那个功能过后就重启就不会出现这个问题)。

解决办法: 打开Windows PowerShell(Admin) 输入: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux 回车执行 重启

报错2:800701bc

问题解决WslRegisterDistribution failed with error: 0x800701bc

造成该问题的原因是WSL版本由原来的WSL1升级到WSL2后,内核没有升级,前往微软WSL官网下载安装适用于 x64 计算机的最新 WSL2 Linux 内核更新包即可。

下载并安装WSL2更新包

WSL2 Linux kernel update package for x64 machines​wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

将WSL2设置成默认

wsl --set-default-version 2

但是输入wsl --set-default-version 2失败,报错“请启用虚拟机平台 windows 功能并确保在 bios 中启用虚拟化"

解决办法:运行这个指令要以管理员身份运行

bcdedit /set hypervisorlaunchtype auto

这个指令代表的意思是:设置Hyper-V虚拟化启动类型为自动。

报错3:80370102

问题解决WslRegisterDistribution failed with error: 0x80370102

 
  1. Installing, this may take a few minutes...
  2. WslRegisterDistribution failed with error: 0x80370102
  3. Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
  4. For information please visit https://aka.ms/enablevirtualization
  5. Press any key to continue..
 

这个只要前面开启那个虚拟化平台也不会报错

开启虚拟机特性

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

报错4:80004005

安装报错 WslRegisterDistribution failed with error: 0x80004005

我是从MS Store 安装的,下载后点击打开,弹出cmd窗口报错信息:

 
  1. Installing, this may take a few minutes... 
  2. WslRegisterDistribution failed with error: 0x80004005 
  3. Error: 0x80004005 ???????
  4.  
  5. Press any key to continue...
 

解决方法:
将 LxssManager 服务修改为自动启动
从服务中修改会提示“拒绝访问”,所以从注册表改
win + R -> regedit -> \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LxssManager ->

右键 Start 项 -> 将值修改为 2(默认为 3)

 
  1. 1 自动(延迟启动)
  2. 2 自动
  3. 3 手动
  4. 4 禁用
 

更新wsl
管理员启动 powershell:wsl --update

成功安装
再次点击打开

 
  1. Installing, this may take a few minutes...
  2. Please create a default UNIX user account. The username does not need to match your Windows username.
  3. For more information visit: https://aka.ms/wslusers
  4. Enter new UNIX username:
 

报错5:80070005

WslRegisterDistribution failed with error: 0x80070005

解决方法
  1. 卸载:
  • Hyper-V
  • 虚拟机管理程序平台
  • 容器
  • WSL的
  1. 重新启动
  2. 重新安装所有 4 个功能
  3. 重新启动
  4. 再次调用 API。现在它起作用了。

如何删除它?我在 Microsoft 商店中没有卸载按钮。

第一个,在“设置”中选中“应用程序”并找到它或在搜索栏中写入Windows子系统,然后卸载

第二个,在“设置”中选中“应用程序”并找到它或在搜索栏中写入kali,然后卸载

重新再来一遍就行...

修改默认安装位置

一般来说都会默认按在 C 盘 ,所以我们可以使用下面的方法进行修改默认安装位置,同时我们应该也可以使用这个方法进行一个分支保存

 
  1. # 1. 查看所有安装的版本
  2. PS C:\Users\14894> wsl -l --all -v
  3. NAME STATE VERSION
  4. * kali-linux Running 2
  5. # 2. 导出分发版为 tar文件到 D盘
  6. PS C:\Users\14894> wsl --export kali-linux D:\wsl-kali-linux.tar
  7. # 3. 注销当前分发版
  8. PS C:\Users\14894> wsl --unregister kali-linux
  9. # 4. 重新导入并安装WSL在D盘
  10. PS C:\Users\14894> wsl --import kali-linux D:\kali-linux D:\wsl-kali-linux.tar --version 2
  11. # 5. 设置默认登陆用户为安装时用户名
  12. PS C:\Users\14894> kali-linux config --default-user USERNAME
  13. # 6. 删除 wsl-kali-linux.tar
  14. PS C:\Users\14894> del D:\wsl-kali-linux.tar
 

更新源和升级软件

su vim /etc/apt/sources.list

# 官方源
# deb http://http.kali.org/kali kali-rolling main non-free contrib
# deb-src http://http.kali.org/kali kali-rolling main non-free contrib
#根据需要自己选一个,中科大的还可以
#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#阿里云
#deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

安装完整版Kali

执行:apt-get install kali-linux-everything
即使更换了更新源也需要经过漫长的等待,全部的安装内容大约在19G左右。根据C盘容量,量力而行。

0 upgraded, 3891 newly installed, 0 to remove and 0 not upgraded.
Need to get 10.8 GB of archives.
After this operation, 30.8 GB of additional disk space will be used.
Do you want to continue? [Y/n]

0个已升级,3891个新安装,0个要移除,0个未升级。
需要获得10.8 GB的档案。
执行此操作后,将使用30.8 GB的额外磁盘空间。
你想继续吗?[是/否]

kali-linux-everything 安装kali提供的所有工具

kali-linux-large 安装kali提供的默认工具

kali-linux-top10 安装最流行的10个工具

"docker-credential-desktop.exe": executable file not found in $PATH 错误解决

1. 错误信息和解决方法

错误信息,

error getting credentials - err: exec: "docker-credential-desktop.exe": executable file not found in $PATH, out: ``
 
 

解决方法,

Delete the line with credsStore from ~/.docker/config.json.

Or rename credsStore to credStore

完结!

WSL2 默认安装在 C 盘下,系统盘空间有限,推荐迁移安装目录。

1. 默认安装的 WSL2 目录

C:\Users\cheng\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx

2. 将安装的 WSL2 迁移至指定目录

  1. wsl --list --verbose - wsl -l -v

查看安装在 Windows 计算机上的 Linux 发行版列表,其中包括状态和运行发行版的 WSL 版本 (WSL 1 或 WSL 2)。

  1. wsl --shutdown

立即终止所有正在运行的发行版和 WSL 2 轻量级实用工具虚拟机。

Microsoft Windows [版本 10.0.22621.1265]
(c) Microsoft Corporation。保留所有权利。 C:\Users\cheng>wsl --list --verbose
NAME STATE VERSION
* Ubuntu-20.04 Running 2 C:\Users\cheng>
C:\Users\cheng>wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2 C:\Users\cheng>
C:\Users\cheng>wsl --shutdown C:\Users\cheng>
C:\Users\cheng>wsl --list --verbose
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2 C:\Users\cheng>
  1. wsl --export Ubuntu-20.04 f:\ubuntu20.04.tar

将指定 tar 文件导出为新的发行版。--export 选项后面是查看运行状态中 Linux 系统的名字。

C:\Users\cheng>wsl --export Ubuntu-20.04 f:\ubuntu2004.tar

C:\Users\cheng>

  1. Unregister or uninstall a Linux distribution (注销或卸载 Linux 发行版)

While Linux distributions can be installed through the Microsoft Store, they can’t be uninstalled through the store.
尽管可以通过 Microsoft Store 安装 Linux 发行版,但无法通过 Store 将其卸载。

To unregister and uninstall a WSL distribution

wsl --unregister <DistributionName>

Replacing <DistributionName> with the name of your targeted Linux distribution will unregister that distribution from WSL so it can be reinstalled or cleaned up. Caution: Once unregistered, all data, settings, and software associated with that distribution will be permanently lost. Reinstalling from the store will install a clean copy of the distribution. For example, wsl --unregister Ubuntu would remove Ubuntu from the distributions available in WSL. Running wsl --list will reveal that it is no longer listed.
如果将 <DistributionName> 替换为目标 Linux 发行版的名称,则将从 WSL 取消注册该发行版,以便可以重新安装或清理它。警告:取消注册后,与该分发版关联的所有数据、设置和软件将永久丢失。从 Store 重新安装会安装分发版的干净副本。 例如:wsl --unregister Ubuntu 将从可用于 WSL 的发行版中删除 Ubuntu。运行 wsl --list 将会显示它不再列出。

You can also uninstall the Linux distribution app on your Windows
machine just like any other store application. To reinstall, find the
distribution in the Microsoft Store and select Launch.
还可以像卸载任何其他应用商店应用程序一样卸载 Windows 计算机上的 Linux 发行版应用。若要重新安装,请在 Microsoft Store 中找到该发行版,然后选择 Launch

C:\Users\cheng>wsl --list --verbose
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2 C:\Users\cheng>
C:\Users\cheng>wsl --unregister Ubuntu-20.04
正在注销... C:\Users\cheng>
C:\Users\cheng>wsl --list --verbose
适用于 Linux 的 Windows 子系统没有已安装的分发版。
可以通过访问 Microsoft Store 来安装分发版:
https://aka.ms/wslstore C:\Users\cheng>
  1. wsl --import Ubuntu-20.04 f:\ubuntu_20_04 f:\ubuntu2004.tar

将指定 tar 文件导入为新的发行版。

wsl --import <Distribution Name> <InstallLocation> <FileName>

C:\Users\cheng>wsl --import Ubuntu-20.04 f:\ubuntu_20_04 f:\ubuntu2004.tar

C:\Users\cheng>

迁移成功之后,可在安装目录下查看 vhdx 文件。
F:\ubuntu_20_04\ext4.vhdx

  1. ubuntu2004.exe config --default-user yongqiang

设置默认登陆用户为安装时的用户名。

C:\Users\cheng>ubuntu2004.exe config --default-user yongqiang

C:\Users\cheng>
  1. 删除 f:\ubuntu2004.tar 文件
C:\Users\cheng>del f:\ubuntu2004.tar

C:\Users\cheng>

3. 通过终端打开 Ubuntu-20.04

  1. 在 Windows 图标 [开始] 处点击鼠标右键

  1. 终端 / 终端 (管理员)

References

https://yongqiang.blog.csdn.net/

摘抄自网络,便于检索查找。

WSL默认安装目录的更多相关文章

  1. Windows10系统如何更改程序的默认安装目录?

    Windows10系统如何更改程序的默认安装目录? 在Windows10系统的使用中,软件程序的默认安装目录是:C:\Program Files\...或者C:\Program Files(x86)\ ...

  2. NSIS脚本根据操作系统版本动态决定默认安装目录

    问题描述: 因为windows XP和windows 7的program files不同(有program files(x86)),所以需要动态根据系统的位数设置默认安装目录 References: ...

  3. installshield12如何改变默认安装目录

    installshield12如何改变默认安装目录 androidstudio添加其他项目中的module androidrecyclerviewonBindViewHolder [RealSense ...

  4. npm全局模块卸载及默认安装目录修改方法

    卸载全局安装模块  npm uninstall -g <package> 卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看:npm ls npm ...

  5. 非默认安装目录下mysql数据的导出与导入

    系统:Centos 6.5 1.首先确定msyql是否安装以及安装目录: [root@localhost ~]# service mysqld status mysqld (pid ) 正在运行... ...

  6. rpm安装mysql 默认安装目录

    MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件.配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为Linux本身的目录结构就比较 ...

  7. mysql默认安装目录说明

    MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件.配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比 ...

  8. linux rpm 安装后 mysql 默认安装目录等信息

    MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件.配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比 ...

  9. win10修改Docker Desktop Installer的默认安装目录

    Docker Desktop Installer软件默认安装会装在C:\Program Files\Docker的目录下,默认是不能修改的,但是我们可以通过设置软链接的方式把安装默认弄到其他盘 我们先 ...

  10. npm全局模块卸载及默认安装目录修改

    卸载全局安装模块  npm uninstall -g <package> 卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看:npm ls npm ...

随机推荐

  1. 【Uni-APP】02 FLEX 弹性布局

    新建一个项目: 注释所有内容: <template> <!-- <view class="content"> <image class=&quo ...

  2. Git安装与windows终端配置Git-bash

    Git概述 简介 Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理.通过Git仓库存储和管理这些文件,Git仓库分为两种: 本地仓库:开发人员自己电脑上的Git仓库 远程仓 ...

  3. 国产的huggingface —— modelscope

    国产的huggingface: https://www.modelscope.cn/

  4. C# 导出表格时表头优化思路

    众所周知 众所周知,如果使用DataTable.一般的思路是这么写的 var exprotData = new DataTable("Datas"); exprotData.Col ...

  5. Fiddler远程调试js

    使用Fiddler调试本地js 在我们前端开发的日常工作中,发现服务器上某个css/javascript文件有问题,需要修改,那真是家常便饭.通常,我们需要将文件进行修改,然后重新发布再验证,这样就很 ...

  6. React挂载dom无效的问题

    话不多说,先上代码. 根据我的猜测,ReactDOM.render()这个函数,也就是挂载的意思是将内容进行替换,所以我的vdom1在调试的时候没有展示出来. 然后我创建了两个div块,分别挂载vdo ...

  7. C#使用泛型方法将Datatable转换成List对象集合

    在项目中遇到需要将Datatable转换成对象的需求,通过dr[0]取下标这种获取,如果数据的顺序发生了改变则需要改变全部,工作量大 foreach (DataRow dr in dt.Rows) { ...

  8. Xmind 8思维导图(含补丁)

    Xmind 8思维导图(含补丁) 什么是思维导图? 如何下载Xmind8 Xmind 8软件简单使用 获取Xmind 8 补丁 什么是思维导图? 数据结构.电路模拟等学习路线,老师都有叫画思维导图,那 ...

  9. 语音识别 可以跑在MCU上吗

    Ref: https://developer.arm.com/Additional%20Resources/Video%20Tutorials/AITechTalk-Video-Speech%20re ...

  10. Serilog文档翻译系列(一) - 入门指南

    保持优质文档是 Serilog 的优先事项.如果你发现文档中有缺失或不准确的内容,或者希望通过添加主题或教程来扩展 wiki,请通过问题追踪系统告知我们. 为什么选择Serilog? 与许多其他 .N ...