在WSL中挂载另一WSL的VHDX虚拟磁盘(WSL 数据迁移)

文章目录

    • 复制虚拟磁盘
    • 加载虚拟磁盘
      • 使用 HyperV
      • 使用磁盘管理
    • 将磁盘挂载至 WSL 中
    • 在 WSL 中挂载磁盘

复制虚拟磁盘

C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\ext4.vhdx 为 WSL2 磁盘所在位置,以 Microsoft 虚拟磁盘的形式存在。将其复制到我们的新机器上,在新机器上执行后续操作。

加载虚拟磁盘

将虚拟磁盘加载到新机器中,方法有两种:

使用 HyperV

HyperV 要求专业版、企业版、教育版 Windows。
先在 Windows 上启用 HyperV 组件,以管理员身份运行 Power Shell,执行以下指令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

随后重启电脑即可完成 HyperV 的启用。再次以管理员身份运行 Power Shell,执行以下指令:

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

记下其输出,如 \\.\PhysicalDrive3,此为虚拟磁盘在本机中的磁盘号

使用磁盘管理

右键此电脑->管理->磁盘管理
在磁盘管理中随便点击一块磁盘,在右方的“更多操作”中点击“附加虚拟磁盘”,选中磁盘文件即可。
在 Power Shell 中执行以下指令:

GET-CimInstance -query "SELECT * from Win32_DiskDrive"

这个指令将输出计算机目前的所有磁盘,复制虚拟磁盘对应的磁盘号,如磁盘0对应\\.\PhysicalDrive0

DeviceID           Caption                                  Partitions Size          Model
--------           -------                                  ---------- ----          -----
\\.\PHYSICALDRIVE0 KBG40ZNT256G TOSHIBA MEMORY              3          256052966400  KBG40ZNT256G T...
\\.\PHYSICALDRIVE1 TOSHIBA DT01ACA100                LENOVO 1          1000202273280 TOSHIBA DT01AC...
\\.\PHYSICALDRIVE3 Microsoft 虚拟磁盘                       0          274872407040  Microsoft 虚拟...
\\.\PHYSICALDRIVE2 KIOXIA-E XCERIA SSD USB Device           4          1000202273280 KIOXIA-E XCERI...

将磁盘挂载至 WSL 中

在 Power Shell 中执行

wsl --mount \\.\PHYSICALDRIVE3 --bare

在 WSL 中挂载磁盘

启动 WSL,创建挂载点,如 /mnt/school 文件夹

mkdir /mnt/school

以 root 用户的身份执行 mount 指令

mount /dev/sde /mnt/shool

即可挂载成功,可以通过 ls 查看

ls /mnt/school

你可能感兴趣的:(WSL,linux,windows)