Linux MintをWindows11(WSL2)上で動かしてみる

Linux MintをWindows11(WSL2)上で動かしてみる Mint
スポンサーリンク

2022/04/20追記

詳しく調査できていないのですが、このページの手順で導入したLinux MintではWSLgが使えないかもしれません。

前回まではWindows Subsystem for Linux 2 (WSL2)を使ってUbuntu 20.04LTSを動かす方法を紹介してきました。

今回は番外編としてLinux MintをWSL2で使って見たいと思います。

スポンサーリンク

Linux Mintとは

Linux MintはUbuntuをベースとしたLinuxディストリビューションです。

Home - Linux Mint
Linux Mint is an elegant, easy to use, up to date and comfortable desktop operating system.
Linux Mint - Wikipedia

基本部分はUbuntuと同一ですが、デスクトップ環境が使いやすく(Windowsに近いといった方が良いかも)、近年では本件Ubuntuよりも人気があるとも言われています。

となると、Linux MintをWSL2で使いたいところですが、この記事の作成時点ではWSL2に導入可能なディストリビューションになっていません。

「wsl –list –online」コマンドの結果や、Microsoft Storeで導入可能なLinuxディストリビューションにLinux Mintは含まれていません。

スポンサーリンク

準備

WSL2が既に有効になっていることを前提として進めていきます。

WSL2を利用したことがない場合は、下記のページを参考にUbuntuを導入してしまうのが手っ取り早いです。

UbuntuをWindows 11上で動かす その1: 準備とインストール
今回はWindows Subsystem for Linux (WSL2)を使ってWindows11にUbuntuをインストールしてみます。WSLを利用するためには以前は複数のステップが必要でしたが、ついにwslコマンド一発で導入できるようになりました。WSLを使う敷居がますます低くなったように感じます。

一度、WSL2にUbuntuを導入することでWSL2が確実に利用可能な状態になります。

もちろんUbuntuが不要であれば、下記のコマンドで削除してしまっても構いません。

> wsl --unregister Ubuntu

Linux Mintの導入

それではLinux MintをWSLに導入していきます。

実はLinux MintをWSLにた追うさせているプロジェクト(LinuxmintWSL)があるので、その成果を使わせてもらいます。

GitHub - sileshn/LinuxmintWSL2: Linux mint on wsl2 using wsldl
Linux mint on wsl2 using wsldl. Contribute to sileshn/LinuxmintWSL2 development by creating an account on GitHub.

まず下記のWebサイトにアクセスしてLinuxmintWSL.zipをダウンロードします。

Release LinuxmintWSL2-20240301 · sileshn/LinuxmintWSL2
Full Changelog: 2023113...2024030

私が試したときには「LinuxmintWSL-20220225」というバージョンでした。

ダウンロードしたLinuxmintWSL.zipを展開すると「Mint.exe」と「root.tar.gz」が得られるはずです。

LinuxmintWSL.zipを展開した状態

うまく展開できない場合は7-zip等のフリーソフトを使ってみてください。

https://sevenzip.osdn.jp

LinuxmintWSL.zipを展開して得られた「Mint.exe」と「root.tar.gz」を好きなフォルダに移動します。重要なのは同じフォルダにMint.exeとroot.tar.gzを入れることです。

また、この「Mint.exe」と「root.tar.gz」を格納してあるフォルダにWSL2の仮想ディスクが展開されるので、デスクトップやダウンロードフォルダなど一時的なデータ置き場は利用しないよう通いでしょう。

私の場合はWSL2のデフォルトに合わせるため「%LOCALAPPDATA%\Packages\LinuxmintWSL\LocalState」以下に格納することにしました。

「%LOCALAPPDATE%\Packages」までは存在していると思いますが、それ以降は存在していないと思うのでフォルダを作成する必要があります。

あとは「Mint.exe」を実行(ダブルクリック)するだけです。10秒ほど待って「Installation complete」と表示されればOKです。

Installation complete

1分経っても「Installing…」から進まない場合はこのウィンドウでリターンキーを1買い売ってみてください。表示が更新されると思います。

これでMint.exeのフォルダにWSL2用の仮想ディスクext4.vhdxが用意されます。

作成された仮想ディスク

またwslコマンドを使って見ると、Mintが登録されていることがわかります。

WSL2に登録されたLinux Mint

WSLに登録される名前は「Mint.exe」のファイル名から決まりますので、このファイル名を変えることで登録名も変更することができます。

