WSL にインストール
Windows 10 には Linux カーネルのインターフェイスをエミュレートするサブシステムが搭載されており、通常の Linux アプリケーションを実行することができます。Wine と同じような仕組みですが、もっと低水準です。デフォルトでは Ubuntu のユーザー空間がセットアップされていますが、Arch に置き換えることが可能です。動作させるにはパッケージをビルドするための Arch 環境が必要です。このページの手順は こちらのガイド を基にしています。
準備
> lxrun /uninstall /full /y。Fall Creators アップデートを適用した Windows 10 を使っている場合、Windows の機能の有効化または無効化にある Windows Subsystem for Linux にチェックを入れてください。
Anniversary アップデートまたは Creators アップデートの Windows 10 を使っている場合、こちら の手順に従って有効化してください。設定 > 更新とセキュリティ > 開発者向けにある開発者モードを選択する必要があります。
インストール
%localappdata%\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs の代わりに %localappdata%\lxss\rootfs を使ってください。Windows ストア から Ubuntu をインストールしてください。
そしてスタートメニューから Ubuntu を起動してください。
デフォルトユーザーを root に設定:
$ ubuntu config --default-user root
Arch のブートストラップ .tar.gz を ダウンロードページ からダウンロードして、解凍:
$ tar -zxvf /mnt/c/Users/username/Downloads/archlinux-bootstrap-version.tar.gz
~/root.x86_64/etc/pacman.d/mirrorlist 内の使用するサーバーをアンコメントしてください。
WSL で /etc/resolv.conf を自動生成:
$ echo "# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line." > ~/root.x86_64/etc/resolv.conf
開いた bash プロンプトを全て閉じてください。
Windows エクスプローラで %localappdata%\Packages を開いて CanonicalGroupLimited.UbuntuonWindows_* という名前のフォルダを探してください (アスタリスクはランダムな文字列になります)。
%localappdata%\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs にある bin, etc, lib, lib64, sbin, usr, var を削除してください。
そして上記と同じフォルダを rootfs\root\root.x86_64 から rootfs に移動してください (コピーでは駄目です)。
Linux コンピュータを使って fakeroot-tcpAUR をビルドしたら Windows PC にパッケージをコピーしてください。
fakeroot-tcp は WSL によって System V IPC が完全に実装されるまで必要です (こちら を参照)。WSL のバグが修正されればこの手順は不要になります。
再度 bash を開いて、Arch をセットアップしてください:
# pacman-key --init # pacman-key --populate archlinux # pacman -U /mnt/c/Users/username/Downloads/fakeroot-tcp-1.21-2-x86_64.pkg.tar.xz # pacman -Syyu base base-devel
ユーザーをセットアップ (Windows のユーザー名と同じにする必要はありません):
# useradd -m -G wheel -s /bin/bash username # passwd root # passwd username
ubuntu config --default-user username。Windows コマンドプロンプトで以下のコマンドを実行することでユーザーをデフォルトに設定できます:
> lxrun /setdefaultuser username