WSL默认安装目录
我当前在win11下进行以下操作,其它系统版本有问题可以留言
一、安装WSL
- 前提条件:我们需要保证你的操作系统版本满足 **Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 ** 才能使用以下命令。
- 启用适用于 Linux 的 Windows 子系统:打开powershell并输入
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- 启用虚拟化:以管理员打开powershell输入下列命令:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 【可选/推荐】设置WSL默认版本为wsl2:
wsl --set-default-version 2
(WSL2.0相比WSL1.0具备完整的Linux内核、托管VM和完全的系统调用兼容性,所以我们这里使用WSL2.0) - 直接安装/指定内核版本安装
【直接安装】WSL的安装很简单,可以参考官方手册:
可以使用单个命令安装运行 WSL 所需的一切内容。 在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入wsl --install
命令,然后重启计算机。
【指定内核安装】
当然,可以选择指定内核的方式来安装wsl:
- 若要更改安装的发行版,请输入:
wsl --install -d <Distribution Name>
。 将<Distribution Name>
替换为要安装的发行版的名称。 - 若要查看可通过在线商店下载的可用 Linux 发行版列表,请输入:
wsl --list --online
或wsl -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) 此时一般来说会遇到下面的问题:
-
Installing, this may take a few minutes...
-
WslRegisterDistribution failed with error: 0x8007019e
-
The Windows Subsystem for Linux optional component is not enabled. Please enable it and try again.
-
See https://aka.ms/wslinstall for details.
-
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设置成默认
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
-
Installing, this may take a few minutes...
-
WslRegisterDistribution failed with error: 0x80370102
-
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
-
For information please visit https://aka.ms/enablevirtualization
-
Press any key to continue..
这个只要前面开启那个虚拟化平台也不会报错
开启虚拟机特性
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
报错4:80004005
安装报错 WslRegisterDistribution failed with error: 0x80004005
我是从MS Store 安装的,下载后点击打开,弹出cmd窗口报错信息:
-
Installing, this may take a few minutes...
-
WslRegisterDistribution failed with error: 0x80004005
-
Error: 0x80004005 ???????
-
-
Press any key to continue...
解决方法:
将 LxssManager 服务修改为自动启动
从服务中修改会提示“拒绝访问”,所以从注册表改
win + R -> regedit -> \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LxssManager ->
右键 Start 项 -> 将值修改为 2(默认为 3)
-
1 自动(延迟启动)
-
2 自动
-
3 手动
-
4 禁用
更新wsl
管理员启动 powershell:wsl --update
成功安装
再次点击打开
-
Installing, this may take a few minutes...
-
Please create a default UNIX user account. The username does not need to match your Windows username.
-
For more information visit: https://aka.ms/wslusers
-
Enter new UNIX username:
报错5:80070005
WslRegisterDistribution failed with error: 0x80070005
解决方法
- 卸载:
- Hyper-V
- 虚拟机管理程序平台
- 容器
- WSL的
- 重新启动
- 重新安装所有 4 个功能
- 重新启动
- 再次调用 API。现在它起作用了。
如何删除它?我在 Microsoft 商店中没有卸载按钮。
第一个,在“设置”中选中“应用程序”并找到它或在搜索栏中写入Windows子系统,然后卸载
第二个,在“设置”中选中“应用程序”并找到它或在搜索栏中写入kali,然后卸载
重新再来一遍就行...
修改默认安装位置
一般来说都会默认按在 C 盘 ,所以我们可以使用下面的方法进行修改默认安装位置,同时我们应该也可以使用这个方法进行一个分支保存
-
# 1. 查看所有安装的版本
-
PS C:\Users\14894> wsl -l --all -v
-
NAME STATE VERSION
-
* kali-linux Running 2
-
# 2. 导出分发版为 tar文件到 D盘
-
PS C:\Users\14894> wsl --export kali-linux D:\wsl-kali-linux.tar
-
# 3. 注销当前分发版
-
PS C:\Users\14894> wsl --unregister kali-linux
-
# 4. 重新导入并安装WSL在D盘
-
PS C:\Users\14894> wsl --import kali-linux D:\kali-linux D:\wsl-kali-linux.tar --version 2
-
# 5. 设置默认登陆用户为安装时用户名
-
PS C:\Users\14894> kali-linux config --default-user USERNAME
-
# 6. 删除 wsl-kali-linux.tar
-
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 迁移至指定目录
wsl --list --verbose
-wsl -l -v
查看安装在 Windows 计算机上的 Linux 发行版列表,其中包括状态和运行发行版的 WSL 版本 (WSL 1 或 WSL 2)。
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>
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>
- 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>
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
ubuntu2004.exe config --default-user yongqiang
设置默认登陆用户为安装时的用户名。
C:\Users\cheng>ubuntu2004.exe config --default-user yongqiang
C:\Users\cheng>
- 删除
f:\ubuntu2004.tar
文件
C:\Users\cheng>del f:\ubuntu2004.tar
C:\Users\cheng>
3. 通过终端打开 Ubuntu-20.04
- 在 Windows 图标 [开始] 处点击鼠标右键
- 终端 / 终端 (管理员)