読者です 読者をやめる 読者になる 読者になる

do:kalaclism

『輝かしい青春』なんてなかった人のノート

Windows Subsystem for Linux で 普通の Archlinux を使う

方法について書きます。


0. 参考にしたモノ

www.kunst1080.net

redd.it

1. 下準備

  • Windows Subsystem for Linux が使えるよう、その機能を有効にする
  • Bash on Ubuntu on Windows の初期設定を行う
  • Archlinux の Installer ISO ディスクイメージを用意する

2. WSL の Ubuntu を Archlinux Installer ISO のモノと入れ替える

2.1 Windows 側で AIROOTFS.SFS を取り出す

まず、 Archlinux の ISO をマウントして、

ARCH/X86_64/AIROOTFS.SFS

を、どこか適切なディレクトリにコピーします。

これは例えば、僕の場合だと、

C:\Users\nyarla\Downloads\AIROOTFS.SFS

にコピーしました。

2.2 WSL Ubuntu 上で AIROOTFS.SFS を展開する

次に、WSL Ubutnu の Bash に入り、

$ sudo su -

root になった上、

# cd ~/
# cp /mnt/c/Users/nyarla/Downloads/AIROOTFS.SFS ~/ # 先程の AIROOTFS.SFS を WSL 側にコピー
# apt-get install -y squashfs-tools                # squashfs を展開する為のツールをインストール
# unsquashfs ~/AIROOTFS.SFS                        # `AIROOTFS.SFS` を展開

という感じで、 AIROOTFS.SFS を WSL の root$HOME に展開します。

2.3 WSL Ubuntu を終了し、 Windows 側 で rootfs を入れ替える

そして最後。

先のステップで展開した、

%USERPROFILE%\AppData\Local\lxss\root\usquashfs-root

を、Explorer か何かで、

%USERPROFILE%\AppData\Local\lxss\rootfs

と入れ替えます。

2.4 Windows 側で WSL のデフォルトユーザーを root にする

これはコマンドプロンプト系の何かで、

lxrun /setdefaultuser root

と、すれば良いです。

3. Archlinux Installer で Archlinux の rootfs を構築する

これについては、手作業でその作業をすると大変につらい (というかつらかった) ので、 下記の様なスクリプトを使って作業します:

※ ただし、このスクリプトは無保証です。エラーとか有ったら各自直してください

3.1 Archlinux Installer で Archlinux の rootfs を bootstrap する

これは、上記のスクリプトを用意した上で、

# cd ~/
# ./wslarch-bootstrap.zsh bootstrap

するだけで OK です。

3.2 Archlinux の rootfs と Archlinux Installer の rootfs を入れ替える

これは WSL を終了した上で、 Windows 側から、

%USERPROFILE%\AppData\Local\lxss\root\rootfs_arch

と、

%USERPROFILE%\AppData\Local\lxss\rootfs

を入れ替えます。

3.3 Archlinux の rootfs を修正する

これは、先のステップで使用したスクリプトをもう一度使い、

# ./wslarch-bootstrap.zsh postinstall

すれば良いです。

以上

という事で、ここまでの作業を行えば、一応は、

(VM 等で)普通の Archlinux をインストールしたばかり

に近い環境が出来るはず、です。

ただし、WSL は Unix-like 環境における Wine みたいなモノなので、 時々、 Syscall の実装関係でソフトウェアが動かなかったり、 あるいは、この作業をしていた時にハマった罠の様に、

(ソフトウェアの) バージョンを上げたら、コマンドがぶっ壊れていたでござる

とか普通にあるので、まあ、本来なら動くはず……というところでソフトウェアが奇妙なエラーを吐いて止まったりしていたら、 WSL の、

github.com

とか見て周りましょう。そうしないと、僕の様に無駄に時間を消費して精神が消耗する、 みたいな事になります。


という事で、今回の記事は以上です。

何かの参考になれば幸いです。はい。