安装
备份
-
查看当前所有分发版
1
wsl -l -v
记住要迁移的名称
-
停止 WSL(避免文件损坏)
1
wsl --shutdown -
导出分发版(两种格式选一种,推荐 –vhd)
-
推荐:导出为 .vhdx(WSL2 专用,性能更好)
1
wsl --export Ubuntu-24.04 D:\WSL-Backup\ubuntu-24.04.vhdx --vhd
-
或者传统方式:导出为 .tar(通用,但稍慢)
1
wsl --export Ubuntu-24.04 D:\WSL-Backup\ubuntu-24.04.tar
-
-
卸载原分发版,释放 C 盘空间
1
wsl --unregister Ubuntu-24.04 -
导入到新位置
-
如果导出的是 .vhdx:
1 2
mkdir D:\WSL\Ubuntu-24.04 wsl --import-in-place Ubuntu-24.04 D:\WSL\Ubuntu-24.04\ext4.vhdx
(–import-in-place 直接使用已有 vhdx 文件,不复制,速度最快)
-
如果导出的是 .tar:
1 2
mkdir D:\WSL\Ubuntu-24.04 wsl --import Ubuntu-24.04 D:\WSL\Ubuntu-24.04 D:\WSL-Backup\ubuntu-24.04.tar --version 2
-
把 Docker 容器 → 作为 WSL 的独立发行版
用 Docker 来“打包”一个干净/定制好的 Linux 环境,然后导入 WSL。
导出步骤(在有 Docker 的机器上,通常是 Windows 的 Docker Desktop 或另一台机器)
1
2
3
4
5
# 1. 先确保容器存在(可以是已停止的)
docker ps -a
# 2. 导出容器文件系统为 tar
docker export 容器名或容器ID > ubuntu2604.tar
导入到 WSL 的步骤(在 Windows 上执行,PowerShell 或 cmd)
1
2
3
4
# 导入命令
wsl --import 发行版名称 存放目录 tar文件完整路径 --version 2
wsl --import ubuntu2604 D:\WSL\ubuntu2604 D:\wsl-images\ubuntu2604.tar --version 2
默认用户初始化
安装sudo并添加用户
1
2
3
4
5
6
7
8
9
10
11
apt update
# 需要systemd挂载debugfs等常规fs,以及启动部分服务
apt install sudo systemd systemd-sysv vim
# 尽量减少使用root用户
usermod -aG sudo ubuntu
usermod -s /usr/bin/bash ubuntu
# 设置默认密码
echo -e "ubuntu\nubuntu\n" | passwd ubuntu
echo -e "ubuntu\nubuntu\n" | passwd
#sudo 免密
echo -e "ubuntu\tALL=(ALL)\tNOPASSWD:ALL" >> /etc/sudoers
设置默认用户为ubuntu
1
2
3
4
echo "[boot]
systemd=true
[user]
default=ubuntu" >> /etc/wsl.conf
重启wsl生效
编译环境准备
代码目录
挂载 /home/ubuntu/code目录
1
sudo vi /etc/systemd/system/bind-code.service
粘贴:
1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=Bind mount code after automount
After=local-fs.target
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/bin/mount --bind /mnt/c/Users/fengjianwei/Documents/code /home/ubuntu/code
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
必要的开发工具
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
sudo apt install wget lsb-release software-properties-common gnupg pkg-config git ccache
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 21
sudo apt install gcc-15
sudo apt install -y \
clang-21 \
clangd-21 \
clang-format-21 \
clang-tidy-21 \
clang-tools-21 \
lld-21 \
lldb-21 \
llvm-21 \
llvm-21-dev \
libclang-21-dev \
libclang-rt-21-dev \
libc++-21-dev \
libc++abi-21-dev \
libomp-21-dev
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-21 210 --slave /usr/bin/clang++ clang++ /usr/bin/clang++-21 --slave /usr/bin/clangd clangd /usr/bin/clangd-21 --slave /usr/bin/clang-format clang-format /usr/bin/clang-format-21
# cuda
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt install -y cuda-toolkit-13-1 # 替换为实际可用版本,如 cuda-toolkit-13-0
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH' >> ~/.bashrc
source ~/.bashrc
# libbpf
sudo apt install -y libelf-dev
cd ~ && git clone https://github.com/libbpf/libbpf.git
cd libbpf/src
make -j$(nproc)
sudo make install PREFIX=/usr/local
sudo apt install -y bpftool
# cmake
sudo apt-get update
sudo apt-get install ca-certificates gpg wget
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ noble main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
sudo apt-get update
sudo rm /usr/share/keyrings/kitware-archive-keyring.gpg # 移除旧的临时签名文件(可选,但推荐)
sudo apt-get install cmake ninja-build ccache
# 内核
sudo apt install -y kmod
# rdma 假的
# 更新源并安装核心 RDMA 包(包含 libibverbs、librdmacm、perftest 等工具)
sudo apt update
sudo apt install -y rdma-core \
ibverbs-utils \
infiniband-diags \
perftest \
mstflint \
libibverbs-dev \
librdmacm-dev
# 可选:安装更多诊断/测试工具
sudo apt install -y ibutils opensm rdma-ndd srptools
# python
sudo apt install -y python3 python3-pip python3-venv
sudo apt install pipx -y # 这步会自动处理 venv 等依赖
pipx ensurepath # 加 PATH(如果提示的话)
# 重开终端 或 source ~/.bashrc / ~/.profile
# 安装 conan
pipx install conan
conan --version
清理压缩
1
Optimize-VHD -Path "ext4.vhdx" -Mode Full