PC買い替え時のWSLの移行についてのメモ


最近PCを買い替えました。
その際、WSL環境を移行にい手間取ったので、そのことについて簡単にまとめてみました。

ver

Windows10
Ubuntu18.04

目標

旧PCのWSLの環境を新PCに移行して起動する(Windows ストアアプリ Ubuntu 18.04にて)

WSL環境(ディストリビューション)を別PCに移行すること自体は簡単である

旧PCでエクスポートいしたWSL環境を新PCでインポートするだけである

powershell-旧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をインストールしている

powershell-新PC
# 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環境が
構築され起動してしまう。

powershell
# ストアアプリ版Ubuntuを実行後に一覧を見ると、Ubuntu18.04が作成されていることがわかる
\ wsl -l -v

当初の目的であったストアアプリ版からのhogeの起動ができないのである。

解決策

1.諦めてpowershellからWSLを起動する

2.ディストリビューション名をストアアプリ版によって定められた名前にする

3.諦めてストアアプリ版を1から使っていく

  1. 諦めてpowershellからWSLを起動する
    powershellでwslと打てば起動する(デフォルトユーザ、ディストリビューションも指定できる)ので
    ストアアプリ版は諦めるという考え方

  2. ディストリビューション名をストアアプリ版によって定められた名前にする
    例えば、ストアアプリ版Ubuntu18.04のディストリビューション名は「Ubuntu-18.04」である
    なのでインポートする際に、この名前で設定することで、ストアアプリ版をインストールし、起動することで、
    インポートしたWSL環境が扱える

powershell
\ 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の移行を別の方法で行えば、アプリレベルで移行できるかもしれないので、いい方法があればコメントください。

参考サイト