🙄

WSLにrootfsからUbuntuをインストール

2023/07/06に公開

Ubuntu22.04

関連記事:
WSLにrootfsからFedoraをインストール

毎回OSインストールから書くのは冗長になるなと思い、
ベースシステム構築部分を切り出して、
URL張るだけに変更していこうと思う。

Microsoft Storeにあるインスタンスではなく、
公式がようにしているOSイメージを使って構築する。

公式よりUbuntuをインストール

クライアントのUbuntu22を用意
公式 のイメージからブートイメージを取得
WSLにインポートしてもろもろ設定する。

powershell
curl -LO https://cloud-images.ubuntu.com/wsl/jammy/current/ubuntu-jammy-wsl-amd64-wsl.rootfs.tar.gz
wsl --import Ubuntu22 c:\ubuntu22 ubuntu-jammy-wsl-amd64-wsl.rootfs.tar.gz
wsl -d Ubuntu22

build-essential だけインストール
一般ユーザーは適当に user で作成

bash
apt update && apt upgrade -y
apt install build-essential -y
groupadd -g 1000 user
useradd -u 1000 -g 1000 -G sudo -m user
passwd -d user
printf "[user]\ndefault=user\n[boot]\nsystemd=true\n[network]\nhostname=Fedora38\n" | tee /etc/wsl.conf
exit
wsl -t Ubuntu22
wsl -d Ubuntu22
passwd
・・・パスワード設定

OSのスナップショット

WSLのスナップショットでナウなのは0.58.0から実装された import-in-place を使う方法
ディスクイメージであるvhdxファイルをコピーするだけでOSのバックアップになる

念のためWSLを落としてファイルをコピー

powershell
wsl --shutdown
cp c:\ubuntu22\ext4.vhdx ext4.snapshot.vhdx


サンプル

1インスタンスに1ディレクトリが必要な点に注意
互換性維持のためだと思う

------------------- ↓ 後書きはここから ↓-------------------

Ubuntu20.04

今回はUbuntu22を使用したが、
Ubuntu20を使いたい場合があるかもしれない。
その場合rootfsのインストールを以下のようにする

powershell
curl -LO https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64-wsl.rootfs.tar.gz
wsl --import Ubuntu20 c:\ubuntu20 focal-server-cloudimg-amd64-wsl.rootfs.tar.gz
wsl -d Ubuntu20

desktop minimal

apt install ubuntu-desktop-minimal

Discussion