Wni11 下 WSL 安装 CentOS

打印 上一主题 下一主题

主题 795|帖子 795|积分 2385

方法一、安装包安装

下载包安装

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
  1. ocker run -it centos /bin/bash                                                                          
  2. [root@dca578a4bc76 /]# cat /etc/centos-release                                                                          
  3. CentOS Linux release 8.4.2105   
复制代码
确认版本没题目后,我们按下 Ctrl + P,然后紧接着按下 Ctrl + Q 这样退出 CentOS,但保持容器不终止。用 docker ps 查看一下容器还在:
  1. C:\Users\jerry>docker ps
  2. CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
  3. dca578a4bc76   centos    "/bin/bash"   4 minutes ago   Up 4 minutes             wizardly_hypatia
复制代码
1. 导出 Docker 容器到 tar 文件


  • 我先创建个目任命来存导出文件 D:/OS/CentOS8/
  • 执行导出命令,格式:docker export 容器名 > 导出文件.tar
  1. docker export wizardly_hypatia > D:/OS/CentOS8/centos8.4.2105.tar
复制代码

3. 容器利用完了,可以抛弃它了
  1. docker stop wizardly_hypatia
  2. docker rm wizardly_hypatia
复制代码
2. 将 tar 文件导入 WSL

2.1. 导入 tar

执行命令格式:wsl --import <发行版名称> <安装目录> <导入文件.tar>
导入成功会在安装目录下生成一个捏造磁盘镜像文件,比如:ext4.vhdx
  1. wsl --import CentOS8.4.2105 D:\OS\CentOS8 D:\OS\CentOS8\centos8.4.2105.tar
复制代码
导入完成用 wsl -l -v 查看一下:多了一个 CentOS8.4.2105
  1. C:\Users\jerry>wsl -l -v
  2.   NAME              STATE           VERSION
  3. * docker-desktop    Running         2
  4.   CentOS8.4.2105    Stopped         2
  5.   CentOS7           Stopped         2
  6.   Debian            Stopped         2
复制代码
2.2. 改名(重导)

这名称太不合群了,我后悔了,还是改改吧,先注销(注销成功会扫除安装目录下的 ext4.vhdx),重新导。
  1. wsl --unregister CentOS8.4.2105
复制代码
  1. wsl --import CentOS8 D:\OS\CentOS8 D:\OS\CentOS8\centos8.4.2105.tar
复制代码
重新导入效果
  1. C:\Users\jerry>wsl -l -v
  2.   NAME              STATE           VERSION
  3. * docker-desktop    Stopped         2
  4.   CentOS8           Stopped         2
  5.   CentOS7           Stopped         2
  6.   Debian            Stopped         2
复制代码
2.3. 备份还原

wsl --export 与 wsl --import 配合也可以用来给体系做备份
  1. # ------ 备份 ------
  2. wsl --export centos8 d:\OS\centos8\bak_001.tar
  3. # ------ 还原 ------
  4. # 卸载
  5. wsl --unregister centos8
  6. # 导入
  7. wsl --import CentOS8 "D:\OS\centos8" "D:\OS\CentOS8\bak20240908.tar"
复制代码
2.4. 修改默认体系

方便以后 WIN + R 运行 WSL 直接进 CentOS8
  1. wsl -d centos8
复制代码
  1. C:\Users\jerry>wsl -l -v
  2.   NAME              STATE           VERSION
  3.   CentOS7           Running         2
  4. * CentOS8           Stopped         2
  5.   Debian            Stopped         2
  6.   docker-desktop    Stopped         2
复制代码
操作完后碰到要我更新,又装了一下这个 适用于 x64 计算机的 WSL2 Linux 内核更新包
三、安装完成

1. 开启 systemctl

systemctl 默认没开启,配置一下,重启就可以了1
执行命令:
  1. echo -e "[boot]\nsystemd=true" | sudo tee -a /etc/wsl.conf
复制代码
它的作用是将如下信息写入 /etc/wsl.conf
  1. [boot]
  2. systemd=true
复制代码
注意:接下来要先用 wsl -t centos7 停掉 centos7,再启动 centos7 才见效:
  1. # 查看一下版本信息
  2. systemctl --version
  3. systemd 219
  4. +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,然后重启见效。
  1. [boot]
  2. systemd=true
  3. [user]default=jerry[network]hostname=centos7generateHosts=true
复制代码
重启后进来,主机名变了:
  1. [jerry@centos7 ~]$
复制代码
3. 修复命令行高亮丢失的题目


  • 在 ~/.bashrc 末尾追加一句(网上找到),喜欢折腾的朋侪可以自己研究3
    1. export PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
    复制代码
    执行 source ~/.bashrc 见效。

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

4. 设置阿里云的 CentOS 国内源

先备份

  1. cp -rv /etc/yum.repos.d /etc/yum.repos.d_bak
复制代码
再修改源

  1. sudo sed -i.bak 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-*.repo
  2. 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 结尾的文件。
更新走一波

  1. yum  update
复制代码
装一下 vim
  1. yum -y install vim
复制代码
假如没搞定

参考:CentOS 7- 配置阿里镜像源 4
由于我之前已经装过,这里把 gpgkey 改成了本地的gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 能省点网速。
WSL 其他常用命令

以我们前面安装的 CentOS8 为例


  • wsl -l 查看装了哪些子体系
    1. 适用于 Linux 的 Windows 子系统分发:
    2. CentOS8 (默认)
    3. Debian
    4. docker-desktop
    5. Ubuntu
    6. CentOS7
    复制代码
  • wsl -d CentOS8 运行指定的子体系(这里就是 CentOS8)
  • wls -t CentOS8 停止子体系运行
  • wls --shutdown 立刻终止所有正在运行的分发版和 WSL 2
  • wls -s CentOS8 设置 CentOS8 为默认体系,直接执行 wsl 不带参数,就是进默认的
  • wsl -v 查看 WSL 的版本信息
    1. C:\Users\jerry>wsl -v
    2. WSL 版本: 2.2.4.0
    3. 内核版本: 5.15.153.1-2
    4. WSLg 版本: 1.0.61
    5. MSRDC 版本: 1.2.5326
    6. Direct3D 版本: 1.611.1-81528511
    7. DXCore 版本: 10.0.26091.1-240325-1447.ge-release
    8. Windows 版本: 10.0.22000.1936
    复制代码
  • 假如 root 忘记密码可以直接 --user root 以 root 身份登录(简写 -u root),再 passwd root 改密码
    1. wsl -u root -d centos8
    复制代码
压缩动态扩展捏造硬盘 (VHD) 文件的物理巨细

compact vdisk
减小动态扩展捏造硬盘 (VHD) 文件的物理巨细。 此参数非常有效,由于动态扩展 VHD 的巨细会随着文件的添加而增加,但不会随着文件的删除而主动减小。

  • 先把子体系都停掉
    1. wsl --shutdown
    复制代码
  • 打开 diskpart
    1. diskpart
    复制代码
  • 执行
    1. select vdisk file=D:\OS\CentOS7\ext4.vhdx
    2. attach vdisk readonly
    3. compact vdisk
    4. detach vdisk
    复制代码

参考资料

适用于 Linux 的 Windows 子体系文档
导入要与 WSL 一起利用的任何 Linux 发行版

   

  • 利用 systemd 通过 WSL 管理 Linux 服务 ↩︎
  • WSL 中的高级设置配置 ↩︎
  • Bash Shell PS1:10 个让 Linux 提示符变得非常实用和时尚的例子 ↩︎
  • CentOS 7- 配置阿里镜像源 ↩︎

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

道家人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表