新PCでのWSLのセットアップと旧PCからの環境移行

WSLのエクスポートからのインポートで簡単なんだけどデフォルトユーザーとか少し工夫が必要だったのでメモ。

WSLの有効化

参考: Windows 10 用 Windows Subsystem for Linux のインストール ガイド

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

GUIからも有効にできるようだけどコマンドで。
自作PCのためBIOSの設定が必要だったのでいったんBIOSに入ってSVMModeをEnableに。

再起動してWSLのインストールを完了。
そのあとカーネル更新プログラム(上記インストールガイドからダウンロードできる)を適用してからデフォルトのバージョンを2にする。

wsl --set-default-version 2

エクスポートとインポート

参考: 「WSL」ディストリビューションのインポート・エクスポートはこんなに簡単!

ThinkPad X1EのPowerShellでエクスポート。

wsl --export Ubuntu ./Ubuntu.tar

Ubuntu.tarは62GBあったので外付けHDDで自作PCに移し、PowerShellでインポート。

mkdir ~/AppData/Local/Ubuntu
wsl --import Ubuntu ~/AppData/Local/Ubuntu ./Ubuntu.tar --version 2

確認。

wsl -l -v

Ubuntuが入っていればOK。

デフォルトユーザーを変更

インポートしたUbuntuのデフォルトユーザーがrootになっているので、これを一般ユーザー(akahige)にする。

そのためにPowerShell上でubuntuコマンドを使いたいので、Windows StoreからUbuntuをゲットする。
ちなみにインポートしたUbuntuの環境がこれにより上書きされることはない。

コマンドが使えるようになったら以下を実行。

ubuntu config --default-user akahige

ターミナルソフトの設定

Hyperを使っているのでHyperを起ち上げたときにWSLがデフォルトになるように設定する。
左上のハンバーガーから「Edit」->「Preference」してメモ帳で開かれた設定ファイルを編集。

shell: 'C:\\Windows\\System32\\wsl.exe',
shellArgs: ['~'],

ターミナルソフトはWindows Terminalもまあまあいいが、日本語入力がインラインで行われる点でHyperの方が使いやすい。今のところ。

ともあれこれで旧PCと全く同じ環境が新PC側にできる。
このポータビリティはすごく素晴らしいぞ。