[教程]在WSL2中挂载vhdx数据盘
4天前 84

今天需要重新搭建WSL2中的中间件环境,无意中发现目前WSL2是支持挂载磁盘的,官方文档

1、先创建一个vhdx磁盘

在磁盘管理中可以点击“操作”——“创建VHD”,然后按下图创建一个vhdx作为Linux的数据盘

image.webp

2、获取vhdx挂载路径

由于使用wsl挂载时需要Windows的物理磁盘路径,所以先用管理员执行下面命令(记得自己改vhdx路径)

Write-Output "\\.\PhysicalDrive$((Mount-VHD -Path D:\WSL2\data\data.vhdx -PassThru | Get-Disk).Number)"

记住一定要管理员运行

image.webp

执行后就得到路径了,如果有报错,请先到磁盘管理里初始化磁盘为GPT模式,然后点左边的磁盘名称右键“分离VHD”分离磁盘。

3、挂载磁盘

执行挂载命令

wsl --mount \\.\PhysicalDrive5

显示已连接磁盘,但会有一个报错,不用管

image.webp

4、磁盘分区

进入wsl之后,执行lsblk命令,发现已经附加到磁盘了,sdd设备就是新的盘

image.webp

执行分区命令,注意这里的sdd需要改成你的磁盘号千万不能选错磁盘,不然你的数据就没有啦

fdisk /dev/sdd

依次输入命令并挨个回车。这里使用的是fdisk的参数命令,p表示查看分区,d表示删除分区,n表示新建分区,w表示保存

p

d(确认是否已经存在一个分区,如果存在可以执行d命令,否则可以跳过)

n

(回车3次)

p

w

image.webp

5、分区格式化

现在使用lsblk查看你的分区,会发现已经有一个128GB的分区sdd1了

image.webp

接下来直接格式化即可,按你需要的格式类型

比如我只需要使用ext4格式,你可以执行下面命令,然后等待命令自动结束就行

mkfs.ext4 /dev/sdd1

image.webp

你也可以换成你自己需要的格式,比如xfs就是mkfs.xfs /dev/sdd1(可能需要安装xfsprogs包,命令:apt-get install xfsprogs -y)

6、挂载分区

最后就是在Linux里挂载分区了,先创建一个目标目录,然后手动执行挂载命令测试是否挂载成功

mkdir /data
mount /dev/sdd1 /data
df -h /data

image.webp

确认挂载没有问题,接下来可以先取消挂载,然后做成开机自动挂载

编辑fstab文件,添加以下内容,每列用空格或者TAB键隔开

vi /etc/fstab

/dev/sdd1       /data   ext4    defaults 0       0

image.webp

卸载已挂载的磁盘:umount /data

模拟自动挂载:mount -a

umount /data
systemctl daemon-reload
mount -a
df -h /data

image.webp

这样你每次开启WSL时都会自动挂载数据盘了,以后需要更新系统时直接重新分离和挂载数据盘就行了

最后于 4天前 被caocaofff编辑 ,原因:
奖励
收藏
点赞
分享
官方QQ群:872611894(群密码:pecmd.net)
最新回复 (2)
  • avatar image
    wxinchun92 4天前

    windows直接装载vhd虚拟磁盘,WSL会把win下的所有磁盘装载到/mnt下

  • avatar image
    caocaofff 3天前
    楼主   3
    wxinchun92 windows直接装载vhd虚拟磁盘,WSL会把win下的所有磁盘装载到/mnt下

    没错,这样也可以,只不过我是不想用/mnt目录,而且还有分区格式限制

    官方QQ群:872611894(群密码:pecmd.net)
返回