LoginSignup
3
2

More than 3 years have passed since last update.

WSL2 Ubuntu20.04 を WSL1 に戻すには地道な方法しかなかった

Posted at

概要

WSL1 の Ubuntu 20.04 を移行してみたが、次の点で問題があったのでもとに戻した。

  • VS-Code の Paste Image が使えない
    WSL上の README.md に画像貼り付けできない。Windowsのクリップボードにある画像をLinux上のクリップボードに変換できない。

結果

地道な方法しかなかった。
なので、WSL2に移行するときは、 export して新規作成した環境で試してからが良いと思います。

  • 失敗 ... WSL2のイメージをexportしてWSL1としてimportする
    → importは成功したが起動できず
  • 成功 ... WSL2内のファイルをバックアップして、WSL2のイメージを消す、WSL1のイメージを再作成して、ファイルやパッケージ類を復元する

手順: WSL2に移行するときにexportしておかなかった場合

参考程度です。
失敗した手順からの復旧をしたので、実際には試せていません。

  1. WSLを開いている Terminal, VS-Code などのエディタ、Explorer などを閉じる
  2. wsl --export Ubuntu-20.04 ./Ubuntu.tar する
  3. wsl --import Ubuntu-20.04-WSL2 .\Ubuntu-20.04-WSL2 Ubuntu.tar --version 2
  4. WSL1 で Ubuntu-20.04 を入れ直す
  5. Ubuntu-20.04-WSL2 からファイルをtarで固めるなりして移行する

参考: 失敗した手順

  1. 状態を確認する

    PS C:\wsl_migration> wsl -l --verbose
      NAME            STATE           VERSION
    * Ubuntu-20.04    Running         2
    PS C:\wsl_migration> 
    
  2. ターミナルやVS-Codeを閉じる
    閉じた後、Stopped になっていることを確認する

    PS C:\wsl_migration> wsl -l --verbose
      NAME            STATE           VERSION
    * Ubuntu-20.04    Stopped         2
    PS C:\wsl_migration>
    
  3. exportを行う

    PS C:\wsl_migration> wsl --export Ubuntu-20.04 ./Ubuntu.tar
      NAME            STATE           VERSION
    * Ubuntu-20.04    Stopped         2
    PS C:\wsl_migration>
    
  4. Distribution を登録解除する

    PS C:\wsl_migration> wsl --unregister Ubuntu-20.04
    登録を解除しています...
    PS C:\wsl_migration> wsl -l --verbose
    Linux 用 Windows サブシステムには、ディストリビューションがインストールされていません。
    ディストリビューションは Microsoft Store にアクセスしてインストー 
    ルすることができます:
    https://aka.ms/wslstore
    PS C:\wsl_migration>
    
  5. 管理者で PowerShell を起動し、WSLのデフォルトのバージョン指定を 1 にする

    PS C:\WINDOWS\system32> wsl --set-default-version 1
    PS C:\WINDOWS\system32>
    
  6. Ubuntu-20.04 を再度導入する
    Windowsメニューにリンクがあればそれをクリックしてもよいし、Storeから導入してもよい。
    image.png

    導入中

    PS C:\wsl_migration> wsl -l --verbose
      NAME            STATE           VERSION
      Ubuntu-20.04    Installing      1
    PS C:\wsl_migration>
    

    導入完了

    PS C:\wsl_migration> wsl -l --verbose
      NAME            STATE           VERSION
    * Ubuntu-20.04    Running         1
    PS C:\wsl_migration>
    
  7. Import する
    wsl --import <被らないNAME> <LocalState(rootfsとか)の展開先> <exportしたtarファイルのパス> --version 1 みたいな形式。

    PS C:\wsl_migration> wsl --import Ubuntu-20.04-WSL1 C:\Users\RoboDev\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows Ubuntu.tar --version 1
    PS C:\wsl_migration> wsl -l --verbose
      NAME                 STATE           VERSION
    * Ubuntu-20.04-WSL1    Stopped         1
    PS C:\wsl_migration>
    
  8. 起動する
    次のコマンドやWindows Terminal などで起動する。失敗した。失敗した。失敗した。

    PS C:\wsl_migration> wsl -d Ubuntu-20.04-WSL1
    サーバーの実行に失敗しました
    PS C:\wsl_migration>
    
  9. 管理者で PowerShell を起動し、復旧する
    wsl -l --verbose コマンドが固まるし、 unregister もエラー終了するので復旧する。

    PS C:\WINDOWS\system32> Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    

    再起動を要求されたので、再起動後に次のコマンドを実行する。

    PS C:\WINDOWS\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    

    アプリと機能でUbuntuとかが残っているなら消しておく

    PS C:\WINDOWS\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    

    wsl --unregister Ubuntu-20.04-WSL1 とかで消しておく。

参考

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2