WSL2の環境設定

未分類

WSL(Windows Subsystem for Linux)の環境設定方法

WSLの初期設定

WSLを使用したことがない場合

こちらのサイトを参考にWSLの初期設定を行う.
Powershellを管理者権限で起動する.
管理者権限で起動後に次を実行するとUbuntuがインストールされる.

wsl --install 

実行後はメッセージに従い,再起動をする.
インストールが完了したら,ユーザー名とパスワードを登録する.

すでに環境はあるが別途WSL環境を作成する場合

すでにWSL環境(Ubuntuなど)を作っているが,もう1つクリーンなWSL2環境が欲しい場合や別のOSを入れたい場合には以下のように行う.

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

コメント

タイトルとURLをコピーしました