lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

WSL2でexportしてないdistroを直接importする

概要

OSを入れ直したPCで以前使っていたWSL2のdistroをインポートします。
tarで固めたファイルをインポートするやり方はいろんな人がやってるんですが、今回はtarで固めるのを忘れてOS再インストールしたので...

前提

想定するシチュエーション

PCを組み直してSSDも変更したのでOSをクリーンインストールしました(書きづらいのでここでは再インストールとします)。
しかし、再インストール前にWSL2のdistroをexportするのを忘れていました。
前提にも記載しましたが、Dドライブにdistroを配置して運用していたので、.vhdxファイルはDドライブに存在します。
exportでtarに固めたファイルのインポート方法はいくらでも書いてあるけど、tarで固めてないパターンの手順がわからない...と言うシチュエーションです。

import-in-placeでdistroをインポート

--import-in-placeオプションを使って.vhdxファイルを直接指定してインポートします。 以下の通りです。

PS C:\Users\> wsl --list --verbose
Linux 用 Windows サブシステムにディストリビューションがインストールされていません。

'wsl.exe --list --online' を使用して利用可能なディストリビューション
を一覧表示し、'wsl.exe --install <Distro>' を使用してインストールします。

また、Microsoft Store にアクセスしてディストリビューションをインストールすることもできます:
https://aka.ms/wslstore
Error code: Wsl/WSL_E_DEFAULT_DISTRO_NOT_FOUND

PS C:\Users\> wsl --import-in-place workspace D:\wsl\Ubuntu\ext4.vhdx
この操作を正しく終了しました。
PS C:\Users\lyche> wsl --list --verbose
  NAME         STATE           VERSION
* workspace    Stopped         2

詳細は公式の下記ドキュメントを参照。

WSL の基本的なコマンド | Microsoft Learn

参考

雑感

実践されている方が居て助かりました。久しぶりにWSL触ったのでヘルプを読んでもなかなかピンと来なくて...