wsl – Windows上でLinux環境(WSL)を管理・起動する

仮想マシン管理

wsl は Windows Subsystem for Linux(WSL)のインストール・起動・停止・エクスポート/インポート・ディスクのマウントなどを行うコマンドです。PowerShell/CMD から実行し、WSL 1/2 の切替やディストリビューション管理もできます。(Microsoft Learn)
実務では、「開発環境のセットアップ(wsl --install)」「配布用に環境をエクスポート」「トラブル対応での --shutdown--status 確認」などに使います。(Microsoft Learn)

構文(Syntax)

# 基本
wsl [OPTIONS] [--] [COMMAND [ARG...]]

# 代表例
wsl --install
wsl --list --verbose
wsl --set-version <DISTRO> <1|2>
wsl --set-default-version <1|2>
wsl --distribution <DISTRO> [--user <USER>] [--] COMMAND [ARG...]
wsl --export <DISTRO> <FILE>
wsl --import <DISTRO> <INSTALL_DIR> <FILE> [--version <1|2>]
wsl --mount <DISKPATH> [--partition N] [--type FS] [--options OPTS]
wsl --shutdown | --terminate <DISTRO> | --unregister <DISTRO>
  • Bash など WSL 内から呼ぶ場合は wsl.exe を使います。(Microsoft Learn)

主なオプション一覧

オプション説明使用例
--install [--distribution <NAME>] [--no-launch] [--web-download]WSL とディストリを一括インストール。--list --online で名前確認。wsl --install -d Ubuntu (Microsoft Learn)
--list, -l [--online|-o] [--verbose|-v] [--allインストールされている Linux ディストリビューションを一覧表示するwsl --list --online
--set-version <1|2>指定ディストリを WSL1/2 に変換。大規模環境では時間がかかる場合あり。wsl --set-version 2
--set-default-version <1|2>以後インストールするディストリの既定WSLバージョンを設定。wsl --set-default-version 2
--set-default <DISTRO>既定のディストリを設定。wsl --set-default Debian (Microsoft Learn)
--distribution, -d <DISTRO>実行対象ディストリを明示してコマンドを実行。wsl -d Ubuntu -- uname -a (Microsoft Learn)
--user, -u <USER>実行ユーザーを指定。wsl -d Ubuntu -u root -- id (Microsoft Learn)
--exec, -e <COMMAND>既定シェルを介さずコマンドを直接実行wsl -e ls -la (Microsoft Learn)
--cd <DIR>実行時のカレントディレクトリを指定(Windows/WSL パスどちらも可)。wsl --cd C:\Users\Alice -e pwd (Microsoft Learn)
--update [--web-download|--rollback]WSL を更新/ロールバック。wsl --update
--status / --version構成やバージョン情報を表示。wsl --status / wsl --version (Microsoft Learn)
--shutdownすべてのディストリと WSL2 の軽量VM を即時終了。wsl --shutdown (Microsoft Learn)
--terminate <DISTRO>指定ディストリを終了。wsl --terminate Ubuntu (Microsoft Learn)
--export <DISTRO> <FILE> [--vhd]ディストリを tar または .vhdx としてエクスポート。wsl --export Ubuntu ubuntu.tar (Microsoft Learn)
--import [--version <1|2>] [--vhd]tar/.vhdx を新規ディストリとしてインポート。wsl --import
--import-in-place <DISTRO> <VHDX>既存 .vhdx をその場で取り込み(ext4 必須)。wsl --import-in-place MyDistro D:\img.vhdx (Microsoft Learn)
--unregister <DISTRO>ディストリを登録解除(データ消去)。wsl --unregister Ubuntu (Microsoft Learn)
--mount [--partition N] [--type FS] [--options "OPTS"] [--name NAME] [--vhd|--bare]物理/仮想ディスクを WSL2 にアタッチ/マウント。wsl --mount \.\PHYSICALDRIVE2
--unmount [<DISK>]指定またはすべてのディスクをアンマウントしてデタッチ。wsl --unmount \\.\PHYSICALDRIVE2 (Microsoft Learn)
--helpヘルプを表示。wsl --help (Microsoft Learn)

実行例

1) まずは状況確認(ディストリと WSL バージョン)

説明:インストール済みディストリと WSL1/2 の別、起動状態を一覧します。
コマンド

wsl --list --verbose

出力例(例)

  NAME      STATE   VERSION
* Ubuntu    Stopped 2
  Debian    Running 2

(Microsoft Learn)

2) 既定を WSL2 に設定してから Ubuntu を導入

説明:新規インストール時の既定を WSL2 にし、Ubuntu を追加します。
コマンド

wsl --set-default-version 2
wsl --install -d Ubuntu

(古い Windows では -d の明示が必要な場合あり)(Microsoft Learn)

3) ディストリをエクスポート/インポート(配布・バックアップ)

説明:作った環境を tar に書き出し、別ディレクトリへ復元します。
コマンド

wsl --export Ubuntu D:\backup\ubuntu.tar
wsl --import Ubuntu2 D:\WSL\Ubuntu2 D:\backup\ubuntu.tar --version 2

(Microsoft Learn)

4) 物理ディスクを WSL2 にマウントして参照

説明\\.\PHYSICALDRIVE* を WSL2 にマウントし、中身を操作します。
コマンド

# 例: 第1パーティションを ext4 としてマウント
wsl --mount \\.\PHYSICALDRIVE2 --partition 1 --type ext4
# 使い終わったらデタッチ
wsl --unmount \\.\PHYSICALDRIVE2

(Microsoft Learn)

5) エラー例:存在しないディストリ名を指定

説明:名前を誤ると「その名前のディストリは存在しない」とエラー。
コマンド

wsl --set-version NoSuchDistro 2
echo %ERRORLEVEL%

出力例(例)

There is no distribution with the supplied name.
1

(Microsoft Learn)

関連コマンド

  • wsl.exe:WSL 内から呼ぶ際の実行ファイル名(Windows 側の実体)。(Microsoft Learn)
  • wslpath:Windows/WSL 間のパス変換(WSL 内のコマンド)。
  • wslconfig.exe / bash.exe / lxrun旧来のコマンド(非推奨)wsl に置き換え。(Microsoft Learn)

備考

  • 実行環境:PowerShell/CMD から利用。WSL 内からは wsl.exe を使います。WSL 2 機能(--mount など)は Windows 10 1903 以降/Windows 11 が前提です。(Microsoft Learn)
  • Store 版 WSL:Microsoft Store 版の WSL では更新が速く、一部オプション(--name など)も利用可能です。(Microsoft Learn)
  • --exec--cd--exec はシェルを介さず実行(PowerShell のリダイレクト/パイプがそのまま適用)。--cd は作業ディレクトリ指定。いずれも比較的新しめの WSL で追加されました。(Microsoft Learn)
  • 設定ファイル:グローバルは Windows 側の ~/.wslconfig、ディストリごとは Linux 側の /etc/wsl.conf で制御(自動マウント・ネットワーク・interop・既定ユーザー、[boot] セクション等)。変更後は wsl --shutdown で再読み込み。(Microsoft Learn)

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント