启用window子系统及虚拟化
- 打开 控制面版
- 访问 程序和功能 子菜单 打开或关闭Windows功能
- 选择“适用于Linux的Windows子系统”与 “虚拟机平台”与“Hyper-V”
- 点击“确定”
- 重启
更新WSL
wsl --update
如果更新失败,可以手动下载安装包安装。下载地址:https://github.com/microsoft/WSL/releases
设置默认WSL版本
# 将 WSL 默认版本设置为 WSL 2
wsl --set-default-version 2
查看wsl版本
wsl -v
在线安装
查看可用发行版列表
wsl --list --online
如果提示错误,可以参考https://www.cnblogs.com/tommickey/p/17738445.html
中的方法配置本地hosts文件后再尝试,或者直接使用手动下载安装的方法。
安装指定发行版
使用wsl --install -d <Distribution Name>
安装指定发行版,将 <Distribution Name>
替换为要安装的发行版的名称。例如:
wsl --install -d Ubuntu-24.04 --web-download
手动下载安装
下载发行版本
下载地址:https://aka.ms/wslubuntu2204
下载后改名为:Ubuntu.AppxBundle
安装到C盘
双击Ubuntu.AppxBundle
即可安装
设置 Linux 用户名和密码
使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。 系统将要求你为 Linux 发行版创建“用户名”和“密码”。
- 此用户名和密码特定于安装的每个单独的 Linux 分发版,与 Windows 用户名无关。
- 请注意,输入密码时,屏幕上不会显示任何内容。 这称为盲人键入。 你不会看到你正在键入的内容,这是完全正常的。
- 创建用户名和密码后,该帐户将是分发版的默认用户,并将在启动时自动登录。
- 此帐户将被视为 Linux 管理员,能够运行 sudo (Super User Do) 管理命令。
- 在 WSL 上运行的每个 Linux 发行版都有其自己的 Linux 用户帐户和密码。 每当添加分发版、重新安装或重置时,都必须配置一个 Linux 用户帐户。
其他
列出所有已安装的WSL发行版
wsl --list --verbose
卸载的Ubuntu发行版
wsl --unregister <DistributionName>
将
重启WSL
wsl --shutdown && wsl
更换源
sudo vi /etc/apt/sources.list
内容修改为中科大的:
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
然后更新镜像列表:
sudo apt-get update
sudo apt-get upgrade
更换源(Ubuntu 24.04版本)
24.04 版本开始 Ubuntu 系统源文件改用 /etc/apt/sources.list.d/ubuntu.sources
# 备份源文件
sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak
# 编辑源文件
sudo vim /etc/apt/sources.list.d/ubuntu.sources
源配置可以注释掉,更改为下面其中一个源:
# 更改为 阿里源
Types: deb deb-src
URIs: https://mirrors.aliyun.com/ubuntu/
Suites: noble noble-security noble-updates noble-proposed noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
# 更改为 清华源
Types: deb deb-src
URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/
Suites: noble noble-security noble-updates noble-proposed noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
设置代理
vim ~/.bashrc
在最后添加以下两行:
export http_proxy="172.26.16.1:7890"
export https_proxy="172.26.16.1:7890"
保存后执行:
source ~/.bashrc
其中172.26.16.1是windows主机的ip,通过ipconfig可以查到,7890是代理的端口,需要根据你的实际情况更改。
systemd服务开启
开启时执行systemctl命令会遇到
System has not been booted with systemd as init System (PID 1). Can't operate.
在/etc/wsl.conf添加以下配置
[boot]
systemd=true
重启WSL,使用ps --no-headers -o comm 1
返回systemd,说明已启用成功,如果返回init说明未启用。使用systemctl list-unit-files --type=service
就可以查看服务了。
查询wsl的IP地址
wsl hostname -I
设置root密码
WSL首次创建实例后,先设置root密码
sudo passwd root
设置默认登录用户为root
修改配置文件:
sudo vim /etc/wsl.conf
添加如下内容:
[user]
default=root
重启实例
wsl --shutdown
备份与还原
备份
确定发行版
wsl -l -v
导出备份
wsl --export (发行版) (保存路径以及 文件名称.tar)
例如,我在当前目录,将 发行版为 Ubuntu 的 wsl2备份文件 保存为 wsl2.tar, 可以这样写
wsl --export Ubuntu wsl2.tar
或者,我想把 发行版为 Ubuntu 的 wsl2备份文件 保存在 d盘指定文件夹 内
wsl --export Ubuntu d:\save\linux\wsl2.tar
还原
用 wsl --import
命令导出所选发行版的备份。
wsl --import (发行版) (安装位置) (文件路径以及文件名称)
例如,我想在我的 C盘 中导入之前保存的备份文件
wsl --import Ubuntu c:\wsl2 d:\save\linux\wsl2.tar
安装多个版本ubuntu
已有ubuntu20.04,现在再安装一个ubuntu24.04
微软提供了一个手动下载WSL发行版的网址:https://learn.microsoft.com/zh-cn/windows/wsl/install-manual
下载后可得到一个后缀名为.AppxBundle的文件,将后缀改成.zip,并解压:
将Ubuntu_2404.0.5.0_x64.appx
文件改名为Ubuntu_2404.0.5.0_x64.zip
,将该文件拷贝你想安装的位置,解压该文件:
解压后文件夹得到一个.exe文件,双击运行;
需要注意的是:安装目录的磁盘不能开压缩内容以便节省磁盘空间选项,否则会报错
可以右键文件夹–>属性–>常规–>高级找到并关闭这个选项
双击 ubuntu2404.exe
,等待一段时间后安装完成,自行定义用户名及密码
Could not write value to key \SOFTWARE\Classes\Drive\shell\WSL
似乎是因为WSL在修改注册表的时候遇到了一些困难
重命名报错的注册表字段,打开wsl就正常了
old:
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Drive\shell\WSL
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\WSL
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\WSL
new:
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Drive\shell\WSL_bak
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\WSL_bak
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\WSL_bak
开启大小写敏感
管理员权限打开windows powershell
,执行如下命令:
fsutil file setCaseSensitiveInfo E:/www/wwwroot/ enable
说明:E:/www/wwwroot/
为需要开启的大小写敏感的文件夹路径,开启后该文件夹及其子文件夹下所有文件都将开启大小写敏感。
关闭大小写敏感
fsutil file setCaseSensitiveInfo E:/www/wwwroot/ disable
查询区分大小写状态
fsutil file queryCaseSensitiveInfo E:/www/wwwroot
安装docker
添加仓库
更新apt包管理器索引
sudo apt update
安装一些需要的工具
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
添加Docker官方GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
我这里连不上docker官网的网络,我换成了阿里云的镜像地址:
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
添加Docker stable稳定版仓库(Intel、Amd)
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
我这里连不上docker官网的网络,我换成了阿里云的镜像地址:
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
安装 Docker
更新apt索引
sudo apt update
安装最新版
sudo apt install docker-ce docker-ce-cli containerd.io
安装Docker-compose
sudo apt install docker-compose
添加用户组
安装好docker后,需要使用管理员权限进行操作,如:sudo docker
。为了更方便的使用docker cli,我们可以通过用户组的方式进行解决。
sudo usermod -aG docker ${USER}
设置后,执行docker ps
试试,如果提示以下错误:
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock...
则重新登录一下:
su - ${USER}
系统将提示您输入用户的密码以继续。通过键入以下内容,确认您的用户现在已添加到 docker 组:
id -nG
docker国内镜像加速
参考:http://www.884358.com/docker-cmds/#guo_nei_jia_su
跨文件系统的文件存储和性能
建议不要跨操作系统使用文件,除非有这么做的特定原因。 若想获得最快的性能速度,请将文件存储在WSL
文件系统中,前提是在 Linux 命令行(Ubuntu、OpenSUSE 等)中工作。 如果使用 Windows 命令行(PowerShell、命令提示符)工作,请将文件存储在 Windows 文件系统中。
例如,在存储 WSL 项目文件时:
使用 Linux 文件系统根目录:/home/<user name>/Project
而不使用 Windows 文件系统根目录:/mnt/c/Users/<user name>/Project$
或 C:\Users\<user name>\Project
在 WSL 命令行的文件路径中看到 /mnt/
时,表示你正在使用已装载的驱动器。 因此,Windows 文件系统 C:/ 驱动器 (C:\Users\<user name>\Project)
在 WSL 命令行中装载时将如下所示:/mnt/c/Users/<user name>/Project$
。 可以将项目文件存储在装载的驱动器上,但如果将其直接存储在 \\wsl$
驱动器上,性能速度会提高。
https://learn.microsoft.com/zh-cn/windows/wsl/filesystems#file-storage-and-performance-across-file-systems
参考:
https://learn.microsoft.com/zh-cn/windows/wsl/install
https://blog.csdn.net/u011119817/article/details/130745551