【開発環境 #2】WSL2、Ubuntuのアクセス方法とインストール場所変更
前回でWSL2の有効化とUbuntuのインストールが済みました。今回はUbuntuのインストールフォルダや設定を見ていきます。
WSL2 + Docker の記事一覧
Ubuntuのディレクトリにファイルエクスプローラーでアクセスする
Ubuntuが起動されている状態で、Windowsのエクスプローラーのアドレス欄に¥¥wsl$¥Ubuntu-20.04と入力することで、WSL2のUbuntuのディレクトリにアクセスができます。今後、アクセスの度にアドレスを入力するのは手間なので、¥¥wsl$をエクスプローラーのクイックアクセスに登録しておきます。
- アドレスについて
この記事では実体参照を用いてアドレスの表記しているので、コピペではアクセスできません。
実際のアドレス欄に入力するテキストは以下となります。\\wsl$\Ubuntu-20.04
その、¥¥wsl$¥Ubuntu-20.04にアクセスすると、おなじみのディレクトリ構成が展開されました。
Ubuntu-20.04/
|-- boot/
|-- dev/
|-- .../
|-- bin
|-- init
|-- ...
`-- sbin
Ubuntuにターミナルでアクセスする
WindowsスタートメニューからUbuntu-20.04をクリックでUbuntu上のターミナルが起動しますが、今回はWindows Terminalを使います。
- スタートメニューからWindows Terminalを起動
- ツールバー右端の「∨」をクリック
- Ubuntu-20.04をクリック
以上で、ターミナルでアクセスできました。
初期ディレクトリがおかしい?
Windows Terminalでアクセスすると、Ubuntu起動時の初期ディレクトリパスが/mnt/c/Users/nameとなっています。ファイルエクスプローラーでは¥¥wsl$¥Ubuntu-20.04でしたので、アドレスに違いがあるようです。どうやら、ディレクトリのマウントが原因のようです。cd
による¥¥wsl$¥Ubuntu-20.04への移動で直接アクセスすることは可能ですが、毎回は面倒なのと、マウントでのアクセスはパフォーマンス的にも微妙なようなので対処します。
初期ディレクトリパスの変更
Windows Terminalでの起動時の初期ディレクトリを変更します。
- スタートメニューからWindows Terminalを起動
- ツールバー右端の「∨」をクリック
- 設定をクリック
- 左サイドメニュー最下部の「JSONファイルを開く」をクリック
- settings.jsonが既定エディタで開かれる
- profiles > list のUbuntu部分に以下のコードを追加
以上で、Windows TerminalでUbuntuを起動した際の初期ディレクトリが//wsl$/Ubuntu-20.04/home/nameになりました。今回はsettings.jsonを直接編集しましたが、以下の方法でも変更は可能です。
- スタートメニューからWindows Terminalを起動
- ツールバー右端の「∨」をクリック
- 設定をクリック
- 左サイドメニューから「Ubuntu-20.04」をクリック
- 右に表示された画面の「開始ディレクトリ」を編集
Ubuntuがインストールされた場所は?
¥¥wsl$¥Ubuntu-20.04のファイルはC:¥Users¥<name>¥AppData¥Local¥Packages¥以下にあるようです。
Ubuntuを別ドライブへ移動させる
あまりCドライブを使用したくないので、D:¥wslへ移動させることにします。以下、Windows TerminalでPowerShellを起動して実行。
WSLを終了させる
> wsl --shutdown
状態確認
STATEがStoppedになっていることを確認する。
> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
Ubuntu-20.04をエクスポートする
エクスポート先はD:¥Tempとします。
# wsl <コマンド> <ディストリビューション名> <エクスポート先>
> wsl --export Ubuntu-20.04 D:\Temp\Ubuntu-20.04.tar
現ディストリビューション(Ubuntu-20.04)を解除する
# wsl <コマンド> <ディストリビューション名>
> wsl --unregister Ubuntu-20.04
ディストリビューションをインポートする
先ほど、エクスポートしたものをインポートします。
# wsl <コマンド> <ディストリビューション名> <インポート場所> <ファイル名> <オプション>
> wsl --import Ubuntu-20.04 D:\wsl\Ubuntu-20.04 D:\Temp\Ubuntu-20.04.tar
D:¥Temp¥Ubuntu-20.04.tarはもう必要が無いので削除しておきます。
Ubuntu起動時のユーザーがrootになる
場所を移動した影響からか、起動時ユーザーがrootになってしまったので、再設定をします。
> 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 Ubuntu-20.04 <UserName>
おわりに
WSL2とUbuntuの設定が完了しました。次回はDockerをインストールしていきます。