LoginSignup
1
2

More than 1 year has passed since last update.

WSL2メモ

Posted at

前提

  • Windows10 21H1以降 (Windows11含む) 試しています。
  • Microsoft Storeで配布していないディストリビューションを使いたい。
  • WSLg じゃない方法で GUI アプリを使いたい。

WSLのインストール

wslインストール
wsl --install

このコマンドを実行すると、下記の機能がインストールされます。

  • 仮想マシン プラットフォーム
  • Linux 用 Windows サブシステム
  • WSL用Linuxカーネル
  • Ubuntu Linux
    Microsoft Store で配布している Ubuntu は2022年3月現在、無印 16.04 18.04 20.04 の4つがありますが、自動インストールされるのは無印の Ubuntu のようで、20.04 でした。

Microsoft Store 配布のディストリビューションのインストール

ディストリビューションの確認
wsl --list --online
Ubuntu-20.04のインストール
wsl --install -d Ubuntu-20.04
インストール済みディストリビューションの確認
wsl --list --verbose

GUI 環境のインストール

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

  • Mateを使う場合

    Mateのインストール
    sudo apt update && sudo apt -y upgrade
    sudo apt install -y ubuntu-mate-desktop
    sudo apt-get install xrdp
    
  • XFceを使う場合

    XFceインストール
    sudo apt update && sudo apt -y upgrade
    sudo apt -y install xfce4
    sudo apt-get install xrdp
    

インストール途中で、Display Manager の設定を聞かれます。とりあえず gdm3 を選択します。

wsl_gui_select_display_manager.png

日本語IME

日本語IME(fcitx-mozc)のインストール
sudo apt install fcitx-mozc

Xsession の設定

$HOME/.xsession が存在しない場合、作成します。

  • Mateを使う場合

    $HOME/.xsession
    # fcitx-mozc
    export XMODIFIERS="@im=fcitx"
    export QT_IM_MODULE=fcitx
    export GTK_IM_MODULE=fcitx
    export DefaultIMModule=fcitx
    fcitx-autostart
    
    # Mate
    mate-session
    
  • XFceを使う場合

    $HOME/.xsession
    # fcitx-mozc
    export XMODIFIERS="@im=fcitx"
    export QT_IM_MODULE=fcitx
    export GTK_IM_MODULE=fcitx
    export DefaultIMModule=fcitx
    fcitx-autostart
    
    # XFce
    xfce4-session
    

xrdp の設定と起動

/etc/xrdp/xrdp.ini
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 の起動
sudo service xrdp start

この後、リモートデスクトップを起動し、localhost:3390 に接続すると GUI 環境につながると思います。

よくある問題?

  • RDP でログインしたら英語版
    locale を設定していないとデフォルトの英語で表示されます。dpkg-reconfigure locales コマンド等で、locale に ja_JP.UTF8 を設定後、再度 RDP でログインすると日本語表示になるはずです。

  • RDP でログインするとき blueman が落ちる
    たぶん Bluetooth 関係の何かだと思いますが、たぶん使わないのでアンインストールしても問題なさそうです。

    blueman のアンインストール
    sudo apt remove blueman
    

Microsoft Store 公開以外のディストリビューションのインストール

WSL Ubuntu 上でもできるらしい解説を見ましたが、私の PC ではできませんでした。
仮想マシン等に Ubuntu Linux をインストールして作業した方が無難だと思います。

Rocky Linux8

Ubuntu Linux 20.04での作業

rinse のインストール
sudo apt-get update
sudo apt-get install rinse -y
  • RockLinux用 rinse 設定ファイル作成
    CentOS8 の設定ファイルをコピーして、centos ⇒ rocky に変更します。

    RockyLinux用rinse設定ファイル作成
    sudo bash -c \
        'sed -e "s|centos|rocky|" /etc/rinse/centos-8.packages > /etc/rinse/rocky-8.packages'
    

    rinse の設定ファイルの中に Red Hat Enterprise Linux の設定ファイルがありましたので、RHEL の場合は、この操作は不要だと思います。

