Skip to content

WSL2にArch LinuxをインストールしてUbuntuから移行

Posted on:2025年5月20日
Post tags:

Arch LinuxがWSL2公式ディストリビューションとして配布されるようになったので、開発環境をUbuntu 24.04から移行した。Arch Linuxはローリングリリースモデルを採用していてメジャーバージョンという概念がなく、システム全体を再インストールすることなく常に最新の環境を利用できることが特徴。
最近の開発はDockerコンテナ内で行なうことが多いので、ホストOSの種類がどのディストリビューションかということはあまり気にする必要がなくなってきている。Arch Linuxを使ってホストOS側をシンプルな状態に保っておくことで式年遷宮のような定期的なアップグレード作業をする必要がなくなる。

|500

環境移行に際して行った手順は以下の通り。当然ながら、WSL2自体はインストール済みであることを想定。

インストール

  1. 管理者権限でPowerShellを起動してインストール

利用可能なディストリビューションの一覧を確認する。

> wsl -l -o
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。

NAME                            FRIENDLY NAME
AlmaLinux-8                     AlmaLinux OS 8
AlmaLinux-9                     AlmaLinux OS 9
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10
Debian                          Debian GNU/Linux
FedoraLinux-42                  Fedora Linux 42
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
Ubuntu                          Ubuntu
Ubuntu-24.04                    Ubuntu 24.04 LTS
archlinux                       Arch Linux
kali-linux                      Kali Linux Rolling
openSUSE-Tumbleweed             openSUSE Tumbleweed
openSUSE-Leap-15.6              openSUSE Leap 15.6
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1

2025年5月現在、これらのディストリビューションが公式から配布されている。もちろん、自分で独自のイメージを作成して利用することも可能だが、かなり面倒くさいので公式から配布されているのはとても有り難い。

もし、一覧にArch Linuxが表示されない場合はWSL2を更新する。

> wsl --update

表示されていたらインストールを実行。

> wsl --install archlinux

インストール作業は以上。
これだけでArch Linuxが利用可能。簡単すぎる。

初期設定

Windows Terminalを一度終了してから再起動するとarchlinuxが選択できるようになっているので、ログインして初期設定を行う。Arch Linuxのインストール直後は、本当に最小限のパッケージ構成で不要なソフトウェアが一切含まれていない。

  1. まずはパッケージを更新して、必要最低限のアプリケーションをインストール

(nano, zshはお好みで)

[root ~]# pacman -Syu
[root ~]# pacman -S base-devel nano openssh rsync zsh
  1. 日本語ロケール追加
[root ~]# nano /etc/locale.gen
ja_JP.UTF-8 UTF-8
の行をアンコメントして保存

[root ~]# locale-gen
[root ~]# locale -a
C
C.utf8
POSIX
ja_JP.utf8
  1. ユーザー作成

デフォルトはrootユーザーなので新規ユーザーを作成して、このユーザーで自動ログインできるようにする。

[root ~]# useradd -m -s /bin/zsh <username>
[root ~]# passwd <username>

[root ~]# usermod -aG wheel <username>
[root ~]# nano /etc/sudoers
%wheel ALL=(ALL:ALL) NOPASSWD: ALL
の行をコメントアウトして保存

[root ~]# nano /etc/wsl.conf
--
[user]
default=<username>
--
を追記して保存
  1. 再起動

PowerShellから次のコマンドでarchlinuxを終了し、再度開くと作成したユーザーで利用可能になっている。

> wsl --terminate archlinux

sudoが問題なく使えることを確認したら、あとはUbuntuインスタンスからデータを移行する。

Ubuntuインスタンスから環境移行

インスタンス間でファイルをコピーするのは、マウントしてrsyncするのが簡単。設定ファイル類の移行に関しては、自分の場合は全てクラウドストレージに置いてあってシンボリックリンクを貼るだけなのでここでは省略。

  1. まずarchlinuxでマウント用ディレクトリを作成
    (Ubuntu-24.04以外から移行する場合は適切な名前で)
$ sudo mkdir /mnt/wsl/Ubuntu-24.04
  1. PowerShellから以下のコマンドを実行してマウント
> wsl -d Ubuntu-24.04 -u root mount --bind / /mnt/wsl/Ubuntu-24.04

これでArch LinuxからUbuntu-24.04のファイルに直接アクセスできるので、rsyncで必要なファイルをコピーする。

  1. rsyncで必要なファイルやフォルダをコピー
$ sudo rsync -auv --progress /mnt/wsl/Ubuntu-24.04/home/<username>/<some-folder> ~/

インスタンス間でマウントする方法はあまり知られていない気がするが、これを使うと移行がかなり楽になるのでぜひ活用して欲しい。

WSL2はGPUも使えてWindowsのファイルシステムにアクセスしなければパフォーマンスも申し分なく、今でも開発環境として大きな不満はないのだけれど、ちょうど今日WSL2のソースコードがオープーソース化されたようだ。さらに便利になることを期待。

Microsoft、「Windows Subsystem for Linux」をオープンソースに - 窓の杜

Enjoy.