例えば、登録名をLinuxMintとしたかったら、Mint.exeをLinuxMint.exeに改名してから、インストールを実行します。

Linux Mintの実行

インストールに成功したらLinux Mintを起動してみます。

他のWSL2用のLinuxディストリビューションと同様にwslコマンドで実行可能です。

> wsl -d Mint

初回起動時は次のような表示になり、新しいユーザを作成するかどうかを聞いてきます。

WSL2のLinux Mintの初回起動

ユーザを作成するために「1」を入力します。

するとユーザ名を要求するので入力します。

ユーザ名の入力

次にパスワードを設定します。

パスワードの入力

確認のため、もう一度パスワードを入力すると、ユーザが生成されそのユーザでログインした状態となります。

Linux Mintにログインした状態

バージョンを確認すると「Linux Mint 20.3」で有ることがわかります。

$ cat /etc/lsb-release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=20.3
DISTRIB_CODENAME=una
DISTRIB_DESCRIPTION="Linux Mint 20.3 Una"

Linux Mintのアップデート

パッケージの状態を最新にする前に、どこからデータをとってくるかを確認しておきます。

$ cat /etc/apt/sources.list.d/official-package-repositories.list
deb http://packages.linuxmint.com una main upstream import backport

deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu/ focal partner
$ cat /etc/apt/sources.list.d/official-source-repositories.list
deb-src http://packages.linuxmint.com una main upstream import backport

deb-src http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse

deb-src http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://archive.canonical.com/ubuntu/ focal partner

初期設定では「packages.linuxmint.com」「archive.ubuntu.com」「security.ubuntu.com」「archive.canonical.com」から取得することになっています。

データ通信を早くするために「packages.linuxmint.com」と「archive.ubuntu.com」を国内のミラーサーバに差し替えておきましょう。

$ sudo sed -i -e 's/http:\/\/archive.ubuntu.com/http:\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list.d/official-package-repositories.list
$ sudo sed -i -e 's/http:\/\/archive.ubuntu.com/http:\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list.d/official-package-repositories.list
$ sudo sed -i -e 's/http:\/\/packages.linuxmint.com/http:\/\/ftp.jaist.ac.jp\/pub\/Linux\/linuxmint\/packages/g' /etc/apt/sources.list.d/official-package-repositories.list
$ sudo sed -i -e 's/http:\/\/packages.linuxmint.com/http:\/\/ftp.jaist.ac.jp\/pub\/Linux\/linuxmint\/packages/g' /etc/apt/sources.list.d/official-source-repositories.list

あとはパッケージ一覧のデータベースを更新します。

$ sudo apt-get update
Ign:1 http://ftp.jaist.ac.jp/pub/Linux/linuxmint/packages una InRelease
Get:2 http://ftp.jaist.ac.jp/pub/Linux/linuxmint/packages una Release [24.1 kB]
Get:3 http://ftp.jaist.ac.jp/pub/Linux/linuxmint/packages una Release.gpg [833 B]
(中略)
Get:40 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1,592 kB]
Fetched 23.0 MB in 3s (6,831 kB/s)
Reading package lists... Done

エラーがないことを確認して更新されたパッケージをアップデートします。

$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  gir1.2-gtk-3.0 gir1.2-polkit-1.0 gtk-update-icon-cache libc-bin libc-dev-bin libc6 libc6-dbg libc6-dev libgail-3-doc
  libgtk-3-0 libgtk-3-bin libgtk-3-common libgtk-3-dev libgtk-3-doc libjavascriptcoregtk-4.0-18 libpolkit-agent-1-0
  libpolkit-gobject-1-0 libwebkit2gtk-4.0-37 locales policykit-1 policykit-1-doc
21 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 48.7 MB of archives.
After this operation, 19.5 kB of additional disk space will be used.
Do you want to continue? [Y/n]

21個のパッケージに更新があるようです。問題がなければ「Y」を入力します。

更新が完了したら不要なファイルは削除しておきます。

$ sudo apt-get clean

ロケール

デフォルトでは英語ロケールしかサポートしていなくていろいろ困りそうです。

日本語のロケール(ja_JP.UTF-8)用のデータも生成するように設定します。

$ sudo dpkg-reconfigure locales

下記のような画面になったらカーソルキーで「ja_JP.UTF-8 UTF-8」を探し、スペースキーで「*」マークをつけます。

日本語ロケールの選択

