🎃

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

2023/07/06に公開

Fedora38

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

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

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

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

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

powershell
curl -LO https://github.com/fedora-cloud/docker-brew-fedora/raw/38/x86_64/fedora-38-x86_64.tar.xz
wsl --import Fedora38 c:\fedora38 fedora-38-x86_64.tar.xz
wsl -d Fedora38

基本パッケージ一端もりもりで入れるがお好みで
一般ユーザーは適当に user で作成

bash
dnf update -y
dnf group install -y "Core" "Development Tools" "Infrastructure Server"
groupadd -g 1000 user
useradd -u 1000 -g 1000 -G wheel -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 Fedora38
wsl -d Fedora38
passwd
・・・パスワード設定

OSのスナップショット

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

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

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


サンプル

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

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

podman, dockerのインストール

おまけでpodmanのインストールを記載しておく

bash
sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce-cli -y
sudo chmod u+s $(which newuidmap)
sudo chmod u+s $(which newgidmap) 
sudo systemctl enable --now podman.socket

Discussion