Closed1

WSL2 + Ubuntu (20.04) + ubuntu-desktop

takapingtakaping
今回使用したもの バージョン
Windows10 Pro 21H1 (OSビルド19043. 928)
Windows Subsystem for Linux WSL2
Ubuntu 20.04 LTS
ubuntu-desktop GNOME 3.36.8
XRDP 0.9.12
Windows Terminal Preview 1.8.1032.0

WSLのセットアップ

WSLの有効化

"スタート" → "設定" → "アプリ" → "プログラムと機能"
"Windowsの機能の有効化または無効化" → "Linux 用 Windows サブシステム"をチェック → "OK"ボタンを押して終了

PC を再起動

仮想マシンプラットフォームの有効化

PCが仮想化に対応しているか確認

PowerShell を管理者として起動し、以下のコマンドを実行

> Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

PC を再起動

WSL2の有効化

Linux カーネル更新プログラム パッケージをダウンロードし、インストール
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

PowerShell を管理者として起動し、以下のコマンドを実行

> wsl --set-default-version 2

PC を再起動

WSLディストリビューションのセットアップ

Ubuntuのインストール

Microsoft Store から Ubuntu をインストール
Ubuntu を起動してユーザー名とパスワードを設定

Ubuntuの保存場所の移動

WSLのシャットダウン

PowerShell を起動し以下のコマンドを実行

> wsl --shutdown

移動先ディレクトリのセットアップ

移動先ディレクトリを作成

> D:
> mkdir wsl

アクセス権限を付与

> icacls D:\wsl /t /grant $env:USERNAME":(OI)(CI)(F)"

Ubuntuの移動

> LxRunOffline.exe move -n Ubuntu -d D:\wsl\ubuntu

Ubuntuパッケージの更新

PowerShell上でUbuntuを起動し以下のコマンドを実行

> wsl ~ -d Ubuntu-20.04
$ sudo apt update && sudo apt -y upgrade

GUI環境の構築

systemdの有効化

.NETランタイムのインストール

$ wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb

wsl-translinuxリポジトリを追加

apt-transport-httpsをインストール

$ sudo apt install apt-transport-https

リポジトリのキーを取得

$ sudo wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg
$ sudo chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg

リポジトリを追加

/etc/apt/sources.list.d/wsl-transdebian.list
deb https://arkane-systems.github.io/wsl-transdebian/apt/ focal main
deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ focal main

パッケージの更新

$ sudo apt update && sudo apt -y upgrade

genieのインストールと実行

$ sudo apt install systemd-genie
$ genie -s

genie のタイムアウトの原因サービスを確認し、そのサービスを無効化

$ sudo systemctl --failed

$ sudo systemctl mask systemd-remount-fs.service
$ sudo systemctl disable multipathd.socket
$ sudo systemctl disable getty@tty1.service

一旦、Ubuntu をログアウトし、WSL をシャットダウン

$ logout
$ logout

> wsl --shutdown

Windows Terminal の Ubuntu のコマンドラインの設定

setting.json
"commandline": "wsl.exe ~ -d Ubuntu -- genie -s"

Ubuntu を起動し、PID = 0 で systemd が動作していることを確認

$ ps aux

USER PID ・・・ COMMAND
root  1  ・・・ systemd

デスクトップ環境のインストール

$ sudo apt install ubuntu-desktop

RDPサーバーのインストールとセットアップ

$ sudo apt install xrdp
$ sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
$ sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini
$ sudo sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /etc/xrdp/xrdp.ini
$ sudo sed -i 's/xserverbpp=24/#xserverbpp=24\nxserverbpp=128/g' /etc/xrdp/xrdp.ini

XRDPでUbuntuに接続

WSLのシャットダウン
Windows Terminalから、Ubuntuを起動

Windowsで"リモートデスクトップ接続"を起動

"localhost::3390" で接続

Ubuntuにログイン

その他のセットアップ

日本語化

言語パックのインストール

$ sudo apt install language-pack-ja
$ loacale -a
C
C.UTF-8
POSIX
en_US.utf8
ja_JP.utf8

タイムゾーンの変更

$ sudo dpkg-reconfigure tzdata

インプット・メソッドのインストール

$ sudo apt purge ibus
$ sudo apt install fcitx-mozc

WSLを再起動

時刻同期

ntpのインストール

$ sudo apt install ntp

ntpの設定

/etc/ntp.conf
# pool 0.ubuntu.pool.ntp.org iburst
# pool 1.ubuntu.pool.ntp.org iburst
# pool 2.ubuntu.pool.ntp.org iburst
# pool 3.ubuntu.pool.ntp.org iburst

server ntp.nict.jp iburst
server ntp1.jst.mfeed.ad.jp iburst
server ntp2.jst.mfeed.ad.jp iburst
server ntp3.jst.mfeed.ad.jp iburst

ntpの有効化

$ sudo systemctl enable ntp
このスクラップは2021/05/15にクローズされました