WSL 挂载虚拟磁盘
为了扩展 WSL 虚拟机的大小,可以在 D 盘创建一个虚拟硬盘文件作为 WSL 虚拟机的数据盘。
-
创建虚拟硬盘文件。打开磁盘工具,点击
操作
>创建 VHD
打开虚拟硬盘创建菜单,创建一个虚拟硬盘文件:这里我新建了一个 4T 的虚拟硬盘文件:
-
打开
启用或关闭 Windows 功能
,打开Hyper-V
功能。 -
将 VHDX 虚拟硬盘文件装载到 Windows 中。打开终端(管理员),运行下面的命令:
$ Write-Output "\\.\PhysicalDrive$((Mount-VHD -Path <pathToVHD> -PassThru | Get-Disk).Number)" \\.\PhysicalDrive2
记得将
<pathToVHD>
替换为你实际的虚拟硬盘文件的路径。命令返回的结果就是我们挂载的磁盘的设置 ID,这里是
\\.\PhysicalDrive2
。 -
挂载虚拟磁盘到 WSL:
wsl --mount \\.\PhysicalDrive2 --bare
硬盘会被挂载到
/mnt/wsl/<DiskID>
-
格式化虚拟磁盘。首先找到虚拟磁盘在 WSL 中的设备名:
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 388.4M 1 disk sdb 8:16 0 2G 0 disk [SWAP] sdc 8:32 0 1T 0 disk sdd 8:48 0 1T 0 disk /mnt/wslg/distro / sde 8:64 0 4T 0 disk
可以看到这里有一个 4T 的块设备,就是我们之前新建的虚拟磁盘。接下来为它建立分区表并格式化:
sudo mkfs.ext4 /dev/sde
-
将硬盘挂载到指定目录下:
mkdir ~/data sudo mount /dev/sde data sudo chown $USER:$USER data
-
设置开机自动挂载:
Start-Process powershell -Verb RunAs -ArgumentList <mount_powershell_script path>
mount_powershell_script
:$MoutDrive=<your vhdx file path> $MountPath="\\.\PhysicalDrive$((Mount-VHD -Path $MoutDrive -PassThru | Get-Disk).Number)" wsl --mount $MountPath --partition 1 [--name <your mount name>]
参考: