WSL(Windows Subsystem for Linux)の環境設定方法
WSLの初期設定
WSLを使用したことがない場合
こちらのサイトを参考にWSLの初期設定を行う.
Powershellを管理者権限で起動する.
管理者権限で起動後に次を実行するとUbuntuがインストールされる.
wsl --install
実行後はメッセージに従い,再起動をする.
インストールが完了したら,ユーザー名とパスワードを登録する.
すでに環境はあるが別途WSL環境を作成する場合
すでにWSL環境(Ubuntuなど)を作っているが,もう1つクリーンなWSL2環境が欲しい場合や別のOSを入れたい場合には以下のように行う.
- Ubuntuの追加:Microsoft Storeから「Ubuntu24.04」などと検索してインストール
- CentOS Stream:CentOS Stream ダウンロードページからダウンロードする.
Ubuntuの環境を別のドライブにエクスポート
なぜ移動が必要なのか
WSLをインストールすると,自動的にCドライブにインストールされる.
しかしCドライブ直下にインストールされると次のデメリットがある.
- 容量圧迫:CドライブにはOSがインストールされており,計算結果などを保存していくとCドライブが圧迫される.
- 速度低下:容量節約のためにDドライブ(/mnt/d/)で計算やコンパイルすると、ファイルシステムの仕組み上、アクセス速度が非常に遅くなる.
そのため、**「WSLの環境ごとDドライブ(高速なSSDなど)に移動させ、その中のホームディレクトリで計算する」**のが最適解となる.
1.WSLのエクスポート(バックアップ)
まず,WSLを保存する用のフォルダ(例:D:\WSL)を作成しておく.
Powershellを起動してWSLをシャットダウンする
(備考:メモリの消費が多い時にもWSLをシャットダウンするとメモリが少し解放されることがある)
wsl --shutdown
移動させたいWSLのディストリビューション名を確認する.
複数のディストリビューションをインストールしている場合には複数の名前が表示される.
wsl -l -v
ここではDドライブのWSLフォルダにエクスポートする.
エクスポートするWSLにライブラリをインストールしている場合には時間がかかる(クリーンなWSL環境をエクスポートする場合には1分程度)
wsl --export Ubuntu D:\WSL\Ubuntu\Ubuntu.tar
エクスポートが成功したら,古い(Cドライブにある)環境を削除する.
※注意:この操作で元の環境は消えるため、必ずエクスポートが成功したことを確認してから行うこと。
wsl --unregister Ubuntu
2.WSLのインポート(新しい場所への展開)
作成したtarファイルを,Dドライブの指定のフォルダにインポートする.
ここでは先ほどインストールした場所D:\WSL\Ubuntuにインポートする.
wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\Ubuntu\Ubuntu.tar --version 2
3.デフォルトユーザー名の変更
インポートした環境を起動すると、デフォルトが root ユーザーになってしまうため、元のユーザーでログインできるように設定を戻す.
Ubuntuを一旦閉じて,Powershellを起動して以下を実行する(有志の方が作成した関数らしい).
Function WSL-SetDefaultUser ($distro, $user) { Get-ItemProperty Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\*\ DistributionName | Where-Object -Property DistributionName -eq $distro | Set-ItemProperty -Name DefaultUid -Value ((wsl -d $distro -u $user -e id -u) | Out-String); };
WSL-SetDefaultUser <DistributionName> <UserName>
Function~の箇所はそのままコピーする.
2行目のDistributionNameは先ほどインポートしたディストリビューション名,UserNameは任意でよい.
これでDドライブの引っ越しが完了となる.
参考サイト
WSLの環境作成方法:https://learn.microsoft.com/ja-jp/windows/wsl/install#install-wsl-command


コメント