/etc/rinse/rocky-8.packages へのインストールパッケージ追加
glibc-langpack-en
libmodulemd
libzstd
passwd
sudo
cracklib-dicts
openssh-clients
python3-dbus
dbus-glib
glibc-langpack-ja
/etc/rinse/rinse.conf に RockyLinux のミラーサイト追加
# Rocky Linux 8
[rocky-8]
mirror.amd64 = http://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/Packages/
  • パッケージインストールスクリプトの作成

    CentOS8用のスクリプトをコピー
    sudo cp -pR /usr/lib/rinse/centos-8 /usr/lib/rinse/rocky-8
    
    /usr/lib/rinse/rocky-8/post-install.sh の14行目に挿入
    echo "  Extracting CA certs..."
    $CH /usr/bin/update-ca-trust
    
  • rinse スクリプトの修正

    • /usr/sbin/rinse を -extract-over-symlinks で検索し、次の行に rocky を追加します。
      修正前: if ( $file =~ /(fedora|centos|redhat|mandriva)-release-/ ) {
      修正後: if ( $file =~ /(fedora|centos|rocky|redhat|mandriva)-release-/ ) {
rinse コマンドの実行
mkdir rocky_rc
sudo rinse --arch amd64 --directory ./rocky_rc --distribution rocky-8
  • VMware Ubuntu Linux 20.04 では、/etc/rinse/rocky-8.packages のパッケージリストから ima-evm-utils を外さないとエラーになりました。
  • Windows11 WSL2 Ubuntu Linux 20.04 では filesystem-3.8-6.el8.x86_64.rpmの展開でエラーになりました。
RockyLinux ファイルシステムを固める
sudo tar --numeric-owner -c -C ./rocky_rc . -f rocky8.tar

この後、rocky8.tar を scp 等の手段を使って Windows 上にコピーします。

Windowsでの作業

Rocky Linux の WSLイメージ格納フォルダを作成する。今回は C:\WSL\rocky8 とする。

rocky8.tar のインポート
wsl --import Rocky8 c:\WSL\rocky8 rocky8.tar
インポートの確認
wsl -l -v

  NAME            STATE           VERSION
* Debian          Running         2
  Ubuntu-20.04    Running         2
  Rocky8          Stopped         2
RockyLinux の起動
wsl -d Rocky8

[root@winpc rocky8]# cat /etc/redhat-release
Rocky Linux release 8.5 (Green Obsidian)

インポート後の調整

パッケージの更新
dnf update
一部パッケージの再インストール
dnf reinstall passwd sudo cracklib-dicts -y
一般ユーザ作成
adduser -G wheel hoge
echo -e "[user]\ndefault=hoge" >> /etc/wsl.conf
passwd hogehoge

Debian Linux11

Ubuntu Linux 20.04での作業

基本パッケージの取得
mkdir debian11
sudo apt install debootstrap
sudo debootstrap --verbose --variant=minbase --arch=amd64 \
    --include=sudo,locales,vim \
    bullseye ./debian11 http://ftp.jp.debian.org/debian
Codename Version
bullseye 11
buster 10
stretch 9

基本設定

chroot
sudo mount -t proc proc ./debian11/proc
sudo mount -o bind /dev ./debian11/dev
sudo chroot ./debian11/
/etc/apt/sources.list の更新
echo "deb http://ftp.jp.debian.org/debian bullseye main contrib non-free" > /etc/apt/sources.list
echo "deb-src http://ftp.jp.debian.org/debian bullseye main contrib non-free" >> /etc/apt/sources.list
apt-get update
キーボード設定(たぶん設定不要)
apt-get install -y console-data
# 1. Select keymap from arch list -> 4. qwerty -> 16. Japanese
タイムゾーン(たぶん設定不要)
dpkg-reconfigure tzdata
# 6. Asia -> 79. Tokyo
localeの設定
dpkg-reconfigure locales
# 285. ja_JP.UTF-8 UTF-8 -> 3. ja_JP.UTF-8
ユーザアカウント
useradd -G users,sudo -d /home/hoge -m -s /bin/bash hoge
echo -e "[user]\ndefault=hoge" >> /etc/wsl.conf
passwd hogehoge
後処理
sudo umount ./debian11/proc
sudo umount ./debian11/dev
sudo tar --numeric-owner -c -C ./debian11 . -f debian11.tar

debian11.tar を wsl でインポートする Windows 上に持っていきます。

Windowsでの作業

Rocky Linux の WSLイメージ格納フォルダを作成する。今回は C:\WSL\debian11 とする。

WSL に RockyLinux をインポートする
wsl --import Debian11 c:\WSL\debian11 debian11.tar
インポートの確認
wsl -l -v
Debian11 の起動
wsl -d Debian11
1
2
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
1
2