背景
最近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. インポートしたいのと同じディストロで新規に起動
Powershellで
wsl --install Ubuntu-22.04 など、
Ubuntu-22.04 の部分に対象のディストロを入れる。
(私の環境は当初20.04だったのを後からアップデートしたため、なぜか名前がUbuntu20.04なのに実体が22.04になっている)
4. WSLのシャットダウン
Powershellで
wsl --shutdown
5. WSLが指すディスクファイルの置き換え
2のパスの先頭文字をCドライブに変えたのと大体同じ場所に ext4.vhdxがあるので、これを前世のに置き換える。
6. 起動して置き換わったか確認
Powershellで
wsl -d Ubuntu-22.04
起動して ls などして前世のWSLのファイルにアクセスできていることを確認