laft’s diary

備忘録か日記

前使ってたディスクからWSL移行

背景

最近PC交換のついでにwindowsクリーンインストールをしてた。 前世のディスクはEドライブに挿しているので、データ自体はいつでも参照可能になっている。 今回はこれに入っていた前世のWSLをぶっこ抜いて今世のWSLにインポートしたい。

ググると↓がヒットしたので、これをやるだけです。 github.com

前世のWindows OSを起動可能な場合は、WSL側が用意しているエクスポート&インポート手段があるので、以下の手法を利用せずともそれを利用するとよさそう。

手法

端的には、インポートしたいWSLと同じディストロで新規に起動し、参照しているディスクを置き換えればよい。

1. WSLのインストール

(対象読者層を考えると知らないことないはず。知らない人は適宜調べてください)

2. インポートしたい前世のWSLディスクを探す

だいたいこの辺 E:\Users\username\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onhoge\LocalState\ext4.vhdx

3. インポートしたいのと同じディストロで新規に起動

Powershellwsl --install Ubuntu-22.04 など、 Ubuntu-22.04 の部分に対象のディストロを入れる。

(私の環境は当初20.04だったのを後からアップデートしたため、なぜか名前がUbuntu20.04なのに実体が22.04になっている)

4. WSLのシャットダウン

Powershellwsl --shutdown

5. WSLが指すディスクファイルの置き換え

2のパスの先頭文字をCドライブに変えたのと大体同じ場所に ext4.vhdxがあるので、これを前世のに置き換える。

6. 起動して置き換わったか確認

Powershellwsl -d Ubuntu-22.04

起動して ls などして前世のWSLのファイルにアクセスできていることを確認