WSL 的安装、报错解决、使用技巧

这篇具有很好参考价值的文章主要介绍了WSL 的安装、报错解决、使用技巧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需要Windows10或以上系统版本。如果你的操作系统是Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11,并且你从来没有安装过WSL,你可以使用命令行简单的安装安装 WSL,使用管理员权限打开power shell运行 `wsl --install` 命令完成安装, 详细教程。

一、安装步骤

  1. 控制面板\程序\启用或关闭Windows功能

WSL 的安装、报错解决、使用技巧

勾选这两个选项,点确定,之后重启计算机。

WSL 的安装、报错解决、使用技巧

注:有的教程让打开这个,因为特别耗费资源试了一下,不用打开。

  1. 下载并运行 Linux内核更新包

1. 下载适用于 x64 计算机的 WSL2 Linux 内核更新最新包:(Intel处理器|ARM64)。可以在`设置\系统\系统信息\设备规格中查看是Intel还是ARM处理器。

2. 双击运行上一步中下载的更新包。

3.在PowerShall中输入命令`wsl --set-default-version 2`设置WSL2为默认版本。

  1. 下载Linux 发行版

1.打开 Microsoft Store,并选择你喜欢的 Linux 分发版,我下载的是ubantu。

2.打开在开始界面或其他地方点击运行 ubantu ,可能会出现错误或其他问题,我们在下面解决。

二、错误解决

  1. 如果上文第一步或第二步没有彻底完成,会有报错

Installing, this may take a few minutes… 
WslRegisterDistributionfailed with error: 0x800701bc Error: 0x800701bc WSL 2 ???
https://aka.ms/wsl2kernel

Press any key to continue…

解决办法,仔细查看第一步第二步有没有遗漏的地方,全部完成后可能需要重启计算机。

  1. 重新打开Linux后,使用ifconfig命令发现无法使用

根据提示,使用命令安装网络工具:

sudo apt install net-tools
  1. 无法使用systemctl 命令

在发现无法使用systemctl命令后,出现如下报错:

root@**:c# systemctl status firewalld.service
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

以为是如上面的ifconfig命令一样没有安装,所以仿照上面的安装命令后出现如下报错:

root@**:c# sudo apt install systemctl
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 init : PreDepends: systemd-sysv but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

查阅相关资料后发现,可能是Windows Subsystem of Linux不使用 systemd 而是使用 SysVinit 应用来管理服务。输入下面命令后如果显示 init 或者 sysv ,就说明 这个Linux 系统使用SysVinit 来管理service。

ps -p 1 -o comm=

解决方法是使用 SysVinit应用的命令代替 systemd 应用的命令:

Systemd command

Sysvinit command

systemctl start service_name

service service_name start

systemctl stop service_name

service service_name stop

systemctl restart service_name

service service_name restart

systemctl status service_name

service service_name status

systemctl enable service_name

chkconfig service_name on

systemctl disable service_name

chkconfig service_name off

root@**:c# ps -p 1 -o comm=
init
root@**:c# service firewalld status
firewalld: unrecognized service
  1. 在进入Linux系统后无法使用cd 命令跳转到C盘,报错

root@**:**# wsl -l -v
-bash: cd: c: No such file or directory

查阅相关资料后发现,WSL的C盘挂载在`/mnt`目录下,需要在盘符前加上 `/mnt` 才能正常使用。

root@**:**# cd /mnt/c
root@**:c#

三、使用技巧

  • 查看WSL的版本状态:在PowerShell下输入命令 `wsl -l -v`

  • Linux子系统的根目录位置:`C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs`

参考资料:

[1] 找了很多资料不是很统一,最有用的还是微软自己的教程旧版 WSL 的手动安装步骤 。

[2] ifconfig配置参考:https://blog.csdn.net/qq_16933601/article/details/115430863

[3] 解决systemctl 问题的参考:https://linuxhandbook.com/system-has-not-been-booted-with-systemd/文章来源地址https://www.toymoban.com/news/detail-492708.html

到了这里,关于WSL 的安装、报错解决、使用技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包