Wni11 下 WSL 安装 CentOS
Wni11 下 WSL 安装 CentOS
- 方法一、安装包安装
- 下载包安装
- 安装
- 打开 CentOS
- 1. 从 Windows 终端 打开
- 2. 从 PowerShell 打开
- 方法二、导入 CentOS 的 tar 文件进行安装
- 0. 查看版本(可选)
- 1. 导出 Docker 容器到 tar 文件
- 2. 将 tar 文件导入 WSL
- 2.1. 导入 tar
- 2.2. 改名(重导)
- 2.3. 备份还原
- 2.4. 修改默认系统
- 三、安装完成
- 1. 开启 systemctl
- 2. 修改默认主机名
- 3. 修复命令行高亮丢失的问题
- 4. 设置阿里云的 CentOS 国内源
- 先备份
- 再修改源
- 更新走一波
- 如果没搞定
- WSL 其他常用命令
- 压缩动态扩展虚拟硬盘 (VHD) 文件的物理大小
- 参考资料
方法一、安装包安装
下载包安装
https://github.com/mishamosher/CentOS-WSL
https://wsldl-pg.github.io/docs/Using-wsldl/#distros
https://github.com/wsldl-pg/CentWSL

安装
解压后运行 CentOS7.exe 即可

打开 CentOS
1. 从 Windows 终端 打开
安装 Windows 终端

2. 从 PowerShell 打开

方法二、导入 CentOS 的 tar 文件进行安装
在 docker 中运行一个 CentOS 容器,用 docker exprot 命令导出为 tar 文件。
0. 查看版本(可选)
先查看一下 CentOS 版本,很好是 8.x 前面安装包装的是 7.x 这回装个 8.x
ocker run -it centos /bin/bash
[root@dca578a4bc76 /]# cat /etc/centos-release
CentOS Linux release 8.4.2105
确认版本没问题后,我们按下 Ctrl + P,然后紧接着按下 Ctrl + Q 这样退出 CentOS,但保持容器不终止。用 docker ps 查看一下容器还在:
C:\Users\jerry>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dca578a4bc76 centos "/bin/bash" 4 minutes ago Up 4 minutes wizardly_hypatia
1. 导出 Docker 容器到 tar 文件
- 我先创建个目录用来存导出文件
D:/OS/CentOS8/ - 执行导出命令,格式:
docker export 容器名 > 导出文件.tar
docker export wizardly_hypatia > D:/OS/CentOS8/centos8.4.2105.tar

3. 容器利用完了,可以抛弃它了
docker stop wizardly_hypatia
docker rm wizardly_hypatia
2. 将 tar 文件导入 WSL
2.1. 导入 tar
执行命令格式:wsl --import <发行版名称> <安装目录> <导入文件.tar>
导入成功会在安装目录下生成一个虚拟磁盘镜像文件,比如:ext4.vhdx
wsl --import CentOS8.4.2105 D:\OS\CentOS8 D:\OS\CentOS8\centos8.4.2105.tar
导入完成用 wsl -l -v 查看一下:多了一个 CentOS8.4.2105
C:\Users\jerry>wsl -l -vNAME STATE VERSION
* docker-desktop Running 2CentOS8.4.2105 Stopped 2CentOS7 Stopped 2Debian Stopped 2
2.2. 改名(重导)
这名称太不合群了,我后悔了,还是改改吧,先注销(注销成功会清除安装目录下的 ext4.vhdx),重新导。
wsl --unregister CentOS8.4.2105
wsl --import CentOS8 D:\OS\CentOS8 D:\OS\CentOS8\centos8.4.2105.tar
重新导入效果
C:\Users\jerry>wsl -l -vNAME STATE VERSION
* docker-desktop Stopped 2CentOS8 Stopped 2CentOS7 Stopped 2Debian Stopped 2
2.3. 备份还原
wsl --export 与 wsl --import 配合也可以用来给系统做备份
# ------ 备份 ------
wsl --export centos8 d:\OS\centos8\bak_001.tar# ------ 还原 ------
# 卸载
wsl --unregister centos8
# 导入
wsl --import CentOS8 "D:\OS\centos8" "D:\OS\CentOS8\bak20240908.tar"
2.4. 修改默认系统
方便以后 WIN + R 运行 WSL 直接进 CentOS8
wsl -d centos8
C:\Users\jerry>wsl -l -vNAME STATE VERSIONCentOS7 Running 2
* CentOS8 Stopped 2Debian Stopped 2docker-desktop Stopped 2
操作完后碰到要我更新,又装了一下这个 适用于 x64 计算机的 WSL2 Linux 内核更新包
三、安装完成
1. 开启 systemctl
systemctl 默认没开启,配置一下,重启就可以了1
执行命令:
echo -e "[boot]\nsystemd=true" | sudo tee -a /etc/wsl.conf
它的作用是将如下信息写入 /etc/wsl.conf
[boot]
systemd=true
注意:接下来要先用 wsl -t centos7 停掉 centos7,再启动 centos7 才生效:
# 查看一下版本信息
systemctl --version
systemd 219
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN
2. 修改默认主机名
注意:这里按原来 centos 修改主机名的方法是没用的。
登录进来可以看到,默认主机名用的就是宿主系统 Win11 的主机名。看着容易精神分裂,我还是改改:
还是改 /etc/wsl.conf 2,然后重启生效。
[boot]
systemd=true
[user]
default=jerry
[network]
hostname=centos7
generateHosts=true
重启后进来,主机名变了:
[jerry@centos7 ~]$
3. 修复命令行高亮丢失的问题
-
在
~/.bashrc末尾追加一句(网上找到),喜欢折腾的朋友可以自己研究3export PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "执行
source ~/.bashrc生效。

