とほほのWSL入門
目次
WSLとは
- Windows Subsystem for Linux の略です。
- Windows 上で Ubuntu などの Linux ディストリビューションを実行する機能です。
- Microsoft が提供しています。
- 2017年10月に WSL1 が、2019年2月に WSL2 が公開されました。
- WSL1 では Linux 自体のカーネルを動かすものではなく、Linux 互換のシステムコールを提供するものでした。
- WSL2 からは Linux 自体のカーネルを動作させ、互換性が向上しました。
- 提供されるディストリビューションは Ubuntu、openSUSE、Debian、OracleLinux、Kali Linux などがあります。
- Red Hat Enterprise Linux、CentOS、Rockey Linux、AlmaLinux はサポートされていません。
インストール
Windows 10 バージョン 2004 ビルド 19041 より古い場合は、下記を参照してください。
Windows 11 または Windows 10 バージョン 2004 ビルド 19041 以降の場合は、PowerShell を管理者権限で起動し、下記を実行してください。途中でユーザIDとパスワードの入力が求められます。
PS C:\> wsl --install
Windows を再起動するとデフォルトディストリビューションである Ubuntu が起動します。
使い方
インストール済のディストリビューションの一覧を表示する
--list (短縮形は -l) オプションを指定します。
PS C:\> wsl --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
インストール可能なディストリビューションの一覧を表示する
--list --online オプションを指定します。
PS C:\> wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.5 openSUSE Leap 15.5
openSUSE-Tumbleweed openSUSE Tumbleweed
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
ディストリビューションをインストールする
--install オプションを使用します。
PS C:\> wsl --install OracleLinux_7_9
インストール済のディストリビューションを起動する
--distribution (短縮形は -d) で起動します。引数を省略すると既定のディストリビューションを起動します。
PS C:\> wsl -d Ubuntu
既定のディストリビューションを変更する
--set-default (短縮形は -s) は既定のディストリビューションを変更します。
PS C:\> wsl -s Ubuntu
インストール済のディストリビューションをアンインストールする
--unregister オプションを使用します。
PS C:\> wsl --unregister OracleLinux_7_9
コマンドオプション
情報表示系
- --help
- ヘルプを表示します。
- --version
- バージョンを表示します。
- --release-notes
- リリースノートを表示します。
- --status
- WSL の現在のステータスを表示します。
実行系
- --distribution (-d) <Distribution>
- 指定したディストリビューションを実行します。
- --exec(-e) <CommandLine>
- 既定の Linux 上で指定したコマンドを実行します。
- --terminate (-t) <Distribution>
- 指定したディストリビューションを終了します。
- --shutdown
- 起動中のディストリビューションをすべて終了します。
- --set-default (-s) <Distribution>
- 規定のディストリビューションを変更します。
実行時オプション系
- --cd <Directory>
- -d や -e 実行時のディレクトリを指定します。
- --user (-u) <UserName>
- -d や -e 実行時のユーザを指定します。
- --shell-type <Type>
- -d や -e 実行時のシェルを standard(規定のシェル)、login(ログインシェル)、none(シェル無し) のいずれかで指定します。
リスト系
- --list (-l) [<Options...>]
- ディストリビューションの一覧を表示します。
- --all
- インストール中、アンインストール中を含むすべてのディストリビューションを表示します。
- --running
- 実行中のディストリビューションのみを表示します。
- --quiet (-q)
- ディストリビューション名のみを表示します。
- --verbose (-v)
- ディストリビューションの詳細情報を表示します。
- --online (-o)
- インストール可能なディストリビューションの一覧を表示します。
インストール系
- --install <Distribution> [<Options...>]
- 指定したディストリビューションをインストールします。
- --no-launch (-n)
- インストール後にディストリビューションを起動しません。
- --web-download
- Microsoft Store ではなくインターネットからディストリビューションをダウンロードします。
- --set-default-version <Version>
- 新しいディストリビューションの規定のインストールバージョンを変更します。
- --set-version <Distribution> <Version>
- 指定したディストリビューションのバージョンを変更します。
- --unregister <Distribution>
- ディストリビューションをアンインストールします。
インポート・エクスポート
- --export <Distribution> <FileName> [<Options...>]
- ディストリビューションをファイルにエクスポートします。
- --vhd
- tar 形式ではなく .vhdx 形式でエクスポートします。
- --import <Distribution> <InstallLocation> <FileName> [<Options...>]
- エクスポートしたディストリビューションをインポートします。
- --vhd
- tar 形式ではなく .vhdx 形式でインポートします。
- --version
- インポートするディストリビューションのバージョンを指定します。
- --import-in-place <Distribution> <FileName>
- .vhdx ファイルをディストリビューションとしてインポートします。ファイルは ext4 ファイルシステムでフォーマットする必要があります。
マウント・アンマウント
- --mount <Disk>
- ディスクをマウントします。詳細は別途。
- --unmount <Disk>
- ディスクをアンマウントします。
その他
- --system
- システムディストリビューションのシェルを起動します。
- --debug-shell
- デバッグ用の WSL2 デバッグシェルを起動します。
- --event-viewer
- Windows のイベントビューアを起動します。
- --update
- WSL をアップデートします。
- --web-download
- Microsoft Store ではなくインターネットからディストリビューションをダウンロードします。
- --pre-release
- プレリリースバージョンがあればプレリリースバージョンをダウンロードします。
AlmaLinuxをインストールする
- Microsoft Store で AlmaLinux を検索してインストールします。
- [スタート]-[すべてのアプリ] に AlmaLinux が追加されているので起動します。
トラブルシューティング
systemdをbootできない
下記の様に Systemd を boot できないエラーが出た場合:
System has not been booted with systemd as init system (PID 1). Can't operate.
下記の内容で /etc/wsl.conf を作成します。
[boot]
systemd=true
WSL からディストリビューションをシャットダウンして再起動します。
PS C:\> wsl --shutdown {ディストリビューション}
PS C:\> wsl -d {ディストリビューション}
リンク
Copyright (C) 2023 杜甫々
初版:2023年9月17日 最終更新:2023年12月31日
https://www.tohoho-web.com/ex/wsl.html