今天需要重新搭建WSL2中的中间件环境,无意中发现目前WSL2是支持挂载磁盘的,官方文档
在磁盘管理中可以点击“操作”——“创建VHD”,然后按下图创建一个vhdx作为Linux的数据盘
由于使用wsl挂载时需要Windows的物理磁盘路径,所以先用管理员执行下面命令(记得自己改vhdx路径)
Write-Output "\\.\PhysicalDrive$((Mount-VHD -Path D:\WSL2\data\data.vhdx -PassThru | Get-Disk).Number)"
记住一定要管理员运行
执行后就得到路径了,如果有报错,请先到磁盘管理里初始化磁盘为GPT模式,然后点左边的磁盘名称右键“分离VHD”分离磁盘。
执行挂载命令
wsl --mount \\.\PhysicalDrive5
显示已连接磁盘,但会有一个报错,不用管
进入wsl之后,执行lsblk命令,发现已经附加到磁盘了,sdd设备就是新的盘
执行分区命令,注意这里的sdd需要改成你的磁盘号,千万不能选错磁盘,不然你的数据就没有啦
fdisk /dev/sdd
依次输入命令并挨个回车。这里使用的是fdisk的参数命令,p表示查看分区,d表示删除分区,n表示新建分区,w表示保存
p
d(确认是否已经存在一个分区,如果存在可以执行d命令,否则可以跳过)
n
(回车3次)
w
5、分区格式化
现在使用lsblk查看你的分区,会发现已经有一个128GB的分区sdd1了
接下来直接格式化即可,按你需要的格式类型
比如我只需要使用ext4格式,你可以执行下面命令,然后等待命令自动结束就行
mkfs.ext4 /dev/sdd1
你也可以换成你自己需要的格式,比如xfs就是mkfs.xfs /dev/sdd1(可能需要安装xfsprogs包,命令:apt-get install xfsprogs -y)
最后就是在Linux里挂载分区了,先创建一个目标目录,然后手动执行挂载命令测试是否挂载成功
mkdir /data mount /dev/sdd1 /data df -h /data
确认挂载没有问题,接下来可以先取消挂载,然后做成开机自动挂载
编辑fstab文件,添加以下内容,每列用空格或者TAB键隔开
vi /etc/fstab
/dev/sdd1 /data ext4 defaults 0 0
卸载已挂载的磁盘:umount /data
模拟自动挂载:mount -a
umount /data systemctl daemon-reload mount -a df -h /data
这样你每次开启WSL时都会自动挂载数据盘了,以后需要更新系统时直接重新分离和挂载数据盘就行了
windows直接装载vhd虚拟磁盘,WSL会把win下的所有磁盘装载到/mnt下
wxinchun92 windows直接装载vhd虚拟磁盘,WSL会把win下的所有磁盘装载到/mnt下
没错,这样也可以,只不过我是不想用/mnt目录,而且还有分区格式限制