最近PCを買い替えました。
その際、WSL環境を移行にい手間取ったので、そのことについて簡単にまとめてみました。
ver
Windows10
Ubuntu18.04
目標
旧PCのWSLの環境を新PCに移行して起動する(Windows ストアアプリ Ubuntu 18.04にて)
WSL環境(ディストリビューション)を別PCに移行すること自体は簡単である
旧PCでエクスポートいしたWSL環境を新PCでインポートするだけである
# インストールしてあるWSLの確認
wsl -l -v
# 出力されたNAME列より、移行したいWSLのNAMEを指定してエクスポート
# この場合「Ubuntu-18.04」がNAME列で出力されたもの
\ wsl --export Ubuntu-18.04 ./hoge.tar
ディストリビューション名hogeとしてエクスポート
エクスポートされたtarファイルを新PCに移行し以下を実行
ストアアプリ版Ubuntuのデータは
C:\Users\name\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_~
にあるが、参考にしたサイトでは
C:\Users\name\AppData\Local
にWSLをインストールしている
# WSLのインポート先フォルダの作成
\ mkdir ~/AppData/Local/hoge
# tarファイルのあるディレクトリにて実行
\ wsl --import hoge ~/AppData/Local/hoge
# wsl hogeが作成されたことを確認
\ wsl -l -v
# hoge起動
\ wsl --distribution hoge
ここで問題が
WSL移行自体はこれで完了しているのだが、
ストアアプリ版Ubuntu(18.04)を起動するとhogeは起動せず、新しいWSL環境が
構築され起動してしまう。
# ストアアプリ版Ubuntuを実行後に一覧を見ると、Ubuntu18.04が作成されていることがわかる
\ wsl -l -v
当初の目的であったストアアプリ版からのhogeの起動ができないのである。
解決策
1.諦めてpowershellからWSLを起動する
2.ディストリビューション名をストアアプリ版によって定められた名前にする
3.諦めてストアアプリ版を1から使っていく
-
諦めてpowershellからWSLを起動する
powershellでwslと打てば起動する(デフォルトユーザ、ディストリビューションも指定できる)ので
ストアアプリ版は諦めるという考え方 -
ディストリビューション名をストアアプリ版によって定められた名前にする
例えば、ストアアプリ版Ubuntu18.04のディストリビューション名は「Ubuntu-18.04」である
なのでインポートする際に、この名前で設定することで、ストアアプリ版をインストールし、起動することで、
インポートしたWSL環境が扱える
\ wsl --import Ubuntu-18.04 ~/AppData/Local/hoge ./hoge.tar
しかし、前に書いたようにストアアプリ版Ubuntuのデータは、
C:\Users\name\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_~
に存在しているのに対し、インポートしたWSLは別フォルダに存在しているので、
何かしらでうまく動かなくなる可能性が懸念される。
3.諦めてストアアプリ版を1から使っていく
ストアアプリ版からの起動にこだわり、かつ安全な方法
私はこれを採用した。
最後に
Windows10のデータ移行がいまいちよくわからず、フォルダを手動で移行していたので
このようなことになってしまったのかもしれない。
Windows10の移行を別の方法で行えば、アプリレベルで移行できるかもしれないので、いい方法があればコメントください。
参考サイト