-
当然哪果你装了多个 Linux 子系统,也可以去别的版本找参考。(打开我的电脑,看左下角)

4. 设置阿里云的 CentOS 国内源
先备份
cp -rv /etc/yum.repos.d /etc/yum.repos.d_bak
再修改源
sudo sed -i.bak 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-*.repo
sudo sed -i.bak 's|^#baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-*.repo
sed:这是一个文本处理工具,常用于在 Linux 和 Unix 系统中执行简单的文本模式替换。-i:这个选项告诉sed在原地修改文件,而不是将结果输出到标准输出(即终端)。
加上.bak表示修改前做备份。's|目标|结果|g':这是sed的替换命令语法。
s表示替换命令。
|作为分隔符,用于分隔命令的不同部分。
g:全局标志,表示在同一行中进行所有的替换,而不仅仅是第一次匹配。
将所有以mirrorlist替换为#mirrorlist,也就是在开头加#注释掉。
将所有包含#baseurl=http://mirror.centos.org的行修改为阿里云的 CentOS 镜像地址。/etc/yum.repos.d/CentOS-*.repo:此路径匹配/etc/yum.repos.d/目录下所有以CentOS-开头.repo结尾的文件。
更新走一波
yum update
装一下 vim
yum -y install vim
如果没搞定
参考:CentOS 7- 配置阿里镜像源 4
由于我之前已经装过,这里把 gpgkey 改成了本地的gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 能省点网速。
WSL 其他常用命令
以我们前面安装的 CentOS8 为例
-
wls -t CentOS8停止子系统运行 -
wsl -v查看 WSL 的版本信息C:\Users\jerry>wsl -v WSL 版本: 2.2.4.0 内核版本: 5.15.153.1-2 WSLg 版本: 1.0.61 MSRDC 版本: 1.2.5326 Direct3D 版本: 1.611.1-81528511 DXCore 版本: 10.0.26091.1-240325-1447.ge-release Windows 版本: 10.0.22000.1936 -
如果 root 忘记密码可以直接
--user root以 root 身份登录,再passwd root改密码wsl -u root -d centos8
压缩动态扩展虚拟硬盘 (VHD) 文件的物理大小
compact vdisk
减小动态扩展虚拟硬盘 (VHD) 文件的物理大小。 此参数非常有用,因为动态扩展 VHD 的大小会随着文件的添加而增加,但不会随着文件的删除而自动减小。
- 先把子系统都停掉
wsl --shutdown - 打开 diskpart
diskpart - 执行
select vdisk file=D:\OS\CentOS7\ext4.vhdx attach vdisk readonly compact vdisk detach vdisk
参考资料
适用于 Linux 的 Windows 子系统文档
导入要与 WSL 一起使用的任何 Linux 发行版
使用 systemd 通过 WSL 管理 Linux 服务 ↩︎
WSL 中的高级设置配置 ↩︎
Bash Shell PS1:10 个让 Linux 提示符变得非常实用和时尚的例子 ↩︎
CentOS 7- 配置阿里镜像源 ↩︎
相关文章:
Wni11 下 WSL 安装 CentOS
Wni11 下 WSL 安装 CentOS 方法一、安装包安装下载包安装安装打开 CentOS1. 从 Windows 终端 打开2. 从 PowerShell 打开 方法二、导入 CentOS 的 tar 文件进行安装0. 查看版本(可选)1. 导出 Docker 容器到 tar 文件2. 将 tar 文件导入 WSL2.1. 导入 tar…...
ROADM(可重构光分插复用器)-介绍
1. 引用 https://zhuanlan.zhihu.com/p/163369296 https://zhuanlan.zhihu.com/p/521352954 https://zhuanlan.zhihu.com/p/91103069 https://zhuanlan.zhihu.com/p/50610236 术语: 英文缩写描述灰光模块彩光模块CWDM:Coarse Wave-Length Division …...
HarmonyOS开发之路由跳转
文章目录 一、路由跳转模式与实例1.router.pushUrl2.router.replaceUrl3.router.back 一、路由跳转模式与实例 跳转模式 有点类似于vue的路由跳转 router.pushUrl 保留路由栈,保留当前的页面;router.replaceUrl 销毁当前页面,跳转一个新的页…...
怎么使用ai 免费生成ppt?这4个工具可以帮忙
随之AI工具的流行,网络上也涌现了一批 AIPPT 工具,可以在办公上帮助我们节省很多制作PPT的时间。通常它们的操作也比较简单,所以适合很多人使用。为了可以帮助大家提高办公效率,我在这里跟大家分享4款可以免费使用的AIPPT制作工具…...
Android主副屏显示-Android13
Android主副屏显示-Android13 1、DisplayDeviceInfo屏幕信息2、每个屏幕对应LogicalDisplay2.1 LogicalDisplay添加对应DisplayContent2.2 configureDisplayLocked刷新 DisplayManagerService启动及主屏添加-Android13 1、DisplayDeviceInfo屏幕信息 DisplayManagerService启动…...
什么是 SMB 服务器以及它如何工作?
在本文中,您将了解 SMB 服务器以及它们如何促进网络文件共享。 我们将介绍它们的基本功能、主要特性以及如何安全地设置它们。无论您是新手还是需要复习,本指南都将帮助您更好地了解 SMB 服务器。 什么是 SMB 服务器? SMB(服务器…...
【python计算机视觉编程——10.OpenCV】
python计算机视觉编程——10.OpenCV 10.OpenCV10.2 OpenCV基础知识10.2.1 读取和写入图像10.2.2 颜色空间10.2.3 显示图像及结果 10.3 处理视频10.3.1 视频输入10.3.2 将视频读取到NumPy数组中 10.4 跟踪10.4.1 光流10.4.2 Lucas-Kanade算法使用跟踪器使用发生器 10.5 更多示例…...
医学数据分析实训 项目二 数据预处理预备知识(数据标准化处理,数据离差标准化处理,数据二值化处理,独热编码处理,数据PCA降维处理)
文章目录 数据预处理预备知识任务一 数据标准化处理1. 数据准备2. 数据标准化 任务二 数据离差标准化处理任务三 数据二值化处理任务五 独热编码处理对数据进行“离散化处理”(装箱)将已经装箱的数据进行OneHotEncoder独热编码 任务六 数据PCA降维处理1.…...
MySQL查询执行(四):查一行也很慢
假设存在表t,这个表有两个字段id和c,并且我在里面插入了10万行记录。 -- 创建表t CREATE TABLE t (id int(11) NOT NULL,c int(11) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB;-- 通过存储过程向t写入10w行数据 delimiter ;; create procedure idat…...
【Obsidian】当笔记接入AI,Copilot插件推荐
当笔记接入AI,Copilot插件推荐 自己的知识库笔记如果增加AI功能会怎样?AI的回答完全基于你自己的知识库余料,是不是很有趣。在插件库中有Copilot插件这款插件,可以实现这个梦想。 一、什么是Copilot? 我们知道githu…...
Spring Cloud集成Gateaway
Spring Cloud Gateway 是一个基于 Spring 生态的网关框架,用于构建微服务架构中的API网关。它可以对请求进行路由、过滤、限流等操作,是Spring Cloud微服务体系中常用的组件之一。下面介绍 Spring Cloud Gateway 的核心概念、应用场景以及简单的示例。 …...
如何准备技术面试?
大家好,我是老三,好久没更新了,翻出之前的一篇旧稿,是一篇总纲性质的文章——如何准备一场技术面试。这篇文章原本的开头是写给金三银四的,转眼就“金九银十”了,每一年都是最差的一年,又是未来…...
Kafka原理剖析之「Topic创建」
一、前言 Kafka提供了高性能的读写,而这些读写操作均是操作在Topic上的,Topic的创建就尤为关键,其中涉及分区分配策略、状态流转等,而Topic的新建语句非常简单 bash kafka-topics.sh \ --bootstrap-server localhost:9092 \ // …...
Java 高级学习路线概要~
前言:恭喜你已经掌握了 Java 的基础知识!现在,让我们踏上 Java 高级学习之旅,探索更强大的编程技巧和技术。学习前记得不要忘了巩固和加强基础的学习哦,高级学习也是建立在基础的学习之上。 1. 集合框架进阶 Map 接口…...
浏览器插件快速开启/关闭IDM接管下载
假设你已经为浏览器安装了IDM扩展,那么按下图的点击顺序,可以快速开启或关闭IDM的下载接管,而不必在IDM软件的设置->选项中,临时作调整。...
初识c++:入门基础
打字不易,留个赞再走吧~~ 目录 一.第一个c程序二.命名空间 namespace三.C输⼊&输出四.缺省参数 C兼容C语⾔绝⼤多数的语法,所以C语⾔实现的hello world依旧可以运⾏,C中需要把定义⽂件 代码后缀改为.cpp 一.第一个c程序 做好准备我们来写…...
Java Exception 异常相关总结
1.简介 在Java中,当代码运行有问题时会抛出异常,主要分为两类: 1.可以通过try...catch来捕获解决的,不影响后续执行的RuntimeException。 2.不可以通过代码解决的Exception。 为了提高代码的健壮性,我们会选择去捕…...
HighCharts图表自动化简介
什么是分析数据? 在任何应用程序中捕获并以图形或图表形式显示的分析数据是任何产品或系统的关键部分,因为它提供了对实时数据的洞察。 验证此类分析数据非常重要,因为不准确的数据可能会在报告中产生问题,并可能影响应用程序/系统的其他相关领域。 什么是HighChart? …...
使用LDAP登录GitLab
使用LDAP登录GitLab gitlab.rb 配置如下 gitlab_rails[ldap_enabled] true #gitlab_rails[prevent_ldap_sign_in] false###! **remember to close this block with EOS below** gitlab_rails[ldap_servers] YAML.load <<-EOSmain:label: LDAPhost: 172.16.10.180port:…...
【2024】前端学习笔记5-表单标签使用
表单是网页提供的一种交互式操作手段,主要用于采集用户输入的信息。 学习笔记 1.表单框架:form标签1.1.action属性:目标指向1.2.method属性:提交方式1.3.id属性:唯一标识1.4.placeholder属性:提示文字2.input标签2.1.text类型:基本文本输入2.2.password类型:密码输入2.…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
41道Django高频题整理(附答案背诵版)
解释一下 Django 和 Tornado 的关系? Django和Tornado都是Python的web框架,但它们的设计哲学和应用场景有所不同。 Django是一个高级的Python Web框架,鼓励快速开发和干净、实用的设计。它遵循MVC设计,并强调代码复用。Django有…...
