WSL 加载 VHDX 文件

Windows 11 + WSL2 + WSL Ubuntu + WSL Debian

为了编译各种奇奇怪怪的东西,经常要在两个不同的 WSL Linux 里切换。

WSL 本质上是虚拟机,直接copy文件比较麻烦,用 /mnt/wsl/ 当共享目录也得去复制,所以索性在外边建了一个单独的vhdx 文件,当格式化成 ext4 后,给两个 WSL Linux 挂载。自己用不跑服务,不担心文件操作的冲突,遇到点小问题也能接受。

直接把下列命令加到 .bashrc 里,加完后 WSL 加载时自动检测并执行mount,实现把 vhdx 挂载成 /opt/work 。

if [[ ! -d /opt/work/lost+found ]]; then

  wsl.exe -d Debian --mount --vhd D:/WSL/Disks/wsl2-work.vhdx --bare --name work

  dev=$(lsblk |grep part|grep 500G | grep -o 'sd[a-z]1')
  mount /dev/$dev /opt/work

fi

这个脚本有个不合理的地方,因为我不知道如何从 WSL 已加载的磁盘里找到刚mount的,而正好我的几个硬盘大小不一样,所以找到了一个可以匹配的 pattern 去定位要挂载的分区。

但是我准备抛弃 WSL了,尝试把主机切换到 PVE下,这样远程出问题好解决。

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *