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功能 做如下勾選

2. 下載 Linux 內核更新包

備注:  ARM64 計算機,請下載 ARM64 包
必須在cmd中查詢類型:systeminfo | find "系統類型"

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

# 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM