/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}
使用 WSL 在 Windows 上安装 Linux
一、安装
1. 简化命令安装(推荐)
若运行最新版 Windows(内部版本 20262+),可使用简化命令安装 WSL 及指定 Linux 发行版:
# 安装默认发行版
wsl –install
# 安装指定发行版(如 Ubuntu 22.04)
wsl –install Ubuntu-22.04
# 更新和升级软件包(进入 WSL 后执行)
sudo apt update && sudo apt upgrade
2. 手动安装
启用 WSL
适用于 Linux 的 Windows 子系统随 Windows 提供,但需先启用:
- 通过 PowerShell(管理员)执行:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
安装 Ubuntu 22.04
从 Microsoft Store 搜索并安装 Ubuntu 22.04,首次启动时设置用户名和密码。
安装 ROS2(可选)
wget https://gitee.com/ncnynl/commands/raw/master/online.sh
sudo chmod +x ./online.sh
./online.sh
# 安装 ROS2 humble
cs -s install_ros2_humble.sh
二、设置 WSL 开发环境
1. 从 WSL 1 升级到 WSL 2
检查系统要求
- x64 系统:Windows 10 版本 1903+,内部版本 18362.1049+
- ARM64 系统:Windows 10 版本 2004+,内部版本 19041+
启用虚拟机平台
以管理员身份打开 PowerShell 并执行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重启计算机。
下载 Linux 内核更新包
根据系统架构下载并安装:
- x64 内核包
- ARM64 内核包
设置 WSL 2 为默认版本
wsl –set-default-version 2
将现有发行版升级到 WSL 2
wsl -l -v
wsl –set-version Ubuntu-22.04 2
2. WSL 配置文件
全局配置(.wslconfig)
文件路径:%UserProfile%\\.wslconfig,适用于 WSL 2 发行版。
示例配置:
[wsl2]
memory=4GB
processors=2
localhostforwarding=true
networkingMode=mirrored # 需要 Windows 11 22H2+
firewall=true
autoProxy=true
dnsTunneling=true
[experimental]
autoMemoryReclaim=gradual
hostAddressLoopback=true
sparseVhd=true
修改后需执行 wsl –shutdown 重启 WSL。
发行版配置(wsl.conf)
文件路径:/etc/wsl.conf,用于单个发行版配置。
示例:
[automount]
root = /
enabled = true
options = "metadata,uid=1000,gid=1000,umask=022"
[network]
hostname = DemoHost
generateHosts = false
generateResolvConf = false
[interop]
enabled = true
appendWindowsPath = true
[user]
default = DemoUser
[boot]
systemd = true
command = service docker start
3. 设置 Windows Terminal
从 Microsoft Store 安装 Windows Terminal,可自定义主题、默认启动项等,实现多标签管理。
4. 安装 Git
sudo apt update
sudo apt install git -y
git config –global user.name "Your Name"
git config –global user.email "your.email@example.com"
5. 设置 VSCode 编辑器
常见问题
若出现 /mnt/c/…/Code.exe: Exec format error,执行以下命令:
sudo sh -c 'echo :WSLInterop:M::MZ::/init:PF > /usr/lib/binfmt.d/WSLInterop.conf'
sudo systemctl unmask systemd-binfmt.service
sudo systemctl restart systemd-binfmt
sudo systemctl mask systemd-binfmt.service
然后执行 wsl –shutdown 重启。
6. GPU 加速(ML)
安装 Docker
curl https://get.docker.com | sh
sudo service docker start
安装 PyTorch + DirectML
conda create –name py311 python=3.11 -y
conda activate py311
sudo apt install libblas3 libomp5 liblapack3
pip install torch-directml
验证:
import torch
import torch_directml
dml = torch_directml.device()
print(dml)
print(torch.cuda.is_available()) # 应返回 False
7. 运行 Linux GUI 应用
先决条件:
- Windows 10 19044+ 或 Windows 11
- 安装对应 GPU 驱动程序(Intel / AMD / NVIDIA)
- 发行版运行于 WSL 2
# 更新 WSL
wsl –update
wsl –shutdown
# 安装 GUI 应用
sudo apt update
sudo apt install nautilus x11-apps -y
# 启动应用
nautilus
xcalc
xclock
8. 设置 Node.js
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
# 安装 Node.js LTS
nvm install –lts
# 验证
node –version
npm –version
三、WSL 常用命令
| wsl –list –online | 列出可在线安装的发行版 |
| wsl -l -v | 列出已安装发行版及版本 |
| wsl –set-version <名称> 2 | 将发行版切换至 WSL 2 |
| wsl –shutdown | 关闭所有 WSL 实例 |
| wsl –export <名称> <路径>.tar | 导出发行版 |
| wsl –import <名称> <安装路径> <tar路径> | 导入发行版 |
| wsl –unregister <名称> | 卸载发行版 |
| wsl ~ | 在用户主目录启动 WSL |
| wsl -u root | 以 root 身份进入 |
| wsl top | 查看 WSL 进程资源使用 |
四、网络
WSL 安装后会自动创建虚拟网卡,默认使用 NAT 网络模式。可在 .wslconfig 中配置 networkingMode=mirrored 启用镜像网络。
五、磁盘存储
1. 存储架构
WSL 2 使用 VHDX 虚拟磁盘文件存储 Linux 文件系统,默认位于:
%USERPROFILE%\\AppData\\Local\\Packages\\<Distro>\\LocalState\\ext4.vhdx
2. 挂载 Windows 磁盘
- 自动挂载:默认 Windows 驱动器挂载于 /mnt/ 下。
- 手动挂载:sudo mount -t drvfs C: /mnt/c
- 自定义挂载:编辑 /etc/fstab 实现持久化挂载。
3. 迁移 WSL 到其他盘
# 导出
wsl –export Ubuntu-22.04 D:\\ubuntu_backup.tar
# 注销原发行版
wsl –unregister Ubuntu-22.04
# 导入到新位置
wsl –import Ubuntu-22.04 D:\\wsl\\ubuntu D:\\ubuntu_backup.tar –version 2
# 设置默认用户
Ubuntu-22.04.exe config –default-user yf
六、连接 USB 设备
1. Windows 安装 usbipd-win
从 GitHub Releases 下载安装。
2. 使用示例
# 列出 USB 设备
usbipd list
# 绑定设备
usbipd bind —busid <BUSID>
# 附加到 WSL
usbipd attach —wsl —busid <BUSID>
3. WSL 侧检查
sudo modprobe vhci_hcd
lsusb
ls /dev/video* # 若为摄像头
4. 编译自定义内核(如需支持特定硬件)
若需启用摄像头或特定驱动,可自行编译 WSL 内核。
# 下载对应版本内核源码
git clone -b linux-msft-wsl-6.6.87.2 https://github.com/microsoft/WSL2-Linux-Kernel.git
# 安装编译依赖
sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev libncurses-dev
# 配置内核(启用摄像头等)
make menuconfig KCONFIG_CONFIG=Microsoft/config-wsl
# 编译
make -j$(nproc) KCONFIG_CONFIG=Microsoft/config-wsl
make modules_install
make install
# 将编译好的内核复制到 Windows
cp arch/x86/boot/bzImage /mnt/d/wsl/
# 在 .wslconfig 中指定内核
[wsl2]
kernel=D:\\\\wsl\\\\bzImage
七、运行 Windows 程序
在 WSL 终端中可直接运行 Windows 可执行文件:
notepad.exe
calc.exe
code ~
可设置别名以简化使用:
alias npp="/mnt/d/Program\\ Files/Notepad++/notepad++.exe"
# 将 alias 添加到 ~/.bashrc 持久化
八、常见问题
1. systemd 启动失败
若出现 Failed to start the systemd user session,可降级 WSL 版本至 2.5.9,或更新至更高版本以获取修复。
2. 镜像网络模式不支持
检查:
- Windows 版本是否满足要求(Windows 11 22H2+)
- Hyper-V 及虚拟机平台是否启用
- BIOS 中虚拟化技术是否开启
3. USB/IP 加载失败
确认内核配置中包含:
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
若使用自定义内核,确保对应模块已编译并安装。





