0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2+Ubuntuの環境を構築してみる

Last updated at Posted at 2024-08-16

WSL+Ubuntuの環境を設定する機会があったためメモを残します。

タスク

  • WSL2のインストール&ディストリビューション導入
  • WSL2の設定追加
  • ディストリビューションの設定

作業環境

  • Windows11 pro 23H2 (OSビルド : 22631.3880)

WSL2のインストール&ディストリビューション導入

1. WSL2をインストール

powershellを管理者で開き、下記コマンドを実行。
-dオプションをつけてディストリビューションを明示することで、任意のディストリビューションをインストールすることも可。デフォルトはUbuntu

powershell
wsl --install
powershell : ディストリビューション指定ver
wsl --install -d <distro>

下記のようなメッセージが出力されればOK。

結果
インストール中:仮想マシンプラットフォーム
仮想マシンプラットフォームはインストールされました。
インストール中:Linux 用 Windows サブシステム
Linux 用 Windows サブシステムはインストールされました
インストール中:Ubuntu
Ubuntu はインストールされました
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。

2. 再起動

メッセージに従ってPC再起動。

3. ユーザー名とパスワードの設定

ユーザー名とパスワードはディストリビューション固有のもの(windowsのアカウントではない)。それぞれお好みのユーザー名とパスワードを設定する。今回は、testUserで設定。

結果
Ubuntu は既にインストールされています。
Ubuntuを起動しています..
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: testUser
New password:
Retype new password: passwd: password updated successfully

ちなみにrootはダメ。rootユーザーは既に存在しているので当然ではある。

Enter new UNIX username: root adduser: The user root' already exists.

4. その他確認

Windows Terminalからexitして画面を閉じる。
powershellから下記コマンドを実行して、wslとディストリビューションが正しくインストールされているか確認。

powershell : バージョンの確認
wsl -v
powershell : ディストリビューションの確認
wsl -l -v

WSL2の設定追加

wslのConfigファイルは2種類存在する。

  • .wslconfig(グローバル設定)
  • wsl.conf(ローカル設定)

1. .wslconfigの設定

C:\Users\%UserProfile%.wslconfigという名前でファイルを作成。
.wslconfig内に下記の設定を追加。

.wslconfig
# wslが利用できるメモリ量の設定
# メモリ量は環境に合わせて調整
[wsl2]
memory=4GB
swap=0

2. wsl.confの設定

Windows Terminalからubuntuのコンソールを開く。
wsl.confファイルは/etc配下にあるのでそこまで移動。

cd /etc

次に、下記コマンドでwsl.confに設定を追加。
ホスト名は各自自由に設定する。(今回は例でTEST01と命名)

sudo vim ./wsl.conf
wsl.conf
# windowsファイルに対してLinuxのファイルメタデータをサポート
[automount]
options="metadata"

# windowsパスの引継ぎ無効化
[interop]
appendWindowsPath=false

# systemdの有効化
[boot]
systemd=true

# hosts, resolv.confの初期化を無効化
[network]
hostname="TEST01"
generateHosts=false
generateResolvConf=false

# ディストリビューションにログインする時のデフォルトユーザー
[user]
default="testUser"

デフォルトユーザーはwsl.confではなく下記のように設定することも可。
powershellから下記コマンドを実行して変更できる。
ubuntuの部分は各々がインストールしたディストリビューション名

powershell
ubuntu config --default-user <username>
例 : powershell
ubuntu config --default-user testUser

3. 再起動

設定を追加したら一度情報を反映させるために再起動する。
powershellで下記コマンドを実行。

構成変更の8秒ルール
ディストリビューションを実行中のサブシステムが完全に停止して設定が反映されるまで再起動を待つ必要がある。ディストリビューションシェルの全てのインスタンスを閉じてから約8秒程度。
wsl -l --runningを実行すると、実行中のディストリビューションが存在するか確認できる。

powershell
# t:tarminate, l:list, d:distribution
wsl -l -v
wsl -t ubuntu
wsl -l --running
wsl -d ubuntu

ディストリビューションの設定

1. resolv.confの作成と設定

wsl.confgenerateResolvConf=falseの設定を入れているので、resolv.confを作成して名前解決を行えるようにする。下記コマンドでresolv.confを作成して、作成したファイルに以下の設定を追記する。

resolv.conf作成コマンド
cd /etc/
ls | grep resolv.conf
sudo touch resolv.conf
sudo vim ./resolv.conf
resolv.conf
# 優先DNS
nameserver <自ネットワークのDNSIP>

# 代替DNS
nameserver <自ネットワークのDNSIP>

# ドメインは書かなくてもOK
domain <自ネットワークのドメイン名>
例 : resolv.conf
# 優先DNS
nameserver 8.8.8.8

# 代替DNS
nameserver 8.8.4.4

2. hostsの設定

この設定はホスト名を変更している場合のみ実施。hostsの中に下記の設定を追記する。

sudo vim /etc/hosts
hosts
127.0.1.1 <ホスト名>
例 : hosts
127.0.1.1 TEST01

3. proxyの設定

Proxy環境で環境構築する場合は実施。.bashrcの最終行にProxy URLの環境変数を追記。
ユーザー名とパスワードが必要な場合はURLにそれぞれ追加する。
ユーザー名とパスワードはProxyのもの。

cd ~
vim ./.bashrc
.bashrc
export HTTP_PROXY=http(s)://<proxy-host>:<proxy-port>
export HTTPS_PROXY=$(HTTP_PROXY)
#もしくは
export HTTP_PROXY=http://‹username>:<password>@<proxy-host>:<proxy-port>
export HTTPS_PROXY=$(HTTP_PROXY)

4. apt.confの設定

認証Proxy環境でsudo apt updateを実行するとプロキシの影響でエラーになるため、/etc/apt/apt.confに下記設定を追加する。

ユーザー名やパスワードに特殊文字が入っている場合はパーセントエンコードする。特に@マークなどはエラーの原因になるため、%40などでエンコード。

Acquire::http::Proxy "http://<username>:<password>@<proxyhost>:<port>/":
Acquire::https::Proxy "https://<username>:<password>@<proxyhost>:<port>/";
Acquire::ftp::Proxy "ftp://<username>:<password>@<proxyhost>:<port>/";

5. /HOME/~にWindowsデスクトップのシンボリックリンクを作成

ユーザーディレクトリからWindows上のDesktopへ簡単にアクセスできるよう設定。
この設定が不要な方はスキップ。

cd ~
ln -s /mnt/c/Users/<Windowsのユーザー名>/Desktop

6. aliasの設定

下記コマンドを実行し、.bashrcの最終行に設定を追加する。
これでディストリビューション上からWindowsのソフトを実行できる。
今回はエクスプローラvscodeのエイリアスを設定。

cd ~
vim ./.bashrc
.bashrc
# エクスプローラ
alias explorer="/mnt/c/WINDOWS/explorer.exe"

# vscode
alias code="/mnt/c/Users/<ユーザー名>/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code"

全ての設定が終わったら再起動して設定を反映させる。

# t:tarminate, l:list, d:distribution
wsl -t ubuntu
wsl -l --running
wsl -d ubuntu

7. 最後に

パッケージを細心に更新

sudo apt update

おまけ

設定を終えたらエクスポートしておくと、あとで設定がグチャった時にすぐリストアできる。

powershell
wsl --export <ディストリビューション名> <書き出したいファイル名>
例 : powershell
wsl --export ubuntu C:\wsl\ubuntu\backup-ubuntu.tar
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?