Linux on WSL2 on Windows 11 の設定や日々の運用方法の備忘録です.仮想マシンのLinuxディストリビューションはUbuntu-22.04 LTS で検証しています.インストール関連は下端にメモを付けました.
仮想マシンのインストール
Ubuntu-22.04 LTS をWSL2にインストールします.管理者モードのPowerShellで作業します.初めてWSLを使用する場合は関係するコマンドをインストールしておきます.
wsl --install
オンラインストアで利用可能なLinuxディストリビューションを確認します.
PS C:\Users\teem> wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl --install -d <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_8_5 Oracle Linux 8.5
OracleLinux_7_9 Oracle Linux 7.9
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
openSUSE-Leap-15.4 openSUSE Leap 15.4
openSUSE-Tumbleweed openSUSE Tumbleweed
Ubuntu-22.04 LTS をインストールします(2023年4月現在最新版).ディストリビューションによってはオンラインストア経由でインストールする必要があるかもしれません.
wsl --install -d Ubuntu-22.04
インストールされているLinuxディストリビューションの表示
wsl -l
既定のディストリビューションの変更
もし古いバージョンが既定になっていたら,既定をUbuntu-22.04に変更します.
wsl --set-default Ubuntu-22.04
wsl -l
インストール後のシステムアップデート
インストール直後にシステムを更新しておきます.
sudo apt -y update
sudo apt -yV upgrade
sudo apt -yV dist-upgrade
sudo apt -yV autoremove
sudo apt autoclean
完了したらexitし,再度ログインすることで更新が反映されます.
アンインストール
wsl --shutdown
wsl --unregister Ubuntu-22.04
WSLのアップデート
wsl --update
ファイルシステムのマウント
仮想マシンのファイルシステムをWindowsのZドライブに割り当て,Windowsから簡単に仮想マシンのファイルシステムにアクセスできるようにします.
LinuxファイルシステムをWindowsファイルシステムにマウント
Windowsエクスプローラで作業します.マウントできるのはWindowsのドライブのみで,フォルダはできないようです.
- Linuxのターミナルを起動しておく(必須)
- エクスプローラで
\\wsl$Ubuntu-20.04
(Linuxディストリビューション名は適宜読み替えてください)を開き,アドレスをコピーする - ネットワークを右クリックし,ネットワークドライブの割り当てを選択する
- ドライブを
Z
に割り当て,フォルダに1.のアドレス\\wsl$Ubuntu-20.04
を貼り付け,完了 をクリックする - Windowsのドライブ
Z
からLinuxファイルシステムにアクセスできることを確認する - アンマウントするにはドライブ
Z
を右クリックで切断する
Windowsファイルシステムで Linux の パーミッションを有効にする
LinuxからWindowsのファイルシステムを参照する場合もパーミッションを有効にできます.仮想マシンでの作業です.
/etc/wsl.conf
に以下を記述し,仮想マシンを再起動します.
[automount]
options="metadata"
外付けドライブをLinuxファイルシステムにマウント
Windows のドライブは /mnt
以下にマウントされます.例えばCドライブは /mnt/c
です.
外付けドライブは自動的にはマウントされません.外付けドライブEをマウントします.効かない場合はWindowsを再起動してみましょう.
sudo mkdir /mnt/e
sudo mount -t drvfs e: /mnt/e/
マウントを解除します.
sudo umount /mnt/e/
属性を維持してコピー
Linuxのファイル属性(含タイムスタンプ)を維持したままWindowsのファイルシステムにコピーするにはrootで-p
オプションを用います.こうしないとタイムスタンプが現在になってしまいます.
d:\dat\
,を e:\dat\
としてコピーします.
sudo cp -r -p /mnt/d/dat /mnt/e
仮想マシンの複製
他のWindowsマシンに仮想マシンを丸ごとTARファイルとして出力する方法です.WindowsのコマンドプロンプトまたはPowerShellで作業し,export,importコマンドを用います.
準備
対象の仮想マシンにおいて,デフォルトユーザ名(teemとします)が指定されていなければ,/etc/wsl.conf
に以下を追記します.ホスト名(以下ではwslとしました)も追記しておきます.仮想マシンを再起動します.
これは環境構築として一度行うだけです.
[user]
default=teem
[network]
hostname=wsl
仮想マシンのexport
存在するLinuxディストリビューションを確認します.
PS C:\Users\teem> wsl -l -q
Ubuntu-20.04
このUbuntu-20.04 を C:\Users\teem\WSL_IMAGES
に Ubuntu-20.04-2022.tar のファイル名でexportします.
PS C:\Users\teem> wsl --export Ubuntu-20.04 C:\Users\teem\WSL_IMAGES\ubuntu-20.04-2022.tar
仮想マシンのimport
複製した Ubuntu-20.04-2022.tar を別のWindowsマシンの C:\Users\teem\WSL_IMAGES\
にコピーしておきます.
PS C:\Users\teem> wsl --import Ubuntu20.04 C:\Users\teem\WSL_IMAGES\Ubuntu-20.04 C:\Users\teem\WSL_IMAGES\ubuntu-20.04-2022.tar
Syntaxは以下の通りです.
wsl --import <ディストリビューション名> <保存先> <importするtarファイル名>