一绍在、安裝子系統(tǒng)
1. 啟動虛擬機(jī)功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 結(jié)束后最好重啟系統(tǒng)秉宿,
或者點擊 開始
直接搜索開啟或關(guān)閉windows功能
做如下勾選
2. 下載 Linux 內(nèi)核更新包
備注: ARM64 計算機(jī),請下載 ARM64 包
必須在cmd中查詢類型:systeminfo | find "系統(tǒng)類型"
3. 將 wsl2 設(shè)置為默認(rèn)版本
** 以管理員的身份打開 PowerShell因妙,、將 WSL 2 設(shè)置為默認(rèn)版本:**
wsl --set-default-version 2
# 轉(zhuǎn)換已安裝的centos 為wsl2
wsl --set-version centos 2
4.安裝scoop、lxrunoffline
scoop install lxrunoffline
5. lxrunoffline 安裝子系統(tǒng)(當(dāng)然也可以到微軟商店直接安裝Ubuntu)
下載子系統(tǒng): centos
# LxRunOffline install -n <子系統(tǒng)名稱> -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.其他命令
# 查看安裝的子系統(tǒng)
wsl -l -v
# 啟用子系統(tǒng)
wsl -d centos
# 停用子系統(tǒng)(備份前需停用)
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.
# 如果出錯可以轉(zhuǎn)成wsl1 保存
# 恢復(fù)(讀取備份時生成的同名配置文件并寫入配置闯狱,或者-c參數(shù)指定配置文件怒竿。)
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 # 清除系統(tǒng)所有的yum緩存
yum repolist
yum grouplist
yum makecache # 生成yum緩存
2. 方法二:手動更改三個文件
CentOS-Linux-AppStream.repo
CentOS-Linux-BaseOS.repo
CentOS-Linux-Extras.repo
注釋掉 mirrorlist= 替換baseurl
- 清華云鏡像地址
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/virt/$basearch/advanced-virtualization/
- 阿里云鏡像地址
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訪問子系統(tǒng)文件
\\wsl$
# 子系統(tǒng)訪問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