「*」マークをつけたらTABキーで<OK>を選択したらリターンキーを押します。

次にデフォルトのロケールを聞かれますが「None」のままとしておきます。

デフォルトのロケールの選択

あとはリターンキーを押せばロケールの選択画面が終了し、日本語のロケールデータが生成されます。

これでLANG環境変数を「ja_JP.UTF-8」にすればコマンド等の出力結果が日本語になります。

$ export LANG=ja_JP.UTF-8

例えばdateコマンドの場合は下記のように曜日が日本語で表示されるようになります。

$ date
2022年  3月  4日 金曜日 21:00:26 JST

問題がなければホームディレクトリの.bashrcに言語の設定を追加しておきましょう。

$ echo export LANG=ja_JP.UTF-8 >> ~/.bashrc

ついでに日本語関係のパッケージを入れておきます。

$ sudo apt-get install language-pack-ja-base language-pack-ja language-pack-gnome-ja-base language-pack-gnome-ja manpages-ja manpages-ja-dev

最小化を解除する

いろいろ試していて気づいたのですが、LinuxmintWSLで導入されるLinux Mintは、サーバ用あるいはコンテナ用のためか、一部コマンドが削除されているようです。

例えばmanコマンドが使えません。

$ man man
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, including manpages, you can run the 'unminimize'
command. You will still need to ensure the 'man-db' package is installed.

このメッセージに書かれているように「unminimize」コマンドで復活させましょう。

$ sudo unminimize
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

This script restores content and packages that are found on a default
Ubuntu server system in order to make this system more suitable for
interactive use.

Reinstallation of packages may fail due to changes to the system
configuration, the presence of third-party packages, or for other
reasons.

This operation may take some time.

Would you like to continue? [y/N]

ここで「y」を入力すると自動的にパッケージの導入が始まります。

私の場合はgconf2のインストール時にエラーが起こってしまいました。

そこでgconf2を削除(sudo apt-get remove gconf2)を行ってから再度unminimizeを実行したところ最後まで進みました。

unminimizeで導入(復活)されるパッケージはかなり多く時間がかかります。

プリンタ・スキャナ関係など、余計なパッケージもかなり入るので、パッケージに詳しい方は削除しておいても良いでしょう。

MATEデスクトップを使う

Linux Mintにはいくつかの「Cinnamon」「MATE」「Xfce」という3つのデスクトップ環境が用意されています。

一般に、デザイン重視なら「Cinnamon」、軽快さ重視なら「Xfce」、中間なら「MATE」となります。今回は「MATE」を使ってみます。

Linux Mint (WSL2)側の設定

まずは必要なパッケージを入れておきます。

$ sudo apt-get install mint-meta-core mint-meta-mate

Cinnamonを使いたい場合は「mint-meta-mate」に変えて「mint-meta-cinnamon」を、Xfceを使いたい場合は「mint-meta-xfce」を指定してみてください。

WSL2はWSLgという仕組みでLinuxのGUIアプリを実行することができますが、残念ながらWSLgはデスクトップ環境を扱えません。

ここではWindowsからリモートデスクトップで接続し、リモートデスクトップでMATEデスクトップ環境を動かしてみましょう。

リモートデスクトップの接続を受け付けるためのxrdpパッケージを導入します。

$ sudo apt-get install xrdp

続いてxrdpの受信ポートを3390に変更します。

$ sudo sed -i -e 's/^port=3389/port=3390/g' /etc/xrdp/xrdp.ini

ここまで完了したらxrdpを起動しておきます。

$ sudo service xrdp restart

MATEデスクトップ環境でdbusを利用する気がするのでdbusも起動しておきます。

$ sudo service dbus restart

ついでにLinxu Mint側でWindowsのフォントを参照できるようにしておきます。

$ sudo ln -s /mnt/c/Windows/Fonts/ /usr/share/fonts/windows
$ sudo fc-cache -fv

またリモートデスクトップ接続時にMATEが起動するように、ホームディレクトリに.xsessionrcというファイルを作成します。

$ echo "export LANG=ja_JP.UTF-8" > ~/.xsessionrc
$ echo "mate-session" >> ~/.xsessionrc

Windows側の設定

Windowsのスタートメニューから「リモートデスクトップ接続」を探して実行します。

次のようなウィンドウが出るので「オプションの表示」を選択しましょう。

リモートデスクトップのオプションを表示

これでリモートデスクトップのオプションが設定できるので「画面」タブを選択します。

