WSL2の引っ越し
メインPCを新しくしたのですが、WSL2の環境を引っ越すのにちょっとはまりました。
旧PCで export して、新PCで import すればいいんですが、export はできました。
> wsl --export Ubuntu-22.04 Ubuntu-22.04.tar
この tar ball を新PCにコピーして import しようとしたのですが、
> wsl --import Ubuntu-22.04 C:\WSL2 .\Ubuntu-22.04.tar
Copyright (c) Microsoft Corporation. All rights reserved.
使用方法: wsl.exe [Argument]
引数:
--install <Options>
Linux 用 Windows サブシステムの機能をインストールします。オプションが指定されていない場合は、
既定のディストリビューションと共に、推奨される機能がインストールされます。
:
というぐあいに、usage が出力されるだけでした。しかも –import オプションはなし。
ヘルプに書いてある通りなんですが、なんか install って、新しいディストリビューションを入れるコマンドで、WSLの機能をインストールするものじゃないはず、というところでつまづいてしまって、しばらくフリーズしてしまいました。
何はともあれ、まず install しなきゃです。
ディストリビューションは tar ball から import するので、なしにして。
> wsl --install --no-distribution
インストール中: 仮想マシン プラットフォーム
仮想マシン プラットフォーム はインストールされました。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。
再起動後 –import オプションもあるのを確認できたので、tar ball から import します。
> wsl --import Ubuntu-22.04 C:\Users\mtyst\WSL2\ .\Ubuntu-22.04.tar
インポート中です。この処理には数分かかることがあります。
この操作を正しく終了しました。
> wsl -l -v
NAME STATE VERSION
* Ubuntu-22.04 Stopped 2
スタートメニューからペンギンアイコンのWSLを起動します。
root でログインしてしまっているので、デフォルトユーザを自分のアカウントに変更するため、/etc/wsl.conf を編集します。
# cat /etc/wsl.conf
[network]
hostname = inspiron3020s
[user]
default=mtystg
hostname はなくてもいいのですが、Windows のホスト名を大文字交じりにしちゃっていたので、気持ち悪かったので全部小文字のホスト名に変更しました。
んで、shutdown。
> wsl --shutdown
再度、WSLを起動し、bash に入ると指定したデフォルトユーザになっていました。