一、适用场景

适用于:

  • 给 WSL 挂载独立数据盘(模型、数据集、工程目录)
  • 使用 Windows 11 + WSL2
  • 希望把大文件放在非系统盘(如 G 盘)

二、完整操作流程(方式一:在 DiskPart 中直接格式化 ext4)

1️⃣ 创建虚拟磁盘并分区(Windows)

管理员权限打开 PowerShell 或 CMD:

diskpart
create vdisk file="G:\WSL\data.vhdx" maximum=512000 type=expandable
select vdisk file="G:\WSL\data.vhdx"
attach vdisk
create partition primary
select partition 1
format fs=ext4 quick label="WSLData"
detach vdisk
exit

✅ 这一步非常关键:
如果缺少

select partition 1
format fs=ext4 quick label="WSLData"

那么虚拟磁盘只是“分了区”,没有 Linux 文件系统,WSL 一定挂载失败。


2️⃣ 使用 WSL 挂载虚拟磁盘

wsl --mount G:\WSL\data.vhdx --vhd --name dataDisk

3️⃣ 在 WSL 内验证

进入 WSL:

df -h

挂载点:

/mnt/wsl/dataDisk

测试:

touch /mnt/wsl/dataDisk/test.txt

三、完整操作流程(方式二:在 WSL 内部格式化)

如果你已经创建了 VHDX + 分区,但忘了格式化 ext4,也可以用这种补救方式:

1️⃣ 先挂载虚拟磁盘

wsl --mount G:\WSL\data.vhdx --vhd --name dataDisk

2️⃣ 在 WSL 内格式化

lsblk

找到新磁盘(如 /dev/sdb1 ):

sudo mkfs.ext4 /dev/sdb1
sudo mkdir -p /mnt/wsl/dataDisk
sudo mount /dev/sdb1 /mnt/wsl/dataDisk

四、以后如何使用(免重复格式化)

以后每次重启电脑,只需:

wsl --mount G:\WSL\data.vhdx --vhd --name dataDisk

WSL 会自动识别 ext4 文件系统并挂载。


五、错误根因总结(防踩坑)

现象根因
No such device分区存在,但没有 ext4 文件系统
挂载失败忘了 --vhd
WSL 能看到磁盘但 mount 失败裸分区,没格式化
DiskPart 看得到盘但 WSL 识别不了Windows 默认不创建 Linux 文件系统

六、一句话核心结论

WSL 挂载虚拟磁盘的本质要求:分区 + ext4 文件系统 缺一不可。

发表回复

您的电子邮箱地址不会被公开。