「画面の設定」のエリアでリモートデスクトップの画面サイズ(=WSL2のデスクトップ画面のサイズ)を設定できます。

リモートデスクトップの設定

Windows画面全体をリモートデスクトップで覆われたくないときはここで画面サイズより小さい解像度を設定しておきます。

次のようなウィンドウがでるので「localhost:3390」と入力して「接続」を選択します。

localhostでの接続

すると次のような警告が出るので、チェックボックスを選択してから「はい」を選択します。

セキュリティの警告

これでリモートデスクトップ(xrdp)のログイン画面が表示されるはずです。

「Session」で「Xorg」になっていることを確認して、Linux Mit(WSL2)のユーザ名とパスワードでログインします。

WSL2へのログイン

これでMATEのデスクトップが表示されればOKです。

MATEのデスクトップ画面

うまくいったら次回にLinux Mint(WSL2)を起動したときにもリモートデスクトップ接続できるように、xrdpが起動時に実行されるようにしておきます。

$ sudo sed -i -e 's/\[boot\]/\[boot\]\ncommand = service xrdp start/g' /etc/wsl.conf

その他の設定

あとはUbuntuとほとんど同じです。WSL2を使うのに便利な設定をしておきます。

UbuntuをWindows11上で動かす その3: Windows Terminalの設定
今回はWindows Subsystem for LinuxのターミナルとしてWindows Terminalを導入します。MicrosoftがWSL用に推奨しているターミナルアプリケーションだけあって、導入も簡単です。UTF-8に対応しているので日本語の表示なども全く問題ないのもうれしいところです。何を使ったら良いのかわからない場合は、まずはWindows Terminalを試すと良いでしょう。
UbuntuをWindows11上で動かす その4: ターミナルを多重化する
回はWindows Subsystem for Linux (WSL2)の使い勝手を向上すべく、byobuとscreenを導入してターミナルを多重化してみます。Windows Terminalで起動しているシェルでbyobuを有効にして見たところ、全く問題なく使用することができました。Windows Terminalにもタブやペイン機能がありますが、byobunはそれとはまた違った便利さがあると思います。
UbuntuをWindows11上で動かす その5: SSHで接続する
今回はWSL2上のUbuntuにSSHサーバを導入して、SSHで接続できるようにします。WSL2は起動毎にIPアドレスが変わってしまうという仕様なのですが、localhostを指定するとフォワーディングされるのでIPアドレスを気にせずにSSH接続することができます。これで使い慣れたターミナルソフトPuTTYを使ってWSL2を操作できるようになります。ただ、手動でSSHサーバを起動しておく必要があるのが面倒な点です。
UbuntuをWindows11上で動かす その11: wsl.confによる設定
今回はwsl.confというファイルを使って、WSL2の起動時にネットワークドライブの自動マウントと、sshサーバ・xrdpに自動起動を設定します。WSL2ではsystemdが動いていないため起動時の自動起動は面倒かと思ったのですが、この設定フィアルで簡単に行うことができました。WSL2で動かしておきたいサービスがある方は活用して見てください。

wsl.confを使ってxrdpを起動するようにした場合、初回のリモートデスクトップ接続でGUIが表示されるまでなぜか5分程度がかかるようです。

UbuntuをWindows11上で動かす その12: 外部から接続する
今回はWindows Subsystem for Linux (WSL2)で導入したUbuntuに、外部のPCから接続する方法を紹介します。WSL1の頃は簡単にできたのですが、WSL2になってからネットワークの構成が変更になっているため、少々設定が複雑になっています。
UbuntuをWindows11上で動かす その13: 自動起動する
今回はWSL2で導入したUbuntuをWindowsの起動に合わせて自動実行する設定を紹介します。WSL2のLinuxを自動的に立ち上がるようにしておくと、SSHやリモートデスクトップでいつでも接続することができ、あたかもLinuxサーバが起動しているように使うことができます。

まとめ

今回はWindows Subsystem for Linux (WSL2)に人気ディストリビューションのLinux Mintを導入してみました。

WSL用のLinux Mintはインストーラが用意されているため、比較的簡単に導入することができます。

一度導入してしまえば、Ubuntuと同じように設定できるので、使いやすいのではないかと思います。

次回はWSL2を使ってプログラミング環境(C言語)を構築したいと思います。

コメント

  1. 匿名 より:

    最新だとWSLg使えました

タイトルとURLをコピーしました