WSL 挂载虚拟磁盘

为了扩展 WSL 虚拟机的大小,可以在 D 盘创建一个虚拟硬盘文件作为 WSL 虚拟机的数据盘。

  1. 创建虚拟硬盘文件。打开磁盘工具,点击 操作 > 创建 VHD 打开虚拟硬盘创建菜单,创建一个虚拟硬盘文件:

    image

    这里我新建了一个 4T 的虚拟硬盘文件:

    image

  2. 打开 启用或关闭 Windows 功能,打开 Hyper-V 功能。

  3. 将 VHDX 虚拟硬盘文件装载到 Windows 中。打开终端(管理员),运行下面的命令:

    $ Write-Output "\\.\PhysicalDrive$((Mount-VHD -Path <pathToVHD> -PassThru | Get-Disk).Number)"
    \\.\PhysicalDrive2
    

    记得将 <pathToVHD> 替换为你实际的虚拟硬盘文件的路径。

    命令返回的结果就是我们挂载的磁盘的设置 ID,这里是 \\.\PhysicalDrive2

  4. 挂载虚拟磁盘到 WSL:

    wsl --mount \\.\PhysicalDrive2 --bare
    

    硬盘会被挂载到 /mnt/wsl/<DiskID>

  5. 格式化虚拟磁盘。首先找到虚拟磁盘在 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
    
  6. 将硬盘挂载到指定目录下:

    mkdir ~/data
    sudo mount /dev/sde data
    sudo chown $USER:$USER data
    
  7. 设置开机自动挂载:

    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>]
    

参考:

posted @ 2024-11-07 20:11  Undefined443  阅读(29)  评论(0编辑  收藏  举报