そんな不安を抱えたまま使い続けているWindows+WSL2ユーザーは少なくありません。
WSL2のLinuxファイルはWindowsの
AppData\Local\Packages という深い場所に格納されており、普通のバックアップではうまく保全できません。しかし wsl --export コマンドを使えば、Linux環境をまるごと1つの
.tar ファイルに書き出せます。別のPCへの移行も、wsl --import コマンドで数分で完了します。
この記事では、WSL2環境のバックアップと復元を、コマンド手順を追って初心者向けに解説します。
実行環境は Windows 11 + WSL2(Ubuntu 24.04 LTS) で動作確認しています。
この記事のポイント
・wsl --export ディストリ名 backup.tar でLinux環境を.tarファイルに書き出せる
・wsl --import 新名前 インストール先 backup.tar で別PC・別フォルダに復元できる
・操作はWSLのUbuntuターミナルではなくPowerShellから行う
・復元後はデフォルトユーザーを再設定する1ステップが必要
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
なぜWSL2のバックアップが必要なのか
WSL2のLinux環境は、Windowsの以下のパスに仮想ディスクとして格納されています。C:\Users\ユーザー名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_xxxxx\LocalState\ext4.vhdx
ext4.vhdx ファイルがLinux環境全体を格納した仮想ディスクです。「コピーすればいいのでは?」と思うかもしれません。しかし
.vhdx ファイルを単純にコピーしただけでは、別のPCで正しくマウントできないことがほとんどです。WSL2が公式に提供する wsl --export / --import コマンドを使うのが、もっとも確実で簡単な方法です。
バックアップが役立つ場面は次のとおりです。
・PCの買い替え・OSの再インストール前の環境保存
・仕事用と自宅用のPC間でLinux環境を共有する
・設定変更前に「元の状態」を.tarファイルで保存しておく
・チームメンバーに同一の開発環境を配布する
バックアップ前の確認:ディストリビューション名を調べる
wsl --export コマンドには「どのディストリビューションを書き出すか」を指定する必要があります。まず PowerShell(またはコマンドプロンプト)を開いて、インストール済みのディストリビューション名を確認します。
1. PowerShellを開く
スタートメニューで「PowerShell」と検索し、Windows PowerShell を起動します。WSLのUbuntuターミナルではなく、Windowsのターミナルを使う点に注意してください。
2. wsl --list --verboseでディストリ名を確認する
PS C:\Users\miyazaki> wsl --list --verbose NAME STATE VERSION * Ubuntu Running 2 Ubuntu-22.04 Stopped 2
--export に指定するディストリビューション名です。上の例では
Ubuntu と Ubuntu-22.04 の2つがインストールされており、* 印のついた Ubuntu がデフォルトです。バックアップしたいディストリビューション名をメモしておきます。
wsl --exportでLinux環境をバックアップする
ディストリビューション名が確認できたら、さっそくエクスポートを実行します。1. バックアップ先フォルダを用意する
バックアップファイルの保存先フォルダを決めます。今回はC:\WSL_Backup に保存する例で説明します。PowerShellで以下を実行してフォルダを作成します。
PS C:\Users\miyazaki> mkdir C:\WSL_Backup
2. wsl --exportを実行する
コマンドの書式は次のとおりです。・第1引数:バックアップするディストリビューション名(先ほど確認したもの)
・第2引数:書き出し先のファイルパス(拡張子は
.tar)# 書式 # wsl --export ディストリビューション名 保存先ファイルパス # 実行例:Ubuntu環境をC:\WSL_Backup\ubuntu-backup.tarに書き出す PS C:\Users\miyazaki> wsl --export Ubuntu C:\WSL_Backup\ubuntu-backup.tar
処理中は画面に何も表示されず、完了するとプロンプトに戻ります。環境の大きさにもよりますが、数秒~数分かかります。
3. エクスポートの完了を確認する
PS C:\Users\miyazaki> dir C:\WSL_Backup ディレクトリ: C:\WSL_Backup Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2026/09/23 10:12 4857123840 ubuntu-backup.tar
ubuntu-backup.tar ファイルが生成されていれば成功です。このファイルを外付けHDDやクラウドストレージにコピーしておくことで、WSL2環境のバックアップとして機能します。
wsl --importでLinux環境を復元する
バックアップした.tar ファイルを使って、別のPCや別のフォルダに環境を復元します。別のPCで作業する場合は、
.tar ファイルを事前にそのPCへコピーしておいてください。1. 復元先フォルダを作成する
インポート先のディレクトリが存在しない場合、コマンドがエラーになります。先に作成しておきます。PS C:\Users\miyazaki> mkdir C:\WSL_Restored\Ubuntu
2. wsl --importを実行する
コマンドの書式は次のとおりです。・第1引数:インポート後のディストリビューション名(任意の名前を付けられる)
・第2引数:仮想ディスクを配置するフォルダ
・第3引数:バックアップした
.tar ファイルのパス# 書式 # wsl --import 新ディストリ名 インストール先フォルダ .tarファイルパス # 実行例 PS C:\Users\miyazaki> wsl --import Ubuntu-Restored C:\WSL_Restored\Ubuntu C:\WSL_Backup\ubuntu-backup.tar インポートしています。この処理には数分かかることがあります。 この操作を正常に完了しました。
wsl --list --verbose で確認します。PS C:\Users\miyazaki> wsl --list --verbose NAME STATE VERSION * Ubuntu Stopped 2 Ubuntu-Restored Stopped 2
Ubuntu-Restored が一覧に追加されています。3. デフォルトユーザーを再設定する
wsl --import で作成した環境は、起動するとデフォルトで rootユーザー になります。元の一般ユーザー(例:miyazaki)でログインするには、設定ファイルを1行追記します。
# Ubuntu-Restoredを起動(最初はrootでログインされる) PS C:\Users\miyazaki> wsl -d Ubuntu-Restored root@hostname:~# # /etc/wsl.confにデフォルトユーザーを設定する(miyazakiは自分のユーザー名に変える) root@hostname:~# cat >> /etc/wsl.conf << 'EOF' [user] default=miyazaki EOF root@hostname:~# exit
# WSLを終了してから再起動する PS C:\Users\miyazaki> wsl --terminate Ubuntu-Restored PS C:\Users\miyazaki> wsl -d Ubuntu-Restored miyazaki@hostname:~$
$ プロンプトで一般ユーザーとしてログインできました。「エラーが出た」時の対処法
「指定されたディストリビューションが見つかりませんでした」
wsl --export 実行時に以下のエラーが出た場合は、ディストリビューション名の表記ミスが原因です。エラー: 指定されたディストリビューションが見つかりませんでした。
wsl --list --verbose でディストリビューション名を再確認し、大文字・小文字・スペースを正確に一致させて再実行してください。「アクセスが拒否されました」「書き込みできません」
バックアップ先のドライブやフォルダへの書き込み権限がない場合に発生します。・PowerShellを右クリック→「管理者として実行」で起動して再試行する
・保存先を
C:\Users\ユーザー名\Documents など書き込み可能な場所に変更するインポート後に日本語が文字化けする
インポートした環境でロケールがリセットされる場合があります。WSLを起動して以下を実行してください。
$ sudo apt install -y language-pack-ja $ sudo update-locale LANG=ja_JP.UTF-8
本記事のまとめ
WSL2のバックアップ・復元に使う主なコマンドをまとめます。| やりたいこと | コマンド |
|---|---|
| ディストリビューション名を確認する | wsl --list --verbose |
| Linux環境をバックアップする | wsl --export 名前 保存先.tar |
| バックアップから環境を復元する | wsl --import 新名前 インストール先 .tar |
| 特定のWSL環境を起動する | wsl -d ディストリビューション名 |
| WSL環境を終了する | wsl --terminate ディストリビューション名 |
| デフォルトユーザーを設定する | /etc/wsl.conf に [user] default=ユーザー名 を追記 |
wsl --export を月1回の習慣にするだけで、万が一の際の復旧時間を大幅に短縮できます。まずは今すぐPowerShellで
wsl --list --verbose を実行して、自分の環境名を確認するところから始めてみてください。関連記事 ~ 次のステップへ進む
WSL2でLinuxに慣れたら、実務で使われる技術を身につけましょう。・tmuxコマンドでターミナルを分割・管理する方法(シェルスクリプト)
・chmodコマンドで権限を変更する方法(セキュリティ)
・Apacheのタイムアウト設定を変更・確認する方法(サーバー構築)
・straceコマンドでプロセスのシステムコールを追跡する方法(トラブルシューティング)
・ncコマンドでネットワーク接続をテストする方法(ネットワーク)
・rsyncコマンドでファイルを同期・転送する方法(ファイルシステム・ストレージ)
・Linuxでポート番号の状態を確認するコマンド(現場コラム)
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:LinuxのGitブランチとマージ入門|git branch・checkout・mergeでWSL2・VPSのコードを管理する方法
- この記事の属するカテゴリ:【Linux入門】初心者のための基礎知識・講座へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます