LoginSignup
0
1

More than 3 years have passed since last update.

VirtualBox上のLinuxからWSL2へのデータ移行

Last updated at Posted at 2019-11-23

VirtualBox上のLinuxのイメージファイルから、WSL2へデータを移行する方法です。

経緯

WSL2がSlow Ringに入ったので、そろそろVirtualBoxから移行しようかと思ったのですが、WSL2がHyper-Vサブセットを使っているため、VirtualBoxを動かしながらデータを移行することはできないようです。
そこでWSL2でVirtualBoxのイメージファイルを直接マウントして読み出せばいいのではないかと思ってやってみたら、できました。

RAW形式への変換

VirtualBoxの標準のVDI形式ではマウントできません。下記のようにWindows上でVBoxManageコマンドで変換します。
未使用部分も含めたファイルになるのでディスクを喰います。

"\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd --format RAW "C:\Users\ユーザ名\VirtualBox VMs\Fedora 29\Fedora 29.vdi" Desktop\virtualbox.img

LVMイメージのマウント

VirtualBox上のLinuxでパーティションを直接マウントしていた場合は、mount時にoffset=を指定する程度で済むのですが、LVMを使っていた場合は、WSLでもLVM経由で読む必要があります。
まずWSL2の/etc/lvm/lvm.confのuse_lvmetad = 1をuse_lvmetad = 0に書き換えます(必須かどうかわかりませんが、書き換えないとwarningが出ます)。
その上でWSL2で下記の手順でマウントします。デバイスファイルはLV名によって異なります。

losetup /dev/loop0 /mnt/c/Users/ユーザ名/Desktop/virtualbox.img 
kpartx -a /dev/loop0 
vgscan --mknodes
vgchange -ay
lvscan
mkdir /mnt/vb
mount -o ro /dev/fedora/home /mnt/vb

--mknodesがないとデバイスファイルができないところが要注意です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1