前提
- Windows10 21H1以降 (Windows11含む) 試しています。
- Microsoft Storeで配布していないディストリビューションを使いたい。
- WSLg じゃない方法で GUI アプリを使いたい。
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
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
を選択します。
日本語IME
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 の設定と起動
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
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での作業
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 の場合は、この操作は不要だと思います。
glibc-langpack-en
libmodulemd
libzstd
passwd
sudo
cracklib-dicts
openssh-clients
python3-dbus
dbus-glib
glibc-langpack-ja
# 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-/ ) {
- /usr/sbin/rinse を -extract-over-symlinks で検索し、次の行に rocky を追加します。
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の展開でエラーになりました。
sudo tar --numeric-owner -c -C ./rocky_rc . -f rocky8.tar
この後、rocky8.tar を scp 等の手段を使って Windows 上にコピーします。
Windowsでの作業
Rocky Linux の WSLイメージ格納フォルダを作成する。今回は C:\WSL\rocky8
とする。
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
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 |
基本設定
sudo mount -t proc proc ./debian11/proc
sudo mount -o bind /dev ./debian11/dev
sudo chroot ./debian11/
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
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 --import Debian11 c:\WSL\debian11 debian11.tar
wsl -l -v
wsl -d Debian11