wsl2实现centos8安装、配置及解决命令缺失

一、安装子系统

1. 启动虚拟机功能

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
结束后最好重启系统,

或者点击 开始 直接搜索 开启或关闭windows功能 做如下勾选

wsl2实现centos8安装、配置及解决命令缺失

2. 下载 Linux 内核更新包

备注: ARM64 计算机,请下载 ARM64 包
必须在cmd中查询类型:systeminfo | find “系统类型”

wsl2实现centos8安装、配置及解决命令缺失

3. 将 wsl2 设置为默认版本

以管理员的身份打开 PowerShell,、将 WSL 2 设置为默认版本:

wsl --set-default-version 2

转换已安装的centos 为wsl2
wsl --set-version Centos 2

4.安装scoop、lxrunoffline

安装scoop教程: _ win10 软件资源包管理——scoop_

scoop install lxrunoffline

5. lxrunoffline 安装子系统(当然也可以到微软商店直接安装Ubuntu)

下载子系统:centos

wsl2实现centos8安装、配置及解决命令缺失
LxRunOffline install -n <子系统名称> -d <安装路径> -f <安装包>.tar.gz
LxRunOffline install -n centos-d D:/wsl/centos -f d:/wsl/backup/centos-8-x86_64.tar.xz
</安装包></安装路径></子系统名称>

如果有安装 Windows Terminal 的话,下拉菜单会自动显示,不做过多描述

6.其他命令

查看安装的子系统
wsl -l -v

启用子系统
wsl -s centos

停用子系统(备份前需停用)
wsl -t centos

备份(备份完会生成一个.xml后缀的同名配置文件)
LxRunOffline e -n centos -f d:/wsl/backup/centos_backup.tar.gz
# [ERROR] The action/argument "export" doesn't support WSL2.

出错可以转wsl 1 备份

恢复(读取备份时生成的同名配置文件并写入配置,或者-c参数指定配置文件。)
LxRunOffline i -n centos -d D:/wsl/centos -f d:/wsl/backup -f d:/wsl/backup/centos-8-x86_64.tar.xz

二、更新源

1. 方法一

备份源
mkdir repo_bak
mv /etc/yum.repos.d/*.repo repo_bak/
更新源 wget
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

或者 curl
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

yum clean all     # 清除系统所有的yum缓存
yum repolist
yum grouplist
yum makecache     # 生成yum缓存

2. 方法二:手动更改三个文件

CentOS-Linux-AppStream.repo
CentOS-Linux-BaseOS.repo
CentOS-Linux-Extras.repo

注释掉 mirrorlist= 替换baseurl

  1. 清华云镜像地址
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/virt/$basearch/advanced-virtualization/
  2. 阿里云镜像地址
    baseurl=https://mirrors.aliyun.com/centos-vault//$contentdir/$releasever/AppStream/$basearch/os/

三、其他命令

yum -y install sudo
yum -y install wget vim
yum -y net-tools
dnf install langpacks-en glibc-all-langpacks -y # 安装命令语言包
中文支持
dnf install langpacks-zh_CN
echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
echo 'LANG="zh_CN.UTF-8"' >> /etc/profile

yum install -y passwd # 用户密码管理

dnf -y install git
dnf -y install make
dnf -y install initscripts # 启用 service 命令

window访问子系统文件
\\wsl$
子系统访问window文件
ls /mnt

四、解决 wsl 无法使用systemctl 问题

参考:hosinokoe’s blog 博客repair-systemctl-in-CentOS8-on-WSL2

1. 方法一: 安装genie

dnf install -y mock perl openssh-server # 安装依赖
下载安装包
dnf install -y epel-release wget
wget https://github.com/arkane-systems/genie/releases/download/v1.44/genie-1.44-1.fc34.x86_64.rpm

dnf install -y genie-1.44-1.fc34.x86_64.rpm
genie -s
systemctl start mysql
vim ~/.bashrc # 添加自启动
if [ "ps -eo pid,lstart,cmd | grep systemd | grep -v -e grep -e systemd- | sort -n -k2 | awk 'NR==1 { print $1 }'" != "1" ]; then
  genie -s
fi

2. 方法二(没试过)

sudo dnf install python2 -y
sudo ln -s /usr/bin/python2 /usr/bin/python

sudo mv /usr/bin/systemctl /usr/bin/systemctl.old
curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py >temp
sudo mv temp /usr/bin/systemctl
sudo chmod +x /usr/bin/systemctl

Original: https://www.cnblogs.com/lghgo/p/16003505.html
Author: lghgo
Title: wsl2实现centos8安装、配置及解决命令缺失

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/597343/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球